license: apache-2.0
language:
- en
library_name: transformers
模型详情
OLMo 2 32B模型卡
我们推出OLMo 2系列中规模最大的32B参数模型。该模型基于OLMo-mix-1124预训练,并在中期训练阶段使用Dolmino-mix-1124数据集。
OLMo 2是开放语言模型系列的最新成果,旨在推动语言模型科学研究。我们已在GitHub开源全部代码、检查点、训练日志及相关细节。
本批次发布的核心模型包括:
安装指南
需使用transformers v4.48或更高版本:
pip install transformers>=4.48
若使用vLLM推理引擎,需从主分支安装(等待v0.7.4正式发布)
推理部署
可通过标准HuggingFace transformers库调用:
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0325-32B")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-2-0325-32B")
message = ["语言建模是"]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
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])
>> '语言建模是文本应用的核心组件,其有效性...'
如需量化加速,可采用以下方式加载8bit模型:
AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0325-32B",
torch_dtype=torch.float16,
load_in_8bit=True)
量化模型对数据类型和CUDA操作更敏感,建议直接转换输入数据:
inputs.input_ids.to('cuda')
我们发布了多阶段训练检查点。预训练阶段命名格式为stage1-stepXXX-tokensYYYB
,混合训练阶段为stage2-ingredientN-stepXXX-tokensYYYB
。
加载特定版本模型:
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0325-32B", revision="step250000-tokens2098B")
查看所有可用版本:
from huggingface_hub import list_repo_refs
out = list_repo_refs("allenai/OLMo-2-0325-32B")
branches = [b.name for b in out.branches]
微调指导
可从最终检查点(main分支)或中间检查点进行微调,提供两种方案:
- 使用OLMo-core仓库:
torchrun --nproc-per-node=8 ./src/scripts/official/OLMo2-0325-32B-train.py run01
支持参数覆盖,例如调整学习率:
torchrun --nproc-per-node=8 ./src/scripts/train/OLMo2-0325-32B-train.py run01 --train_module.optim.lr=6e-3
详见GitHub文档
- AI2的Open Instruct仓库正在开发进阶微调支持,详情参见此处
模型规格
- 开发机构: 艾伦人工智能研究院(Ai2)
- 模型类型: 自回归Transformer语言模型
- 支持语言: 英语
- 许可协议: Apache 2.0开源协议
- 联系方式: 技术咨询
olmo@allenai.org
;媒体联络press@allenai.org
- 知识截止: 2023年12月
资源链接
- 项目主页: https://allenai.org/olmo
- 代码仓库:
- 核心库(训练/推理/微调): https://github.com/allenai/OLMo-core
- 评估代码: https://github.com/allenai/OLMo-Eval
- 进阶微调: https://github.com/allenai/open-instruct
- 论文: https://arxiv.org/abs/2501.00656
评估结果
OLMo 2 32B核心评估指标如下:
模型 |
训练FLOPs |
平均分 |
ARC/C |
HSwag |
WinoG |
MMLU |
DROP |
NQ |
AGIEval |
GSM8k |
MMLUPro |
TriviaQA |
开源模型 |
|
|
|
|
|
|
|
|
|
|
|
|
Llama-2-13B |
1.6·10²³ |
54.1 |
67.3 |
83.9 |
74.9 |
55.7 |
45.6 |
38.4 |
41.5 |
28.1 |
23.9 |
81.3 |
Mistral-7B-v0.3 |
未公开 |
58.8 |
78.3 |
83.1 |
77.7 |
63.5 |
51.8 |
37.2 |
47.3 |
40.1 |
30 |
79.3 |
OLMo-2-0325-32B |
1.3·10²⁴ |
72.9 |
90.4 |
89.7 |
78.7 |
74.9 |
74.3 |
50.2 |
61.0 |
78.8 |
43.3 |
88.0 |
注:ARC/C至NQ为开发跟踪指标,AGIEval至TriviaQA为新增评估项
训练细节
训练流程
|
OLMo 2 32B |
OLMo 2 13B |
OLMo 2 7B |
预训练第一阶段 |
6万亿token (1.5周期) |
5万亿token (1.2周期) |
4万亿token (1周期) |
预训练第二阶段 |
100B token (3次) 300B token (1次) 合并 |
100B token (3次) 300B token (1次) 合并 |
50B token (3次) 合并 |
后训练 |
SFT+DPO+GRPO (偏好混合) |
SFT+DPO+PPO (偏好混合) |
SFT+DPO+PPO (偏好混合) |
第一阶段:初始预训练
第二阶段:中期训练
- 数据集: Dolmino-Mix-1124
- 两种混合方案:
- 构成比例: 50%高质量网页数据 + 学术/问答/指令/数学内容
模型合并
- 32B模型: 3个100B版本 + 1个300B版本合并为最终检查点
风险与限制
与任何基础或微调语言模型类似,用户可能诱导模型生成有害内容。由于存在潜在偏见,此类内容也可能非故意产生,建议用户评估应用风险。另请注意,模型输出可能存在事实性错误,需进行验证。
引用
@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