モデル概要
モデル特徴
モデル能力
使用事例
license: apache-2.0 language:
- en library_name: transformers
モデル詳細

OLMo 2 1B モデルカード
OLMo 2ファミリーで最小のモデルであるOLMo 2 1Bを紹介します。 OLMo 2はOLMo-mix-1124で事前学習され、 Dolmino-mix-1124を中間学習に使用しています。
OLMo 2は、言語モデルの科学を可能にするために設計されたOpen Language Modelsシリーズの最新版です。 すべてのコード、チェックポイント、ログ、および関連するトレーニング詳細をGitHubで公開しています。
サイズ | トレーニングトークン | レイヤー | 隠れサイズ | アテンションヘッド | コンテキスト長 |
---|---|---|---|---|---|
OLMo 2-1B | 4兆 | 16 | 2048 | 16 | 4096 |
OLMo 2-7B | 4兆 | 32 | 4096 | 32 | 4096 |
OLMo 2-13B | 5兆 | 40 | 5120 | 40 | 4096 |
OLMo 2-32B | 6兆 | 64 | 5120 | 40 | 4096 |
このバッチでリリースされたコアモデルは以下の通りです:
インストール
OLMo 2 1Bはtransformers v4.48以上でサポートされています:
pip install transformers>=4.48
vLLMを使用する場合、v0.7.4がリリースされるまでメインブランチからインストールする必要があります。
推論
標準のHuggingFace transformersライブラリでOLMoを使用できます:
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0425-1B")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-2-0425-1B")
message = ["言語モデリングは "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
# CUDAのオプション確認
# inputs = {k: v.to('cuda') for k,v in inputs.items()}
# olmo = olmo.to('cuda')
response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
>> '言語モデリングは テキストベースのアプリケーションの重要なコンポーネントですが、その効果は...'
より高速なパフォーマンスを得るために、以下の方法でモデルを量子化できます:
AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0425-1B",
torch_dtype=torch.float16,
load_in_8bit=True) # bitsandbytesが必要
量子化されたモデルはデータ型とCUDA操作に敏感です。潜在的な問題を避けるために、入力を直接CUDAに渡すことをお勧めします:
inputs.input_ids.to('cuda')
これらのモデルのチェックポイントをリリースしています。事前学習の場合、命名規則はstage1-stepXXX-tokensYYYB
です。スープの成分を含むチェックポイントの場合、命名規則はstage2-ingredientN-stepXXX-tokensYYYB
です。
HuggingFaceで特定のモデルリビジョンをロードするには、単にrevision
引数を追加します:
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0425-1B", revision="stage1-step140000-tokens294B")
または、以下のコードスニペットでモデルのすべてのリビジョンにアクセスできます:
from huggingface_hub import list_repo_refs
out = list_repo_refs("allenai/OLMo-2-0425-1B")
branches = [b.name for b in out.branches]
ファインチューニング
モデルのファインチューニングは、最終チェックポイント(このモデルのmain
リビジョン)または多くの中間チェックポイントから行うことができます。2つのチューニングレシピが利用可能です。
- OLMoリポジトリでファインチューニング:
torchrun --nproc_per_node=8 scripts/train.py {path_to_train_config} \
--data.paths=[{path_to_data}/input_ids.npy] \
--data.label_mask_paths=[{path_to_data}/label_mask.npy] \
--load_path={path_to_checkpoint} \
--reset_trainer_state
詳細なドキュメントはGitHub READMEを参照してください。
- AI2のOpen Instructリポジトリでさらにファインチューニングのサポートが開発中です。詳細はこちらです。
モデル説明
- 開発者: Allen Institute for AI (Ai2)
- モデルタイプ: Transformerスタイルの自己回帰言語モデル
- 言語 (NLP): 英語
- ライセンス: コードとモデルはApache 2.0でリリースされています。
- 連絡先: 技術的な問い合わせ:
olmo@allenai.org
。プレス:press@allenai.org
- データカットオフ: 2023年12月
モデルソース
- プロジェクトページ: https://allenai.org/olmo
- リポジトリ:
- コアリポジトリ(トレーニング、推論、ファインチューニングなど): https://github.com/allenai/OLMo
- 評価コード: https://github.com/allenai/OLMo-Eval
- さらにファインチューニングコード: https://github.com/allenai/open-instruct
- 論文: https://arxiv.org/abs/2501.00656
評価
OLMo 2 1Bのコアモデル結果は以下の通りです。
インストラクトモデル | 平均 | FLOP×10²³ | AE2 | BBH | DROP | GSM8K | IFE | MATH | MMLU | 安全性 | PQA | TQA |
---|---|---|---|---|---|---|---|---|---|---|---|---|
クローズドAPIモデル | ||||||||||||
GPT-3.5 Turbo 0125 | 60.5 | n/a | 38.7 | 66.6 | 70.2 | 74.3 | 66.9 | 41.2 | 70.2 | 69.1 | 45.0 | 62.9 |
GPT 4o Mini 0724 | 65.7 | n/a | 49.7 | 65.9 | 36.3 | 83.0 | 83.5 | 67.9 | 82.2 | 84.9 | 39.0 | 64.8 |
オープンウェイトモデル 1-1.7Bパラメータ | ||||||||||||
SmolLM2 1.7B | 34.2 | 1.1 | 5.8 | 39.8 | 30.9 | 45.3 | 51.6 | 20.3 | 34.3 | 52.4 | 16.4 | 45.3 |
Gemma 3 1B | 38.3 | 1.2 | 20.4 | 39.4 | 25.1 | 35.0 | 60.6 | 40.3 | 38.9 | 70.2 | 9.6 | 43.8 |
Llama 3.1 1B | 39.3 | 6.7 | 10.1 | 40.2 | 32.2 | 45.4 | 54.0 | 21.6 | 46.7 | 87.2 | 13.8 | 41.5 |
Qwen 2.5 1.5B | 41.7 | 1.7 | 7.4 | 45.8 | 13.4 | 66.2 | 44.2 | 40.6 | 59.7 | 77.6 | 15.5 | 46.5 |
完全オープンモデル | ||||||||||||
OLMo 1B 0724 | 24.4 | 0.22 | 2.4 | 29.9 | 27.9 | 10.8 | 25.3 | 2.2 | 36.6 | 52.0 | 12.1 | 44.3 |
OLMo 2 1B | 42.7 | 0.35 | 9.1 | 35.0 | 34.6 | 68.3 | 70.1 | 20.7 | 40.0 | 87.6 | 12.9 | 48.7 |
モデル詳細
トレーニング
OLMo 2 1B | OLMo 2 7B | OLMo 2 13B | OLMo 2 32B | |
---|---|---|---|---|
事前学習ステージ1 | 4兆トークン (1エポック) |
4兆トークン (1エポック) |
5兆トークン (1.2エポック) |
6兆トークン (1.5エポック) |
事前学習ステージ2 | 50Bトークン | 50Bトークン (3回実行) マージ |
100Bトークン (3回実行) 300Bトークン (1回実行) マージ |
100Bトークン (3回実行) 300Bトークン (1回実行) マージ |
ポストトレーニング | SFT+DPO+GRPO (preference mix) |
SFT + DPO + PPO (preference mix) |
SFT + DPO + PPO (preference mix) |
SFT + DPO + GRPO (preference mix) |
ステージ1: 初期事前学習
- データセット: OLMo-mix-1124 (3.9Tトークン)
- カバレッジ: 総事前学習予算の95%以上
- 1Bモデル: ~1エポック
ステージ2: 中間学習
- データセット: Dolmino-Mix-1124
- 1つのトレーニングミックス:
- 50Bトークン
- ミックス構成: 50%高品質ウェブデータ + 学術/Q&A/指示/数学コンテンツ
モデルマージング
- 1Bモデル: 50Bミックスで1バージョンのみトレーニング、マージは行わず。
バイアス、リスク、制限
ベースまたはファインチューニングされた言語モデルと同様に、AIはユーザーによって有害でセンシティブなコンテンツを生成するように促される可能性があります。特にバイアスに関連するケースでは、このようなコンテンツが意図せず生成されることもあるため、この技術を適用する際にはリスクを考慮することをお勧めします。さらに、OLMoや他のLLMからの多くのステートメントはしばしば不正確であるため、事実を確認する必要があります。
引用
@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},
}
モデルカード連絡先
このモデルカードのエラーについては、olmo@allenai.org
までご連絡ください。



