yuxiang630 commited on
Commit
c208306
1 Parent(s): 9ee30c1

Update model card

Browse files
Files changed (2) hide show
  1. README.md +160 -165
  2. assets/star-align-pipeline.svg +0 -0
README.md CHANGED
@@ -1,201 +1,196 @@
1
  ---
 
 
 
 
 
2
  library_name: transformers
3
- tags: []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  ---
5
 
6
- # Model Card for Model ID
7
 
8
- <!-- Provide a quick summary of what the model is/does. -->
 
 
9
 
 
10
 
 
11
 
12
- ## Model Details
 
 
13
 
14
- ### Model Description
15
 
16
- <!-- Provide a longer summary of what this model is. -->
17
 
18
- This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
19
 
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
27
 
28
- ### Model Sources [optional]
29
 
30
- <!-- Provide the basic links for the model. -->
 
 
31
 
32
- - **Repository:** [More Information Needed]
33
- - **Paper [optional]:** [More Information Needed]
34
- - **Demo [optional]:** [More Information Needed]
 
 
 
35
 
36
- ## Uses
 
 
 
37
 
38
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
 
 
 
39
 
40
- ### Direct Use
 
 
 
 
 
 
 
 
 
 
41
 
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
 
44
- [More Information Needed]
 
45
 
46
- ### Downstream Use [optional]
 
 
47
 
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
 
50
- [More Information Needed]
 
 
51
 
52
- ### Out-of-Scope Use
 
53
 
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
 
 
 
 
 
 
 
55
 
56
- [More Information Needed]
57
 
58
- ## Bias, Risks, and Limitations
59
 
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
-
62
- [More Information Needed]
63
-
64
- ### Recommendations
65
-
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
-
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
-
70
- ## How to Get Started with the Model
71
-
72
- Use the code below to get started with the model.
73
-
74
- [More Information Needed]
75
 
76
  ## Training Details
77
 
78
- ### Training Data
79
-
80
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
-
82
- [More Information Needed]
83
-
84
- ### Training Procedure
85
-
86
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
-
88
- #### Preprocessing [optional]
89
-
90
- [More Information Needed]
91
-
92
-
93
- #### Training Hyperparameters
94
-
95
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
-
97
- #### Speeds, Sizes, Times [optional]
98
-
99
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
-
101
- [More Information Needed]
102
-
103
- ## Evaluation
104
-
105
- <!-- This section describes the evaluation protocols and provides the results. -->
106
-
107
- ### Testing Data, Factors & Metrics
108
-
109
- #### Testing Data
110
-
111
- <!-- This should link to a Dataset Card if possible. -->
112
-
113
- [More Information Needed]
114
-
115
- #### Factors
116
-
117
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
118
-
119
- [More Information Needed]
120
-
121
- #### Metrics
122
-
123
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
-
125
- [More Information Needed]
126
-
127
- ### Results
128
-
129
- [More Information Needed]
130
-
131
- #### Summary
132
-
133
-
134
-
135
- ## Model Examination [optional]
136
-
137
- <!-- Relevant interpretability work for the model goes here -->
138
-
139
- [More Information Needed]
140
-
141
- ## Environmental Impact
142
-
143
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
144
-
145
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
146
-
147
- - **Hardware Type:** [More Information Needed]
148
- - **Hours used:** [More Information Needed]
149
- - **Cloud Provider:** [More Information Needed]
150
- - **Compute Region:** [More Information Needed]
151
- - **Carbon Emitted:** [More Information Needed]
152
-
153
- ## Technical Specifications [optional]
154
-
155
- ### Model Architecture and Objective
156
-
157
- [More Information Needed]
158
-
159
- ### Compute Infrastructure
160
-
161
- [More Information Needed]
162
-
163
- #### Hardware
164
-
165
- [More Information Needed]
166
-
167
- #### Software
168
-
169
- [More Information Needed]
170
-
171
- ## Citation [optional]
172
-
173
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
174
-
175
- **BibTeX:**
176
-
177
- [More Information Needed]
178
-
179
- **APA:**
180
-
181
- [More Information Needed]
182
-
183
- ## Glossary [optional]
184
-
185
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
186
-
187
- [More Information Needed]
188
-
189
- ## More Information [optional]
190
-
191
- [More Information Needed]
192
-
193
- ## Model Card Authors [optional]
194
 
