antolin commited on
Commit
4087aa8
·
1 Parent(s): 0d6185e

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +64 -191
README.md CHANGED
@@ -2,198 +2,71 @@
2
  datasets:
3
  - code_search_net
4
  ---
5
- # Model Card for Model ID
6
 
7
- <!-- Provide a quick summary of what the model is/does. -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
- This modelcard aims to be a base template for new models. It has been generated using [this raw template](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md?plain=1).
10
-
11
- ## Model Details
12
-
13
- ### Model Description
14
-
15
- <!-- Provide a longer summary of what this model is. -->
16
-
17
-
18
-
19
- - **Developed by:** [More Information Needed]
20
- - **Shared by [optional]:** [More Information Needed]
21
- - **Model type:** [More Information Needed]
22
- - **Language(s) (NLP):** [More Information Needed]
23
- - **License:** [More Information Needed]
24
- - **Finetuned from model [optional]:** [More Information Needed]
25
-
26
- ### Model Sources [optional]
27
-
28
- <!-- Provide the basic links for the model. -->
29
-
30
- - **Repository:** [More Information Needed]
31
- - **Paper [optional]:** [More Information Needed]
32
- - **Demo [optional]:** [More Information Needed]
33
-
34
- ## Uses
35
-
36
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
37
-
38
- ### Direct Use
39
-
40
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
41
-
42
- [More Information Needed]
43
-
44
- ### Downstream Use [optional]
45
-
46
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
47
-
48
- [More Information Needed]
49
-
50
- ### Out-of-Scope Use
51
-
52
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
53
-
54
- [More Information Needed]
55
-
56
- ## Bias, Risks, and Limitations
57
-
58
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
59
-
60
- [More Information Needed]
61
-
62
- ### Recommendations
63
-
64
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
65
-
66
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
67
-
68
- ## How to Get Started with the Model
69
-
70
- Use the code below to get started with the model.
71
-
72
- [More Information Needed]
73
-
74
- ## Training Details
75
-
76
- ### Training Data
77
-
78
- <!-- This should link to a Data 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. -->
79
-
80
- [More Information Needed]
81
-
82
- ### Training Procedure
83
-
84
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
85
-
86
- #### Preprocessing [optional]
87
-
88
- [More Information Needed]
89
-
90
-
91
- #### Training Hyperparameters
92
-
93
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
94
-
95
- #### Speeds, Sizes, Times [optional]
96
-
97
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
98
-
99
- [More Information Needed]
100
-
101
- ## Evaluation
102
-
103
- <!-- This section describes the evaluation protocols and provides the results. -->
104
-
105
- ### Testing Data, Factors & Metrics
106
-
107
- #### Testing Data
108
-
109
- <!-- This should link to a Data Card if possible. -->
110
-
111
- [More Information Needed]
112
-
113
- #### Factors
114
-
115
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
116
-
117
- [More Information Needed]
118
-
119
- #### Metrics
120
-
121
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
122
-
123
- [More Information Needed]
124
-
125
- ### Results
126
-
127
- [More Information Needed]
128
-
129
- #### Summary
130
-
131
-
132
-
133
- ## Model Examination [optional]
134
-
135
- <!-- Relevant interpretability work for the model goes here -->
136
-
137
- [More Information Needed]
138
-
139
- ## Environmental Impact
140
-
141
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
142
-
143
- 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).
144
-
145
- - **Hardware Type:** [More Information Needed]
146
- - **Hours used:** [More Information Needed]
147
- - **Cloud Provider:** [More Information Needed]
148
- - **Compute Region:** [More Information Needed]
149
- - **Carbon Emitted:** [More Information Needed]
150
-
151
- ## Technical Specifications [optional]
152
-
153
- ### Model Architecture and Objective
154
-
155
- [More Information Needed]
156
-
157
- ### Compute Infrastructure
158
-
159
- [More Information Needed]
160
-
161
- #### Hardware
162
-
163
- [More Information Needed]
164
-
165
- #### Software
166
-
167
- [More Information Needed]
168
-
169
- ## Citation [optional]
170
-
171
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
172
-
173
- **BibTeX:**
174
-
175
- [More Information Needed]
176
-
177
- **APA:**
178
-
179
- [More Information Needed]
180
-
181
- ## Glossary [optional]
182
-
183
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
184
-
185
- [More Information Needed]
186
-
187
- ## More Information [optional]
188
-
189
- [More Information Needed]
190
-
191
- ## Model Card Authors [optional]
192
-
193
- [More Information Needed]
194
-
195
- ## Model Card Contact
196
-
197
- [More Information Needed]
198
 
