togethercomputer/OLMo-snapshot
forked from EugeneLYC/OLMo
Captured source
source ↗togethercomputer/OLMo-snapshot
Description: Modeling, training, eval, and inference code for OLMo
License: Apache-2.0
Stars: 0
Forks: 0
Open issues: 0
Created: 2025-07-30T23:42:49Z
Pushed: 2025-07-31T00:07:59Z
Default branch: main
Fork: yes
Parent repository: EugeneLYC/OLMo
Archived: no
README:
OLMo is a repository for training and using AI2's state-of-the-art open language models. It is designed by scientists, for scientists.
Installation
First, install PyTorch following the instructions specific to your operating system.
For training and fine-tuning, we recommend installing from source:
git clone https://github.com/allenai/OLMo.git cd OLMo pip install -e .[all]
You can also install from PyPI with:
pip install ai2-olmo
Pretraining
OLMo pretraining follows a two-stage training procedure. In the first stage, we train on large amounts of mostly web-based data: OLMo-mix-1124 In the second stage, we train on a smaller amount of high-quality, targeted data: Dolmino-mix-1124
You can find *all* the checkpoints, at minimum every 1000 training steps, on Huggingface:
Steps to reproduce
To reproduce any of the training processes described below, run this:
torchrun --nproc_per_node=8 scripts/train.py {path_to_train_config}For the training config, use any of the configs listed below.
If you want to override any of the settings in the training config without having to write a new config every time, you can do this:
torchrun --nproc_per_node=8 scripts/train.py {path_to_train_config} \
--setting1=value \
--setting2=value \
--setting3.subsetting1=valueThe training configs below refer to training data that gets streamed in live over HTTP. To reproduce at large scale, we recommend downloading the files locally and changing the paths to point to your local file system.
*Note*: Some of the files that the training configs refer to are still being uploaded (as of 2024-11-27). They should all appear in the next few days as the uploads complete.
Stage 1
Stage 1 is the biggest stage, where we train on 4T or 5T tokens on largely web-based data.
| | OLMo2 7B | OLMo2 13B | |-----------------|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | Number of tokens| 4 Trillion | 5 Trillion | | Checkpoint | stage1-step928646-tokens3896B | stage1-step596057-tokens5001B | | Training config | [OLMo2-7B-stage1.yaml](configs/official-1124/OLMo2-7B-stage1.yaml) | [OLMo2-13B-stage1.yaml](configs/official-1124/OLMo2-13B-stage1.yaml) | | WandB | wandb.ai/…/OLMo2-7B (link to come) | wandb.ai/…/OLMo2-13B (link to come) |
Stage 2 for the 7B
For the 7B model, we train three times with different data order on 50B high quality tokens, and then average ("soup") the models.
| | Checkpoint | Training config | WandB | |------------------------|-------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|-------------| | random seed 42 | stage2-ingredient1-step11931-tokens50B | [OLMo2-7B-stage2-seed42.yaml](configs/official-1124/OLMo2-7B-stage2-seed42.yaml) | link to come | | random seed 42069 | stage2-ingredient2-step11931-tokens50B | [OLMo2-7B-stage2-seed42069.yaml](configs/official-1124/OLMo2-7B-stage2-seed42069.yaml) | link to come | | random seed 666 | stage2-ingredient3-step11931-tokens50B | [OLMo2-7B-stage2-seed666.yaml](configs/official-1124/OLMo2-7B-stage2-seed666.yaml) | link to come | | final souped model | main | no config, we just averaged the weights in Python | |
The training configs linked here are set up to download the latest checkpoint after stage 1, and start training from there.
Stage 2 for the 13B
For the 13B model, we train three times with different data order on 100B high quality tokens, and one more time on 300B high quality tokens. Then we average ("soup") the models.
| | Checkpoint | Training config | WandB | |------------------------|----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|-------------| | random seed 1110, 100B | stage2-ingredient1-step11931-tokens100B | [OLMo2-13B-stage2-seed1110-100B.yaml](configs/official-1124/OLMo2-13B-stage2-seed1110-100B.yaml) | link to come | | random seed 2662, 100B | stage2-ingredient2-step11931-tokens100B | [OLMo2-13B-stage2-seed2662-100B.yaml](configs/official-1124/OLMo2-13B-stage2-seed2662-100B.yaml) | link to come | | random seed 6209, 100B | stage2-ingredient3-step11931-tokens100B | [OLMo2-13B-stage2-seed6209-100B.yaml](configs/official-1124/OLMo2-13B-stage2-seed6209-100B.yaml) | link to come | | random seed 2662, 300B | stage2-ingredient4-step11931-tokens300B | [OLMo2-13B-stage2-seed2662-300B.yaml](configs/official-1124/OLMo2-13B-stage2-seed2662-300B.yaml) | link to come | | final souped model |…
Excerpt shown — open the source for the full document.
Notability
notability 2.0/10Routine fork of an existing repo