195
- [More Information Needed]
 
 
 
 
 
 
196
 
197
- ## Model Card Contact
198
 
199
- [More Information Needed]
200
 
 
201
 
 
 
 
 
1
  ---
2
+ pipeline_tag: text-generation
3
+ base_model: bigcode/starcoder2-15b
4
+ datasets:
5
+ - bigcode/self-oss-instruct-sc2-exec-filter-50k
6
+ license: bigcode-openrail-m
7
  library_name: transformers
8
+ tags:
9
+ - code
10
+ model-index:
11
+ - name: starcoder2-15b-instruct-v0.1
12
+ results:
13
+ - task:
14
+ type: text-generation
15
+ dataset:
16
+ name: LiveCodeBench (code generation)
17
+ type: livecodebench-codegeneration
18
+ metrics:
19
+ - type: pass@1
20
+ value: 20.4
21
+ - task:
22
+ type: text-generation
23
+ dataset:
24
+ name: LiveCodeBench (self repair)
25
+ type: livecodebench-selfrepair
26
+ metrics:
27
+ - type: pass@1
28
+ value: 20.9
29
+ - task:
30
+ type: text-generation
31
+ dataset:
32
+ name: LiveCodeBench (test output prediction)
33
+ type: livecodebench-testoutputprediction
34
+ metrics:
35
+ - type: pass@1
36
+ value: 29.8
37
+ - task:
38
+ type: text-generation
39
+ dataset:
40
+ name: LiveCodeBench (code execution)
41
+ type: livecodebench-codeexecution
42
+ metrics:
43
+ - type: pass@1
44
+ value: 28.1
45
+ - task:
46
+ type: text-generation
47
+ dataset:
48
+ name: HumanEval
49
+ type: humaneval
50
+ metrics:
51
+ - type: pass@1
52
+ value: 72.6
53
+ - task:
54
+ type: text-generation
55
+ dataset:
56
+ name: HumanEval+
57
+ type: humanevalplus
58
+ metrics:
59
+ - type: pass@1
60
+ value: 63.4
61
+ - task:
62
+ type: text-generation
63
+ dataset:
64
+ name: MBPP
65
+ type: mbpp
66
+ metrics:
67
+ - type: pass@1
68
+ value: 75.2
69
+ - task:
70
+ type: text-generation
71
+ dataset:
72
+ name: MBPP+
73
+ type: mbppplus
74
+ metrics:
75
+ - type: pass@1
76
+ value: 61.2
77
+ - task:
78
+ type: text-generation
79
+ dataset:
80
+ name: DS-1000
81
+ type: ds-1000
82
+ metrics:
83
+ - type: pass@1
84
+ value: 40.6
85
  ---
86
 
87
+ # StarCoder2-Instruct: Self-Aligned, Transparent, and Fully Permissive
88
 
89
+ <!-- <center>
90
+ <img src="https://huggingface.co/datasets/bigcode/admin_private/resolve/main/starcoder2_banner.png" alt="SC2" width="900" height="600">
91
+ </center> -->
92
 
93
+ ## Model Summary
94
 
95
+ We introduce StarCoder2-15B-Instruct-v0.1, the very first entirely self-aligned code Large Language Model (LLM) trained with a fully permissive and transparent pipeline. Our open-source pipeline uses StarCoder2-15B to generate thousands of instruction-response pairs, which are then used to fine-tune StarCoder-15B itself without any human annotations or distilled data from huge and proprietary LLMs.
96
 
