claudios commited on
Commit
898e57a
1 Parent(s): d1d98d5

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +98 -161
README.md CHANGED
@@ -1,199 +1,136 @@
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]
 
1
  ---
2
+ language: code
3
+ thumbnail: https://cdn-media.huggingface.co/CodeBERTa/CodeBERTa.png
4
+ datasets:
5
+ - code_search_net
6
  ---
7
 
8
+ This is an *unofficial* reupload of [huggingface/CodeBERTa-small-v1](https://huggingface.co/huggingface/CodeBERTa-small-v1) in the `SafeTensors` format using `transformers` `4.41.1`. The goal of this reupload is to prevent older models that are still relevant baselines from becoming stale as a result of changes in HuggingFace. Additionally, I may include minor corrections, such as model max length configuration.
9
 
10
+ Original model card below:
11
 
12
+ ---
13
 
14
+ # CodeBERTa
15
 
16
+ CodeBERTa is a RoBERTa-like model trained on the [CodeSearchNet](https://github.blog/2019-09-26-introducing-the-codesearchnet-challenge/) dataset from GitHub.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ Supported languages:
19
 
20
+ ```shell
21
+ "go"
22
+ "java"
23
+ "javascript"
24
+ "php"
25
+ "python"
26
+ "ruby"
27
+ ```
28
 
29
+ The **tokenizer** is a Byte-level BPE tokenizer trained on the corpus using Hugging Face `tokenizers`.
30
 
31
+ Because it is trained on a corpus of code (vs. natural language), it encodes the corpus efficiently (the sequences are between 33% to 50% shorter, compared to the same corpus tokenized by gpt2/roberta).
32
 
33
+ The (small) **model** is a 6-layer, 84M parameters, RoBERTa-like Transformer model – that’s the same number of layers & heads as DistilBERT initialized from the default initialization settings and trained from scratch on the full corpus (~2M functions) for 5 epochs.
34
 
35
+ ### Tensorboard for this training ⤵️
36
 
37
+ [![tb](https://cdn-media.huggingface.co/CodeBERTa/tensorboard.png)](https://tensorboard.dev/experiment/irRI7jXGQlqmlxXS0I07ew/#scalars)
 
 
 
 
38
 
39
+ ## Quick start: masked language modeling prediction
40
 
41
+ ```python
42
+ PHP_CODE = """
43
+ public static <mask> set(string $key, $value) {
44
+ if (!in_array($key, self::$allowedKeys)) {
45
+ throw new \InvalidArgumentException('Invalid key given');
46
+ }
47
+ self::$storedValues[$key] = $value;
48
+ }
49
+ """.lstrip()
50
+ ```
51
 
52
+ ### Does the model know how to complete simple PHP code?
53
 
54
+ ```python
55
+ from transformers import pipeline
56
 
57
+ fill_mask = pipeline(
58
+ "fill-mask",
59
+ model="huggingface/CodeBERTa-small-v1",
60
+ tokenizer="huggingface/CodeBERTa-small-v1"
61
+ )
62
 
63
+ fill_mask(PHP_CODE)
64
 
65
+ ## Top 5 predictions:
66
+ #
67
+ ' function' # prob 0.9999827146530151
68
+ 'function' #
69
+ ' void' #
70
+ ' def' #
71
+ ' final' #
72
+ ```
73
 
74
+ ### Yes! That was easy 🎉 What about some Python (warning: this is going to be meta)
75
 
76
+ ```python
77
+ PYTHON_CODE = """
78
+ def pipeline(
79
+ task: str,
80
+ model: Optional = None,
81
+ framework: Optional[<mask>] = None,
82
+ **kwargs
83
+ ) -> Pipeline:
84
+ pass
85
+ """.lstrip()
86
+ ```
87
 
88
+ Results:
89
+ ```python
90
+ 'framework', 'Framework', ' framework', 'None', 'str'
91
+ ```
92
 
93
+ > This program can auto-complete itself! 😱
94
 
95
+ ### Just for fun, let's try to mask natural language (not code):
96
 
97
+ ```python
98
+ fill_mask("My name is <mask>.")
99
 
100
+ # {'sequence': '<s> My name is undefined.</s>', 'score': 0.2548016905784607, 'token': 3353}
101
+ # {'sequence': '<s> My name is required.</s>', 'score': 0.07290805131196976, 'token': 2371}
102
+ # {'sequence': '<s> My name is null.</s>', 'score': 0.06323737651109695, 'token': 469}
103
+ # {'sequence': '<s> My name is name.</s>', 'score': 0.021919190883636475, 'token': 652}
104
+ # {'sequence': '<s> My name is disabled.</s>', 'score': 0.019681859761476517, 'token': 7434}
105
+ ```
106
 
107
+ This (kind of) works because code contains comments (which contain natural language).
108
 
109
+ Of course, the most frequent name for a Computer scientist must be undefined 🤓.
110
 
 
111
 
112
+ ## Downstream task: [programming language identification](https://huggingface.co/huggingface/CodeBERTa-language-id)
113
 
114
+ See the model card for **[`huggingface/CodeBERTa-language-id`](https://huggingface.co/huggingface/CodeBERTa-language-id)** 🤯.
115
 
116
+ <br>
117
 
118
+ ## CodeSearchNet citation
119
 
120
+ <details>
121
 
122
+ ```bibtex
123
+ @article{husain_codesearchnet_2019,
124
+ title = {{CodeSearchNet} {Challenge}: {Evaluating} the {State} of {Semantic} {Code} {Search}},
125
+ shorttitle = {{CodeSearchNet} {Challenge}},
126
+ url = {http://arxiv.org/abs/1909.09436},
127
+ urldate = {2020-03-12},
128
+ journal = {arXiv:1909.09436 [cs, stat]},
129
+ author = {Husain, Hamel and Wu, Ho-Hsiang and Gazit, Tiferet and Allamanis, Miltiadis and Brockschmidt, Marc},
130
+ month = sep,
131
+ year = {2019},
132
+ note = {arXiv: 1909.09436},
133
+ }
134
+ ```
135
 
136
+ </details>