allenai/Olmo-core
allenai/Olmo-core has 1,792 GitHub stars and 371 forks. GitHot measured +2 stars in 24 hours and +17 in 7 days. Last checked 2026-11-12 20:10 UTC. Last push 2026-11-02.
PyTorch building blocks for the OLMo ecosystem
측정된 스타 증가
- in 24h
- +2
- in 7 days
- +17
- in 15 days
- 기록 수집 중
- in 1 month
- 기록 수집 중
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
Original
Olmo-core
Building blocks for OLMo modeling and training
Installation
First install PyTorch according to the instructions specific to your operating system and hardware.
For development, we recommend installing from source:
git clone https://github.com/allenai/Olmo-core.git
cd Olmo-core
pip install -e .[all]
Or you can install from PyPI with:
pip install ai2-olmo-core
There are a number of optional dependencies that must be installed to use certain functionality as well, including:
- flash-attn, ring-flash-attn, and TransformerEngine for the corresponding attention backends.
- Liger-Kernel for a low-memory "fused-linear" loss implementation.
- torchao for float8 training.
- grouped_gemm for dropless mixture-of-experts (MoE) models. You may need to compile from source until PR #21 is released (post v0.1.6).
- QuACK for some CuTe-based kernels.
The published Docker images contain all core and optional dependencies, and are regularly tested on our in-house H100 clusters. But there are several things to keep in mind if you intend to use these images:
- They do not come with the Olmo-core package installed, only its dependencies, to accommodate for regular code changes.
- They may not work on your own cluster if you have different hardware or driver/CUDA versions.
If the published images do not work for your use-case for any of the above reasons, you could adapt our Dockerfile to build your own images.
Official training scripts
Official training scripts for released models can be found in src/scripts/official/.
These scripts are meant to be launched with torchrun, or with Olmo-core's Beaker launch CLI if you have access to Beaker.
For example:
torchrun --nproc-per-node=8 src/scripts/official/OLMo2/OLMo-2-0325-32B-train.py \
--save-folder=/path/to/save/checkpoints
You can override most configuration options from the command-line. For example, to override the learning rate you could launch the script like this:
torchrun --nproc-per-node=8 src/scripts/official/OLMo2/OLMo-2-0325-32B-train.py \
--save-folder=/path/to/save/checkpoints \
--train_module.optim.lr=6e-3
To continue annealing from a checkpoint, we use a separate script which can be launched like this:
torchrun --nproc-per-node=8 src/scripts/official/OLMo2/OLMo-2-0325-32B-anneal.py \
--save-folder=/path/to/save/checkpoints \
--checkpoint=https://storage.googleapis.com/ai2-llm/peteish32/step721901
Available Training Scripts
| Model Family | Directory | Description |
|---|---|---|
| OLMo-2 | src/scripts/official/OLMo2/ |
Training scripts and model card for OLMo-2 32B models |
| OLMo-3 | src/scripts/official/OLMo3/ |
Training scripts and model cards for OLMo-3 7B and 32B models |
Inference
With Hugging Face Transformers
You can use our Hugging Face transformers integration to run inference on the OLMo checkpoints:
pip install transformers>=4.57.0
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-1125-32B")
tokenizer = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B")
message = ["Language modeling is "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
# inputs = {k: v.to('cuda') for k,v in inputs.items()} # optional verifying cuda
# olmo = olmo.to('cuda')
response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, temperature=1.0, top_p=0.7)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
Alternatively, with the Hugging Face pipeline abstraction:
from transformers import pipeline
olmo_pipe = pipeline("text-generation", model="allenai/Olmo-3-1125-32B")
print(olmo_pipe("Language modeling is"))
With vLLM
vLLM provides high-throughput inference for OLMo models. You can use it for offline batched inference:
pip install vllm>=0.11.0
from vllm import LLM, SamplingParams
llm = LLM(model="allenai/Olmo-3-1125-32B")
sampling_params = SamplingParams(temperature=1.0, top_p=0.7)
prompts = ["Language modeling is"]
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
For more details, see the vLLM documentation.
With Olmo-core (beta)
Autoregressive generation is supported directly in Olmo-core. Using this capability, we provide a chat-loop demo that can be used to interact with models in an interactive chat session:
python -m olmo_core.generate.chat https://olmo-checkpoints.org/ai2-llm/Olmo-3-1025-7B/stage3/step11921/ --max-new-tokens 512
Evaluation
Additional tools for evaluating OLMo models are available at the OLMo Eval and olmes repositories.
Development
The Python library source code is located in src/olmo_core. The corresponding tests are located in src/test. The library docs are located in docs. You can build the docs locally with make docs.
Code checks:
- We use
pytestto run tests. You can run all tests withpytest -v src/test. You can also pointpytestat a specific test file to run it individually. - We use
isortandblackfor code formatting. Ideally you should integrate these into your editor, but you can also run them manually or configure them with a pre-commit hook. To validate that all files are formatted correctly, runmake style-check. - We use
ruffas our primary linter. You can run it withmake lint-check. - We use
mypyas our type checker. You can run it withmake type-check.
Citing
@misc{olmo20242olmo2furious,
title={{2 OLMo 2 Furious}},
author={{Team OLMo} and Pete Walsh and Luca Soldaini and Dirk Groeneveld and Kyle Lo and Shane Arora and Akshita Bhagia and Yuling Gu and Shengyi Huang and Matt Jordan and Nathan Lambert and Dustin Schwenk and Oyvind Tafjord and Taira Anderson and David Atkinson and Faeze Brahman and Christopher Clark and Pradeep Dasigi and Nouha Dziri and Michal Guerquin and Hamish Ivison and Pang Wei Koh and Jiacheng Liu and Saumya Malik and William Merrill and Lester James V. Miranda and Jacob Morrison and Tyler Murray and Crystal Nam and Valentina Pyatkin and Aman Rangapur and Michael Schmitz and Sam Skjonsberg and David Wadden and Christopher Wilhelm and Michael Wilson and Luke Zettlemoyer and Ali Farhadi and Noah A. Smith and Hannaneh Hajishirzi},
year={2024},
eprint={2501.00656},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2501.00656},
}
관련 프로젝트 살펴보기
tensorflow/tensorflow
모두를 위한 오픈소스 머신러닝 프레임워크
201,505 스타huggingface/transformers
🤗 Transformers: 텍스트, 비전, 오디오, 멀티모달 분야의 최첨단 머신러닝 모델을 위한 모델 정의 프레임워크로, 추론과 학습을 모두 지원합니다.
168,917 스타AUTOMATIC1111/stable-diffusion-webui
Stable Diffusion 웹 UI
165,300 스타Comfy-Org/ComfyUI
그래프와 노드로 구성된 인터페이스를 갖춘, 가장 강력하고 모듈성이 뛰어난 확산 모델 GUI, API, 백엔드입니다. 세계에서 가장 빠른 로컬 추론 엔진입니다.
146,472 스타