Update README.md
Browse files
README.md
CHANGED
@@ -3,197 +3,134 @@ library_name: transformers
|
|
3 |
tags: []
|
4 |
---
|
5 |
|
6 |
-
# Model Card for Model ID
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
-
|
23 |
-
|
24 |
-
- **
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
###
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
[
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
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]
|
|
|
3 |
tags: []
|
4 |
---
|
5 |
|
|
|
6 |
|
7 |
+
# SmolLM
|
8 |
+
|
9 |
+
|
10 |
+
## Table of Contents
|
11 |
+
|
12 |
+
1. [Model Summary](##model-summary)
|
13 |
+
2. [Use](##use)
|
14 |
+
3. [Limitations](##limitations)
|
15 |
+
4. [Training](##training)
|
16 |
+
5. [License](##license)
|
17 |
+
6. [Citation](##citation)
|
18 |
+
|
19 |
+
## Model Summary
|
20 |
+
|
21 |
+
SmolLM-135M model is a 135M parameter model trained on TO COMPLETE
|
22 |
+
|
23 |
+
- **Languages:** English and Python code
|
24 |
+
|
25 |
+
## Use
|
26 |
+
|
27 |
+
### Intended use
|
28 |
+
|
29 |
+
The model was trained on [HuggingFaceTB/cosmo-corpus-v2](link)
|
30 |
+
|
31 |
+
### Generation
|
32 |
+
First, make sure to install `transformers` from source:
|
33 |
+
```bash
|
34 |
+
pip install git+https://github.com/huggingface/transformers.git
|
35 |
+
```
|
36 |
+
|
37 |
+
#### Running the model on CPU/GPU/multi GPU
|
38 |
+
* _Using full precision_
|
39 |
+
```python
|
40 |
+
# pip install git+https://github.com/huggingface/transformers.git # TODO: merge PR to main
|
41 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
42 |
+
checkpoint = "HuggingFaceTB/SmolLM-135M"
|
43 |
+
device = "cuda" # for GPU usage or "cpu" for CPU usage
|
44 |
+
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
|
45 |
+
# for multiple GPUs install accelerate and do `model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")`
|
46 |
+
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
|
47 |
+
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
|
48 |
+
outputs = model.generate(inputs)
|
49 |
+
print(tokenizer.decode(outputs[0]))
|
50 |
+
```
|
51 |
+
```bash
|
52 |
+
>>> print(f"Memory footprint: {model.get_memory_footprint() / 1e6:.2f} MB")
|
53 |
+
Memory footprint: 12624.81 MB
|
54 |
+
```
|
55 |
+
* _Using `torch.bfloat16`_
|
56 |
+
```python
|
57 |
+
# pip install accelerate
|
58 |
+
import torch
|
59 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
60 |
+
checkpoint = "HuggingFaceTB/SmolLM-135M"
|
61 |
+
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
|
62 |
+
# for fp16 use `torch_dtype=torch.float16` instead
|
63 |
+
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto", torch_dtype=torch.bfloat16)
|
64 |
+
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to("cuda")
|
65 |
+
outputs = model.generate(inputs)
|
66 |
+
print(tokenizer.decode(outputs[0]))
|
67 |
+
```
|
68 |
+
```bash
|
69 |
+
>>> print(f"Memory footprint: {model.get_memory_footprint() / 1e6:.2f} MB")
|
70 |
+
Memory footprint: 269.03 MB
|
71 |
+
```
|
72 |
+
|
73 |
+
#### Quantized Versions through `bitsandbytes`
|
74 |
+
* _Using 8-bit precision (int8)_
|
75 |
+
|
76 |
+
```python
|
77 |
+
# pip install bitsandbytes accelerate
|
78 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
|
79 |
+
# to use 4bit use `load_in_4bit=True` instead
|
80 |
+
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
|
81 |
+
checkpoint = "HuggingFaceTB/SmolLM-135M"
|
82 |
+
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
|
83 |
+
model = AutoModelForCausalLM.from_pretrained(checkpoint, quantization_config=quantization_config)
|
84 |
+
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to("cuda")
|
85 |
+
outputs = model.generate(inputs)
|
86 |
+
print(tokenizer.decode(outputs[0]))
|
87 |
+
```
|
88 |
+
```bash
|
89 |
+
>>> print(f"Memory footprint: {model.get_memory_footprint() / 1e6:.2f} MB")
|
90 |
+
# load_in_8bit
|
91 |
+
Memory footprint: 162.87 MB
|
92 |
+
# load_in_4bit
|
93 |
+
>>> print(f"Memory footprint: {model.get_memory_footprint() / 1e6:.2f} MB")
|
94 |
+
Memory footprint: 109.78 MB
|
95 |
+
```
|
96 |
+
### Attribution & Other Requirements
|
97 |
+
|
98 |
+
The pretraining dataset of the model was filtered for permissive licenses and code with no license only. Nevertheless, the model can generate source code verbatim from the dataset. The code's license might require attribution and/or other specific requirements that must be respected. We provide a [search index](https://huggingface.co/spaces/bigcode/search-v2) that lets you search through the pretraining data to identify where the generated code came from, and apply the proper attribution to your code.
|
99 |
+
|
100 |
+
# Limitations
|
101 |
+
|
102 |
+
The model has been trained on source code from 600+ programming languages. The predominant language in source is English although other languages are also present. As such the model is capable to generate code snippets provided some context but the generated code is not guaranteed to work as intended. It can be inefficient, contain bugs or exploits. See [the paper](https://huggingface.co/papers/2402.19173) for an in-depth discussion of the model limitations.
|
103 |
+
|
104 |
+
# Training
|
105 |
+
|
106 |
+
## Model
|
107 |
+
|
108 |
+
- **Architecture:** Transformer decoder with grouped-query and sliding window attention and Fill-in-the-Middle objective
|
109 |
+
- **Pretraining steps:** 600k
|
110 |
+
- **Pretraining tokens:** 600B
|
111 |
+
- **Precision:** bfloat16
|
112 |
+
|
113 |
+
## Hardware
|
114 |
+
|
115 |
+
- **GPUs:** 64 H100
|
116 |
+
|
117 |
+
## Software
|
118 |
+
|
119 |
+
- **Training Framework:** [Nanotron](https://github.com/huggingface/nanotron/tree/main)
|
120 |
+
|
121 |
+
# License
|
122 |
+
|
123 |
+
TO MODIFY
|
124 |
+
|
125 |
+
# Citation
|
126 |
+
TO MODIFY
|
127 |
+
```bash
|
128 |
+
@misc{lozhkov2024starcoder,
|
129 |
+
title={StarCoder 2 and The Stack v2: The Next Generation},
|
130 |
+
author={Anton Lozhkov and Raymond Li and Loubna Ben Allal and Federico Cassano and Joel Lamy-Poirier and Nouamane Tazi and Ao Tang and Dmytro Pykhtar and Jiawei Liu and Yuxiang Wei and Tianyang Liu and Max Tian and Denis Kocetkov and Arthur Zucker and Younes Belkada and Zijian Wang and Qian Liu and Dmitry Abulkhanov and Indraneil Paul and Zhuang Li and Wen-Ding Li and Megan Risdal and Jia Li and Jian Zhu and Terry Yue Zhuo and Evgenii Zheltonozhskii and Nii Osae Osae Dade and Wenhao Yu and Lucas Krauß and Naman Jain and Yixuan Su and Xuanli He and Manan Dey and Edoardo Abati and Yekun Chai and Niklas Muennighoff and Xiangru Tang and Muhtasham Oblokulov and Christopher Akiki and Marc Marone and Chenghao Mou and Mayank Mishra and Alex Gu and Binyuan Hui and Tri Dao and Armel Zebaze and Olivier Dehaene and Nicolas Patry and Canwen Xu and Julian McAuley and Han Hu and Torsten Scholak and Sebastien Paquet and Jennifer Robinson and Carolyn Jane Anderson and Nicolas Chapados and Mostofa Patwary and Nima Tajbakhsh and Yacine Jernite and Carlos Muñoz Ferrandis and Lingming Zhang and Sean Hughes and Thomas Wolf and Arjun Guha and Leandro von Werra and Harm de Vries},
|
131 |
+
year={2024},
|
132 |
+
eprint={2402.19173},
|
133 |
+
archivePrefix={arXiv},
|
134 |
+
primaryClass={cs.SE}
|
135 |
+
}
|
136 |
+
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|