97
+ - **Model:** [bigcode/starCoder2-15b-instruct-v0.1](https://huggingface.co/bigcode/starcoder2-instruct-15b-v0.1)
98
+ - **Code:** [bigcode-project/starcoder2-self-align](https://github.com/bigcode-project/starcoder2-self-align)
99
+ - **Dataset:** [bigcode/self-oss-instruct-sc2-exec-filter-50k](https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-exec-filter-50k/)
100
 
101
+ ![self-alignment pipeline](star-align-pipeline.svg)
102
 
103
+ ## Use
104
 
105
+ ### Intended use
106
 
107
+ The model is exclusively trained with 50k **singe-turn** instruction-response pairs focused on **code generation**. It is supposed to answer **implementation-related instructions**. Instructions in other formats may result in unexpected outcomes. In such cases, we recommend providing a **response prefix** or a **one-shot example** to guide the model.
 
 
 
 
 
 
108
 
109
+ Here is an example to get started with the model using the [transformers](https://huggingface.co/docs/transformers/index) library:
110
 
111
+ ```python
112
+ import transformers
113
+ import torch
114
 
115
+ pipeline = transformers.pipeline(
116
+ model="bigcode/starcoder2-15b-instruct-v0.1",
117
+ task="text-generation",
118
+ torch_dtype=torch.bfloat16,
119
+ device_map="auto",
120
+ )
121
 
122
+ def respond(instruction: str, response_prefix: str) -> str:
123
+ messages = [{"role": "user", "content": instruction}]
124
+ prompt = pipeline.tokenizer.apply_chat_template(messages, tokenize=False)
125
+ prompt += response_prefix
126
 
127
+ teminators = [
128
+ pipeline.tokenizer.eos_token_id,
129
+ pipeline.tokenizer.convert_tokens_to_ids("###"),
130
+ ]
131
 
132
+ result = pipeline(
133
+ prompt,
134
+ max_length=256,
135
+ num_return_sequences=1,
136
+ do_sample=False,
137
+ eos_token_id=teminators,
138
+ pad_token_id=pipeline.tokenizer.eos_token_id,
139
+ truncation=True,
140
+ )
141
+ response = response_prefix + result[0]["generated_text"][len(prompt) :].split("###")[0].rstrip()
142
+ return response
143
 
 
144
 
145
+ instruction = 'Write a function in Python💫 to sum a list of integers. Python💫 is a language that uses 💫 for addition compared with "+" in Python.'
146
+ response_prefix = ""
147
 
148
+ print("[Instruction]", instruction, sep="\n")
149
+ print("\n[Response]", respond(instruction, response_prefix), sep="\n")
150
+ ```
151
 
152
+ Here is the expected output:
153
 
154
+ ``````
155
+ [Instruction]
156
+ Write a function in Python💫 to sum a list of integers. Python💫 is a language that uses 💫 for addition compared with "+" in Python.
157
 
158
+ [Response]
159
+ Here's how you can implement this function in Python:
160
 
161
+ ```python
162
+ def sum_list_of_integers(numbers):
163
+ total = 0
164
+ for num in numbers:
165
+ total 💫= num
166
+ return total
167
+ ```
168
+ ``````
169
 
170
+ ### Bias, Risks, and Limitations
171
 
172
+ StarCoder2-15B-Instruct-v0.1 is primarily finetuned for Python code generation tasks that can be verified through execution, which may lead to biases and limitations. For example, the model may not accurately follow instructions that constrains the output format and may have limitations in its performance with other programming languages and out-of-domain coding problems. In such cases, we recommend providing a response prefix or a one-shot example to guide the model.
173
 
174
+ StarCoder2-15B-Instruct-v0.1 also inherits the bias, risks, and limitations from its base StarCoder2-15B model. For more information, please refer to the [StarCoder2-15B model card](https://huggingface.co/bigcode/starcoder2-15b).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
 
176
  ## Training Details
177
 
178
+ ### Hyperparameters
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
 
180
+ - **Learning rate:** 1e-5
181
+ - **Epoch:** 4
182
+ - **Batch size:** 64
183
+ - **Warmup ratio:** 0.05
184
+ - **Scheduler:** Linear
185
+ - **Sequence length:** 1280
186
+ - **Dropout**: Not applied
187
 
188
+ ### Hardware
189
 
190
+ 1 x NVIDIA A100 80GB
191
 
192
+ ## Resources
193
 
194
+ - **Model:** [bigcode/starCoder2-15b-instruct-v0.1](https://huggingface.co/bigcode/starcoder2-instruct-15b-v0.1)
195
+ - **Code:** [bigcode-project/starcoder2-self-align](https://github.com/bigcode-project/starcoder2-self-align)
196
+ - **Dataset:** [bigcode/self-oss-instruct-sc2-exec-filter-50k](https://huggingface.co/datasets/bigcode/self-oss-instruct-sc2-exec-filter-50k/)
assets/star-align-pipeline.svg ADDED