199
 
 
2
  datasets:
3
  - code_search_net
4
  ---
 
5
 
6
+ # Model Architecture
7
+
8
+ This model follows the distilroberta-base architecture. Futhermore, this model was initialized with the checkpoint of distilroberta-base.
9
+
10
+ # Pre-training phase
11
+
12
+ This model was pre-trained with the MLM objective (`mlm_probability=0.15`).
13
+
14
+ During this phase, the inputs had the following format:
15
+ $$\left[[CLS], t_1, \dots, t_n, [SEP], w_1, \dots, w_m\right[EOS]]$$
16
+ where $t_1, \dots, t_n$ are the code tokens and $w_1, \dots, w_m$ are the natural language description tokens. More concretely, this is the snippet that tokenizes the input:
17
+ ```python
18
+ def tokenize_function_bimodal(examples, tokenizer, max_len):
19
+ codes = [' '.join(example) for example in examples['func_code_tokens']]
20
+ nls = [' '.join(example) for example in examples['func_documentation_tokens']]
21
+ pairs = [[c, nl] for c, nl in zip(codes, nls)]
22
+ return tokenizer(pairs, max_length=max_len, padding="max_length", truncation=True)
23
+ ```
24
+
25
+ # Training details
26
+
27
+ - Max length: 512
28
+ - Effective batch size: 64
29
+ - Total steps: 60000
30
+ - Learning rate: 5e-4
31
+
32
+ # Usage
33
+
34
+ ```python
35
+ model = AutoModelForMaskedLM.from_pretrained('antolin/distilroberta-base-csn-python-bimodal')
36
+ tokenizer = AutoTokenizer.from_pretrained('antolin/distilroberta-base-csn-python-bimodal')
37
+ mask_filler = pipeline("fill-mask", model=model, tokenizer=tokenizer)
38
+ code_tokens = ["def", "<mask>", "(", "a", ",", "b", ")", ":", "if", "a", ">", "b", ":", "return", "a", "else", "return", "b"]
39
+ nl_tokens = ["return", "the", "maximum", "value"]
40
+ input_text = ' '.join(code_tokens) + tokenizer.sep_token + ' '.join(nl_tokens)
41
+ pprint(mask_filler(input_text, top_k=5))
42
+ ```
43
+ ```shell
44
+ [{'score': 0.4645618796348572,
45
+ 'sequence': 'def max ( a, b ) : if a > b : return a else return b return '
46
+ 'the maximum value',
47
+ 'token': 19220,
48
+ 'token_str': ' max'},
49
+ {'score': 0.40963634848594666,
50
+ 'sequence': 'def maximum ( a, b ) : if a > b : return a else return b '
51
+ 'return the maximum value',
52
+ 'token': 4532,
53
+ 'token_str': ' maximum'},
54
+ {'score': 0.02103462442755699,
55
+ 'sequence': 'def min ( a, b ) : if a > b : return a else return b return '
56
+ 'the maximum value',
57
+ 'token': 5251,
58
+ 'token_str': ' min'},
59
+ {'score': 0.014217409305274487,
60
+ 'sequence': 'def value ( a, b ) : if a > b : return a else return b return '
61
+ 'the maximum value',
62
+ 'token': 923,
63
+ 'token_str': ' value'},
64
+ {'score': 0.010762304067611694,
65
+ 'sequence': 'def minimum ( a, b ) : if a > b : return a else return b '
66
+ 'return the maximum value',
67
+ 'token': 3527,
68
+ 'token_str': ' minimum'}]
69
+ ```
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
 
72