nielsr HF Staff commited on
Commit
8d08a0a
·
verified ·
1 Parent(s): df99f27

Improve model card with pipeline tag and library name

Browse files

This PR improves the model card by adding essential metadata for better discoverability and usability. The `pipeline_tag` is set to `text-generation` reflecting the model's text generation capabilities, and the `library_name` is set to `transformers` because the provided examples use the Hugging Face Transformers library. The introduction is also enhanced with information from the paper abstract to more accurately describe the model's capabilities and training data.

Files changed (1) hide show
  1. README.md +15 -23
README.md CHANGED
@@ -1,9 +1,11 @@
1
  ---
2
- license: mit
3
- language:
4
- - en
5
  base_model:
6
  - deepseek-ai/deepseek-coder-7b-instruct-v1.5
 
 
 
 
 
7
  ---
8
 
9
  <p align="center">
@@ -12,19 +14,8 @@ base_model:
12
 
13
  ## Introduction
14
 
15
- We present a fine-tuned model for formal verification tasks. It is fine-tuned in five formal specification languages (Cog, Dafny, Lean4, ACSL, and TLA) on six formal-verification-related tasks:
16
-
17
- - **Requirement Analysis**: given requirements and description of the verification or modeling goals, decomposing the goal into detailed verification steps
18
 
19
- - **Proof/Model Generation**: given requirements and description of the verification or modeling goals, writing formal proofs or models that can be verified by verifier/model checker.
20
-
21
- - **Proof segment generation**
22
-
23
- - **Proof Completion**: complete the given incomplete proofs or models
24
-
25
- - **Proof Infilling**: filling in the middle of the given incomplete proofs or models
26
-
27
- - **Code 2 Proof**: (Currently only support for ACSL whose specification is in form of code annotations) given the code under verification, generate the proof with the specifications
28
 
29
  ## Application Scenario
30
 
@@ -57,9 +48,9 @@ You only need to return the TLA formal specification without explanation.
57
 
58
  input_text = """
59
  An operation `LM_Inner_Rsp(p)` that represents a response process for a given parameter `p`. It satisfies the following conditions:
60
- - The control state `octl[p]` is equal to `\"done\"`.
61
  - The `Reply(p, obuf[p], memInt, memInt')` operation is executed.
62
- - The control state `octl` is updated by setting the `p` index of `octl` to `\"rdy\"`.
63
  - The variables `omem` and `obuf` remain unchanged.
64
  """
65
 
@@ -70,7 +61,8 @@ model = AutoModelForCausalLM.from_pretrained(
70
  )
71
  tokenizer = AutoTokenizer.from_pretrained(model_name)
72
 
73
- messages = [{"role": "user", "content": f"{instruct}\n{input_text}"}]
 
74
 
75
  text = tokenizer.apply_chat_template(
76
  messages, tokenize=False, add_generation_prompt=True
@@ -101,9 +93,9 @@ You only need to return the TLA formal specification without explanation.
101
 
102
  input_text = """
103
  An operation `LM_Inner_Rsp(p)` that represents a response process for a given parameter `p`. It satisfies the following conditions:
104
- - The control state `octl[p]` is equal to `\"done\"`.
105
  - The `Reply(p, obuf[p], memInt, memInt')` operation is executed.
106
- - The control state `octl` is updated by setting the `p` index of `octl` to `\"rdy\"`.
107
  - The variables `omem` and `obuf` remain unchanged.
108
  """
109
 
@@ -123,7 +115,8 @@ llm = LLM(
123
  )
124
 
125
  # Prepare chat messages
126
- chat_message = [{"role": "user", "content": f"{instruct}\n{input_text}"}]
 
127
 
128
  # Inference
129
  responses = llm.chat(chat_message, greed_sampling, use_tqdm=True)
@@ -142,5 +135,4 @@ print(responses[0].outputs[0].text)
142
  primaryClass={cs.AI},
143
  url={https://arxiv.org/abs/2501.16207},
144
  }
145
-
146
- ```
 
1
  ---
 
 
 
2
  base_model:
3
  - deepseek-ai/deepseek-coder-7b-instruct-v1.5
4
+ language:
5
+ - en
6
+ license: mit
7
+ pipeline_tag: text-generation
8
+ library_name: transformers
9
  ---
10
 
11
  <p align="center">
 
14
 
15
  ## Introduction
16
 
17
+ This model, presented in the paper [From Informal to Formal -- Incorporating and Evaluating LLMs on Natural Language Requirements to Verifiable Formal Proofs](https://hf.co/papers/2501.16207), is a fine-tuned LLM for formal verification tasks. Trained on 18k high-quality instruction-response pairs across five formal specification languages (Coq, Dafny, Lean4, ACSL, and TLA+), it excels at various sub-tasks including requirement analysis, proof/model generation, and code-to-proof translation (for ACSL). Interestingly, fine-tuning on this formal data also enhances the model's mathematics, reasoning, and coding capabilities.
 
 
18
 
 
 
 
 
 
 
 
 
 
19
 
20
  ## Application Scenario
21
 
 
48
 
49
  input_text = """
50
  An operation `LM_Inner_Rsp(p)` that represents a response process for a given parameter `p`. It satisfies the following conditions:
51
+ - The control state `octl[p]` is equal to `"done"`.
52
  - The `Reply(p, obuf[p], memInt, memInt')` operation is executed.
53
+ - The control state `octl` is updated by setting the `p` index of `octl` to `"rdy"`.
54
  - The variables `omem` and `obuf` remain unchanged.
55
  """
56
 
 
61
  )
62
  tokenizer = AutoTokenizer.from_pretrained(model_name)
63
 
64
+ messages = [{"role": "user", "content": f"{instruct}
65
+ {input_text}"}]
66
 
67
  text = tokenizer.apply_chat_template(
68
  messages, tokenize=False, add_generation_prompt=True
 
93
 
94
  input_text = """
95
  An operation `LM_Inner_Rsp(p)` that represents a response process for a given parameter `p`. It satisfies the following conditions:
96
+ - The control state `octl[p]` is equal to `"done"`.
97
  - The `Reply(p, obuf[p], memInt, memInt')` operation is executed.
98
+ - The control state `octl` is updated by setting the `p` index of `octl` to `"rdy"`.
99
  - The variables `omem` and `obuf` remain unchanged.
100
  """
101
 
 
115
  )
116
 
117
  # Prepare chat messages
118
+ chat_message = [{"role": "user", "content": f"{instruct}
119
+ {input_text}"}]
120
 
121
  # Inference
122
  responses = llm.chat(chat_message, greed_sampling, use_tqdm=True)
 
135
  primaryClass={cs.AI},
136
  url={https://arxiv.org/abs/2501.16207},
137
  }
138
+ ```