Update README.md
Browse files
README.md
CHANGED
|
@@ -14,7 +14,7 @@ language:
|
|
| 14 |
|
| 15 |
<!-- Provide a quick summary of what the model is/does. -->
|
| 16 |
|
| 17 |
-
**For transformers versions v4.40.0 or newer,
|
| 18 |
|
| 19 |
OLMo is a series of **O**pen **L**anguage **Mo**dels designed to enable the science of language models.
|
| 20 |
The OLMo models are trained on the [Dolma](https://huggingface.co/datasets/allenai/dolma) dataset.
|
|
@@ -44,8 +44,9 @@ In particular, we focus on four revisions of the 7B models:
|
|
| 44 |
|
| 45 |
To load a specific model revision with HuggingFace, simply add the argument `revision`:
|
| 46 |
```bash
|
| 47 |
-
|
| 48 |
-
|
|
|
|
| 49 |
```
|
| 50 |
|
| 51 |
All revisions/branches are listed in the file `revisions.txt`.
|
|
@@ -95,11 +96,10 @@ pip install ai2-olmo
|
|
| 95 |
```
|
| 96 |
Now, proceed as usual with HuggingFace:
|
| 97 |
```python
|
| 98 |
-
import
|
| 99 |
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-7B")
|
| 103 |
message = ["Language modeling is "]
|
| 104 |
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
|
| 105 |
# optional verifying cuda
|
|
@@ -109,17 +109,8 @@ response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50,
|
|
| 109 |
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
|
| 110 |
>> 'Language modeling is the first step to build natural language generation...'
|
| 111 |
```
|
| 112 |
-
Alternatively, with the pipeline abstraction:
|
| 113 |
-
```python
|
| 114 |
-
import hf_olmo
|
| 115 |
-
|
| 116 |
-
from transformers import pipeline
|
| 117 |
-
olmo_pipe = pipeline("text-generation", model="allenai/OLMo-7B")
|
| 118 |
-
print(olmo_pipe("Language modeling is "))
|
| 119 |
-
>> 'Language modeling is a branch of natural language processing that aims to...'
|
| 120 |
-
```
|
| 121 |
|
| 122 |
-
|
| 123 |
The quantized model is more sensitive to typing / cuda, so it is recommended to pass the inputs as `inputs.input_ids.to('cuda')` to avoid potential issues.
|
| 124 |
|
| 125 |
Note, you may see the following error if `ai2-olmo` is not installed correctly, which is caused by internal Python check naming. We'll update the code soon to make this error clearer.
|
|
|
|
| 14 |
|
| 15 |
<!-- Provide a quick summary of what the model is/does. -->
|
| 16 |
|
| 17 |
+
**For transformers versions v4.40.0 or newer, we suggest using [OLMo 7B HF](https://huggingface.co/allenai/OLMo-7B-hf) instead.**
|
| 18 |
|
| 19 |
OLMo is a series of **O**pen **L**anguage **Mo**dels designed to enable the science of language models.
|
| 20 |
The OLMo models are trained on the [Dolma](https://huggingface.co/datasets/allenai/dolma) dataset.
|
|
|
|
| 44 |
|
| 45 |
To load a specific model revision with HuggingFace, simply add the argument `revision`:
|
| 46 |
```bash
|
| 47 |
+
from hf_olmo import OLMoForCausalLM # pip install ai2-olmo
|
| 48 |
+
|
| 49 |
+
olmo = OLMoForCausalLM.from_pretrained("allenai/OLMo-7B", revision="step1000-tokens4B")
|
| 50 |
```
|
| 51 |
|
| 52 |
All revisions/branches are listed in the file `revisions.txt`.
|
|
|
|
| 96 |
```
|
| 97 |
Now, proceed as usual with HuggingFace:
|
| 98 |
```python
|
| 99 |
+
from hf_olmo import OLMoForCausalLM, OLMoTokenizerFast
|
| 100 |
|
| 101 |
+
olmo = OLMoForCausalLM.from_pretrained("allenai/OLMo-7B")
|
| 102 |
+
tokenizer = OLMoTokenizerFast.from_pretrained("allenai/OLMo-7B")
|
|
|
|
| 103 |
message = ["Language modeling is "]
|
| 104 |
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
|
| 105 |
# optional verifying cuda
|
|
|
|
| 109 |
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
|
| 110 |
>> 'Language modeling is the first step to build natural language generation...'
|
| 111 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
|
| 113 |
+
You can make this slightly faster by quantizing the model, e.g. `AutoModelForCausalLM.from_pretrained("allenai/OLMo-7B", torch_dtype=torch.float16, load_in_8bit=True)` (requires `bitsandbytes`).
|
| 114 |
The quantized model is more sensitive to typing / cuda, so it is recommended to pass the inputs as `inputs.input_ids.to('cuda')` to avoid potential issues.
|
| 115 |
|
| 116 |
Note, you may see the following error if `ai2-olmo` is not installed correctly, which is caused by internal Python check naming. We'll update the code soon to make this error clearer.
|