OLMo:加速语言模型科学研究
OLMo: Accelerating the Science of Language Models
Allen AI 发布 OLMo:开放 1B/7B 模型、Dolma 数据与训练评测代码;OLMo-7B 在 8 项零样本任务上平均 69.3,与同规模公开模型相当。
- 最强语言模型多被封闭接口挡住,训练数据、架构与开发细节不公开,难以研究其能力、偏见与风险。作者认为研究社区需要可完全检视的开放模型。
- 作者构建 OLMo 框架:decoder-only Transformer 的 1B 与 7B 模型,在开放语料 Dolma 上预训练至少 2T tokens,并发布权重、中间检查点、训练日志、数据、训练与评测代码,以及基于 TÜLU 的指令微调与 DPO 适配模型。
- Table 3 中 OLMo-7B 八项零样本任务平均 69.3,与 Llama 2 7B 的 70.5、Falcon-7B 的 70.3 接近。作者称其在 Paloma 上拟合有竞争力,且经显式去污。适配后 MMLU 从 28.3 升至 47.3(SFT),ToxiGen 有毒比例从 81.4 降至 1.7(SFT+DPO)。
- 作者指出数据以英语为主,无法完全去除有毒、个人信息与版权文本;训练日志未充分记录失败运行;适配沿用为 Llama 设计的 TÜLU 混合并依赖蒸馏数据;下游任务不代表聊天用法,自动评测噪声大。
- 被测模型
- OLMo-1BOLMo-7BOLMo+SFTOLMo+SFT+DPO
- 基准
- arc_challengearc_easyboolqhellaswagopenbookqapiqasciqwinograndePalomaMMLUAlpacaEvalToxiGenTruthfulQAGSM8kBBHTydiQACodex-Eval
- 指标
- zero-shot accuracyaverage accuracybits per byteMMLU 0-shotAlpacaEval %winToxiGen % ToxicTruthfulQA %Info+TruePass@10
为应对最强语言模型被专有接口封闭、训练数据与架构细节不公开的问题,研究者构建了真正开放的语言模型 OLMo。与以往仅发布模型权重和推理代码的做法不同,OLMo 同时公开了训练数据、训练代码与评估代码,以支持对语言模型偏见与潜在风险的科学研究的开展。
深度解读
这篇论文试图解决什么问题?
封闭大模型缺少数据与训练细节,OLMo 用全套开放工件支撑可复现研究。
最强语言模型的训练数据、架构与开发细节被专有接口挡住,研究社区难以科学地研究其能力、弱点、偏见与风险。
- 场景与重要性:作者称语言模型经大规模预训练与对齐标注后具有商业价值,但最强模型逐渐封闭。他们认为,完整获取开放模型对研究这些模型的优势、弱点、偏见与风险至关重要。
- 现有开放程度不一:作者举例,Mixtral 8x7B 只给权重和简短报告,LLaMA 附有适配训练说明,MPT 给出数据集分布但未给数据本身,Falcon 部分公开预训练数据;Pythia 与 BLOOM 公开了训练代码、检查点与数据。作者认为多数先前工作只发布权重和推理代码。
- 核心主张:作者认为,规模大、种类多的开放模型群体,是理解语言模型并改进其实用性的最好希望。他们同时指向数据如何影响能力、设计与超参数选择、以及优化方法对训练的影响等仍不清楚的问题。
- 本文提出什么:作者发布 OLMo,一个有竞争力的开放语言模型及其框架,包括 1B 与 7B 权重、至少 2T tokens 的训练、开放预训练数据 Dolma、训练与评测代码、跨硬件的多个检查点、训练日志,以及用 Open Instruct 做的指令与偏好适配。代码与权重采用 Apache 2.0。
有哪些相关研究?
作者把 OLMo 放在开放程度不同的 LM 发布谱系里,并称其缩小了与 Llama 2 的差距。
作者主要按开放程度和所借鉴的架构、数据与评测工作来定位,而不是提出新的攻击或防御。
开放程度不同的模型发布
- Pythia(Biderman et al., 2023)与 BLOOM(BigScience et al., 2022):作者称二者是此前最开放的模型,发布了训练代码、检查点、数据等。Figure 2 用 Pythia-6.9B 的中间检查点做困惑度对比。
- Falcon(Almazrouei et al., 2023)、LLaMA / Llama 2(Touvron et al., 2023a,b)、MPT(MosaicML NLP Team, 2023)、Mixtral 8x7B(Jiang et al., 2024):作者分别描述为部分公开预训练数据、给出深入的适配训练说明、公开数据集分布但未给数据本身、以及只给权重和简短报告。
- LLM360(Liu et al., 2023):作者称该工作目标相近,自己并非唯一这样做的团队;并称 OLMo 缩小了其模型与 Llama 2 这类能力之间的差距。
架构与优化所借鉴的模型
- decoder-only Transformer(Vaswani et al., 2017)及 PaLM、LLaMA、OpenLM、Falcon:OLMo 在其基础上去掉 bias、使用非参数 layer norm、SwiGLU、RoPE,词表基于 GPT-NeoX-20B 的 BPE 并加入 PII 掩码 token。
- AdamW(Loshchilov and Hutter, 2019)、ZeRO(Rajbhandari et al., 2019)与 FSDP(Zhao et al., 2023):训练使用 AdamW,并用 FSDP 分片权重与优化器状态;混合精度为 bfloat16,softmax 保持全精度。
数据、适配与评测
- Dolma(Soldaini et al., 2024):多来源预训练语料,流水线包括语言过滤、质量过滤、内容过滤、去重、多源混合与分词。作者把更细的构建与策展实验放在 Dolma 报告中,并用 WIMBD(Elazar et al., 2024)做数据分析。
- 指令与偏好学习:作者引用指令微调(Mishra et al., 2022; Wei et al., 2022; Sanh et al., 2022)、基于人类偏好的进一步训练(Ouyang et al., 2022),以及 DPO(Rafailov et al., 2023)。适配遵循 TÜLU 的数据与训练设置(Ivison et al., 2023; Wang et al., 2023)。
- Catwalk(Groeneveld et al., 2023)与 Paloma(Magnusson et al., 2023):分别用于下游评测和基于困惑度的评测。Paloma 含 585 个文本域;零样本协议借鉴 Brown et al. (2020) 的 rank classification,任务集合接近 LLaMA 的常识推理集合。
基线方法为同规模公开检查点:1B 档为 StableLM 1.6B、Pythia 1B、TinyLlama 1.1B;7B 档为 Falcon-7B、LLaMA 7B、Llama 2 7B、MPT-7B、Pythia 6.9B、RPJ-INCITE-7B。基准为 8 项核心零样本任务(arc_challenge、arc_easy、boolq、hellaswag、openbookqa、piqa、sciq、winogrande)以及 Paloma 的 bits per byte。适配对比包括这些模型的官方指令版本和同样使用 TÜLU 混合的 TÜLU 2、TÜLU 2+DPO。
作者把本文定位为:不止发布权重和推理代码,而是连同训练数据、训练与评测代码、中间检查点与训练日志一起发布,并希望缩小与 Llama 2 一类模型的能力差距。
论文如何解决这个问题?
OLMo 用改过的 decoder-only Transformer,在 Dolma 上训练 1B/7B,并开放数据、检查点与适配流程。
作者发布 OLMo 框架:模型、预训练数据 Dolma、训练与推理代码、中间检查点、训练日志,以及基于 Catwalk / Paloma 的评测和基于 Open Instruct 的适配。
模型与架构
- 规模:decoder-only Transformer。Table 1 给出 1B(L=16,D=2048,H=16,2T tokens,峰值学习率 4.0E-4,warmup 2000 steps,权重绑定,batch 约 4M)和 7B(L=32,D=4086,H=32,2.46T tokens,峰值学习率 3.0E-4,warmup 5000 steps,不绑定权重,batch 约 4M)。优化器均为 AdamW,betas 为 0.9 和 0.95,epsilon 为 1.0E-5。
- 相对原始 Transformer 的改动:去掉全部 bias;使用无仿射变换的非参数 layer norm,作者认为这是所考虑变体里最稳也最快的,对照为参数化 layer norm 和 RMSNorm;激活用 SwiGLU,隐藏维约 8/3 d 并取最近的 128 倍数(7B 为 11,008);用 RoPE 替代绝对位置编码。
- 词表:修改 GPT-NeoX-20B 的 BPE,加入掩码个人可识别信息的 token,词表 50,280;嵌入矩阵扩到 50,304 以便为 128 的倍数。超参按硬件吞吐选取,并尽量降低 loss spike 和缓慢发散的风险,选择通过训练中评测做消融。
预训练数据 Dolma
- 构成:Table 2 按 GPT-NeoX 分词统计:Common Crawl 网页 2,180B tokens、GitHub 代码 342B、Reddit 80B、Semantic Scholar 论文 57B、Project Gutenberg 5.2B、Wikipedia 3.7B,合计 2,668B tokens、4,367M 文档。各来源文档在策展和最终发布中保持分开。
- 流水线:(1) 语言过滤,(2) 质量过滤,(3) 内容过滤,(4) 去重,(5) 多源混合,(6) 分词。设计细节放在 Dolma 报告中。训练时从 Dolma 取 2T-token 样本,文档末加 EOS 后拼接,再切成 2048 token 的实例并打乱;各次运行的打乱方式相同,数据顺序可由发布工件重建。
训练设置
- 分布式:ZeRO + PyTorch FSDP 分片权重与优化器状态。7B 在所用硬件上每 GPU micro-batch 为 4096 tokens。1B 与 7B 的全局 batch 约为 4M tokens(2048 条、序列长度 2048)。混合精度用 bfloat16,softmax 全精度;分片后的权重与优化器状态保持全精度,梯度跨 GPU 以全精度归约。
- 学习率:Table 1 的 warmup 与后文不完全一致。Section 3.2 写所有规模都先 warmup 5000 steps(约 21B tokens),再线性衰减到峰值的十分之一;warmup 之后把参数梯度的总 ℓ2 范数裁到不超过 1.0。用于评测的 OLMo-7B 检查点训到 2.46T tokens;作者还在 Dolma 上再训 1000 steps,把学习率线性收到 0。部分模型在第二遍、不同打乱顺序下超过 2T tokens,作者引用 Muennighoff et al. (2023),认为重复这一小部分数据的影响应可忽略。
- 硬件:LUMI 上最多 256 个节点,每节点 4 块 AMD MI250X(128GB、800Gbps);MosaicML 上 27 个节点,每节点 8 块 NVIDIA A100(40GB、800Gbps)。作者称两边 batch 为吞吐做了小调整,到 2T tokens 时评测套件上的表现几乎相同。发布的 7B 变体对应不同架构、优化器与训练硬件,共四个 7B 变体和一个 1B 模型。
适配与评测协议
- 适配:先用蒸馏与人工撰写的指令数据做指令微调,再用蒸馏偏好数据做 DPO,目标是通用聊天助手,设置来自 TÜLU。
- 在环评测:每 1000 steps(约 4B tokens)做下游评测,用来决定架构、初始化、优化器、学习率日程和数据混合。
- 离线下游:8 项核心任务零样本,用 rank classification:候选补全按似然排序并报告准确率。归一化按数据集选取:arc 与 openbookqa 用 unconditional normalization,hellaswag、piqa、winogrande 用 per-token,boolq 与 sciq 不做归一化。
- Paloma:报告 bits per byte。作者称 OLMo-7B 是做了显式困惑度去污的最大 LM:按 Paloma 的做法,删掉含有 Paloma 评测段落泄漏的预训练文档。聚合使用 Paloma 18 个来源中的 11 个,排除不公开、边缘或有毒文本,以及去污方法不支持的代码数据。
- 适配评测:安全与聊天指标见第 4 问。MMLU 为 0-shot;ToxiGen 用 roberta-large 毒性分类器,生成至停止符或最多 512 tokens,报告被判为有毒的生成比例;TruthfulQA 用生成设定(818 个问题、6 个 in-context 示例、贪心解码),由两个基于 LLaMA 2 的分类器判断真实性与信息量,主指标为 % Informative and Truthful;AlpacaEval 对 805 条提示用 GPT-4(alpaca_eval_gpt4)比较模型与 Davinci-003,模型最多生成 2048 tokens,报告胜率。
论文做了哪些实验?
OLMo-7B 八项零样本平均 69.3;适配后 MMLU 升至 47.3,ToxiGen 有毒比例降至 1.7。
实验设置
- 预训练模型:OLMo-1B(2T tokens)与 OLMo-7B(报告的是 2.46T token 检查点)。对比模型为 StableLM 1.6B、Pythia 1B、TinyLlama 1.1B、Falcon-7B、LLaMA 7B、Llama 2 7B、MPT-7B、Pythia 6.9B、RPJ-INCITE-7B。作者称还发布四个 7B 变体,Table 3 只报告其中一个 OLMo-7B。
- 下游基准:8 项核心零样本任务,指标为准确率和 8 项平均。附录 C 另有作者认为趋势较不稳定的辅助任务,正文未给出该表数字。
- Paloma:11 个公开来源及其合并的 bits per byte,横轴为所见 tokens(十亿)。对比含中间检查点的有 Pythia-6.9B 与 RPJ-INCITE-7B。
- 适配:OLMo 基座、OLMo+SFT、OLMo+SFT+DPO,对比 MPT Chat、Falcon Instruct、RPJ-INCITE Chat、Llama-2-Chat、TÜLU 2、TÜLU 2+DPO。指标为 MMLU 0-shot、AlpacaEval %win、ToxiGen % Toxic(越低越好)、TruthfulQA %Info+True。Table 8 另报 GSM8k(8-shot CoT)、BBH(3-shot CoT)、TydiQA(1-shot)、Codex-Eval Pass@10。
- 评审:下游是似然排序而非生成评审。AlpacaEval 的评审是 GPT-4;ToxiGen 的分类器是 Hartvigsen et al. (2022) 微调的 roberta-large;TruthfulQA 用两个 LLaMA 2 分类器。论文未报告重复次数。
- 去污:OLMo 的预训练文档按 Paloma 段落泄漏做了删除。作者按 Ivison et al. (2023) 不报告 TÜLU 2 的 TruthfulQA,原因是测试集污染;并引用 Touvron et al. (2023b),称 Llama 2 的预训练数据含有 MMLU 测试数据。
主结果
Table 3 的零样本准确率(OLMo-7B 为 2.46T token 检查点):
表格较宽,可左右滑动
模型 arc_c arc_e boolq hellaswag obqa piqa sciq wino avg StableLM 1.6B 43.8 63.7 76.6 68.2 45.8 74.0 94.7 64.9 66.5 Pythia 1B 33.1 50.2 61.8 44.7 37.8 69.1 86.0 53.3 54.5 TinyLlama 1.1B 34.8 53.2 64.6 58.7 43.6 71.1 90.5 58.9 59.4 OLMo-1B 34.5 58.1 60.7 62.5 46.4 73.7 88.1 58.9 60.4 Falcon-7B 47.5 70.4 74.6 75.9 53.0 78.5 93.9 68.9 70.3 LLaMA 7B 44.5 67.9 75.4 76.2 51.2 77.2 93.9 70.5 69.6 Llama 2 7B 48.5 69.5 80.2 76.8 48.4 76.7 94.5 69.4 70.5 OLMo-7B 48.5 65.4 73.4 76.4 50.4 78.4 93.8 67.9 69.3 表中未列入的 7B 档:MPT-7B 平均 69.8,Pythia 6.9B 平均 63.0,RPJ-INCITE-7B 平均 66.6(各项见 Table 3)。
- 作者解读:总体上 OLMo-7B 与所有可比模型有竞争力。StableLM 1.6B 被纳入对比,但作者注明它明显更大,且训练数据未知。
- Figure 1:OLMo-7B 在 8 项任务上的准确率随所见 tokens 变化。除 OBQA 外都呈上升趋势。作者称,多数任务上最后 1000 steps 把学习率线性收到 0 带来收益,曲线在倒数第二步到最后一步之间上翘。图中可读到的纵轴刻度包括 arc_c 约 40–48、arc_e 约 60–68、boolq 约 56–76、hellaswag 约 68–76、obqa 约 45–51、piqa 约 76–78、sciq 约 90–94、winogrande 约 63–66;横轴为 Tokens Seen (billions),刻度 500 到 2500。
- 分项:OLMo-7B 的 arc_challenge 为 48.5,与 Llama 2 7B 相同,高于 LLaMA 7B 的 44.5;arc_easy 为 65.4,低于 Falcon-7B 的 70.4 和 Llama 2 7B 的 69.5;boolq 为 73.4,低于 Llama 2 7B 的 80.2。OLMo-1B 平均 60.4,高于 Pythia 1B 的 54.5 和 TinyLlama 1.1B 的 59.4,低于 StableLM 1.6B 的 66.5。
Paloma 上的 bits per byte
- 测了什么:Figure 2 比较 OLMo-7B 与 Falcon-7B、LLaMA2-7B、MPT-7B、LLaMA-7B、Pythia-6.9B、RPJ-INCITE-7B,含最终模型(形状)和中间检查点(虚线)。子图为 Sources Combined、C4、mC4、WikiText-103、PTB、RedPajama、Falcon RefinedWeb、Dolma V1.5、M2D2 S2ORC、M2D2 Wikipedia、C4 100 Domains、100 Subreddits。纵轴为 Bits Per Byte,横轴为 Tokens Seen (billions),刻度为 10、100、1000、10000。图中标出的纵轴刻度包括 0.55、0.61、0.67、0.74、0.82、0.90、1.00、1.11、1.22、1.35,论文未在正文给出各模型的精确终点读数。
- 作者的解读:OLMo 的拟合有竞争力,且训练数据对 Paloma 做了显式去污。中间检查点的表现受该点在学习率日程中的位置影响,步数更少的模型曲线更陡,并不必然更省样本。MPT-7B 在合并子图中走在其他模型前面。作者给出的可能因素包括:MPT 的非 Common Crawl 数据占 27%,而 LLaMA 为 18%、RedPajama 为 12.2%、OLMo 为 11.2%,以及 MPT 在 C4 上使用语义去重。
- 分域:作者称样本效率的差异主要来自训练与评测分布是否相近。OLMo-7B 在以 Common Crawl 为主的评测(如 C4)上表现好,Figure 2 图注称它在 C4 上超过所有其他模型,可能因为预训练数据中 Common Crawl 占 88.8%。在 Falcon RefinedWeb 上,用该数据训练的 Falcon-7B 拟合最好。作者称在 WikiText-103、M2D2 S2ORC、M2D2 Wikipedia 等与抓取网页较远的来源上,OLMo-7B 的样本效率较低;RedPajama 类似,因其 7 个域里只有 2 个来自 Common Crawl,且 Paloma 在每个来源内对域等权。
指令微调与 DPO
Table 4(7B 指令模型;ToxiGen 越低越好):
表格较宽,可左右滑动
模型 MMLU AlpacaEval ToxiGen TruthfulQA OLMo (base) 28.3 - 81.4 31.6 OLMo+SFT 47.3 57.0 14.4 41.2 OLMo+SFT+DPO 46.2 69.3 1.7 52.0 Llama-2-Chat 46.8 87.3 0.0 26.3 TÜLU 2 50.4 73.9 7.0 51.7 TÜLU 2+DPO 50.7 85.1 0.5 - MPT Chat 为 33.8 / 46.8 / 0.1 / 42.7,Falcon Instruct 为 25.2 / 14.0 / 70.7 / 27.2,RPJ-INCITE Chat 为 27.0 / 38.0 / 46.4 / 53.0(顺序同为 MMLU、AlpacaEval、ToxiGen、TruthfulQA)。
- 作者解读:指令微调明显提高 OLMo-7B 的表现与安全性,MMLU 升幅大,ToxiGen 与 TruthfulQA 在 DPO 之后进一步变好。作者称 SFT 与 SFT+DPO 后,OLMo-7B 超过大多数其他聊天变体,并同时归因于基座和 TÜLU 混合。与 TÜLU 2 仍有差距,作者认为可能来自 Llama 2 的测试集污染,以及 TÜLU 混合主要是为 Llama 设计的。
- Table 8 的其他任务:OLMo-7B 基座 GSM8k 8.5、BBH 31.7、TydiQA 32.3、Codex-Eval Pass@10 21.4。+SFT 分别为 15.5、36.9、35.2、28.6;+SFT+DPO 分别为 11.0、35.8、21.7、27.8。DPO 之后这四项都低于 SFT,TydiQA 从 35.2 降到 21.7,低于基座的 32.3。Table 8 的 +SFT+DPO MMLU 为 46.1,Table 4 为 46.2,论文未解释这一差异。作者未报告 TÜLU 2 的 TruthfulQA。
- 硬件对照:作者称 LUMI 与 MosaicML 两次运行在 2T tokens 时,评测套件上的表现几乎相同。论文未给出这两次运行的分项数字。
其他消融与分析
- 架构选择通过每 1000 steps 的在环评测决定;正文未给出各架构变体的分项分数。
- 非参数 layer norm 相对参数化 layer norm 与 RMSNorm:作者称它最快也最稳,未给数值。
- 评测用的 7B 检查点在 Dolma 上再训 1000 steps、学习率收到 0:作者称提升困惑度与终端任务,具体增幅指向附录 Table 7,正文未列出该表。
- 最后 1000 steps 的学习率收到 0:Figure 1 中除 OBQA 外多数任务在最后一段上升。
- Common Crawl 占比:作者写 OLMo 为 11.2% 非 Common Crawl(图注写预训练数据 88.8% 为 Common Crawl),对照 LLaMA 18%、RedPajama 12.2%、MPT 27%。
- 结论中作者称,自本文描述的首个版本之后,数据与训练设置已改进,例如 MMLU 提高了 24 个点到 52%;该数字不在 Table 3、Table 4 或 Table 8 中。
有什么可以进一步探索的点?
作者指出英语数据、不完整的失败日志、沿用 TÜLU 混合,以及评测噪声与任务不代表聊天用法。
作者指出的局限与后续方向
- 数据语言:Limitations 的 Data 小节写,工作聚焦英语预训练数据,希望开放框架能促成更多语言以及多语言模型。(Limitations)
- 数据内容:同一小节写,此规模的数据很可能含有有毒语言、个人信息与受版权保护的文本;作者已尽量缓解,但认为当今没有能完全去掉这类内容的办法。(Limitations)
- 训练失败记录:Training 小节写,在有限篇幅内没有提供大量训练日志来记录例如发散或未能学起来的运行;并称大规模训练目前缺少开源社区的充分支持。(Limitations)
- 适配数据不匹配:Adaptation 小节写,预训练模型仍有偏见、毒性与幻觉;适配模型更能避免这些生成,但并不完美。他们大体采用为另一个模型族设计的 TÜLU 混合,OLMo 可能需要不同的数据混合来配合自己的强弱项;该混合依赖多种模型蒸馏出的数据,作者希望以后减少这种依赖。(Limitations)
- 评测与使用方式不符:Evaluation 小节写,许多下游任务并不能代表用户与语言模型的实际交互(即作为聊天机器人);评测目前噪声很大,他们只纳入能提供一些“哪个模型更好”信号的数据集,但认为没有完美的自动评测,比较应谨慎看待。(Limitations)
- 后续计划:Conclusion 写,作者打算持续支持并扩展 OLMo,纳入不同模型规模、模态、数据集、安全措施与评测。他们希望减少对蒸馏数据的依赖,并促成更多语言的模型。Limitations 也写,社会影响超出本节所能容纳的范围。(Conclusion and Future Work;Limitations)
实验覆盖范围
- 零样本主表覆盖 1B 档 4 个与 7B 档 7 个公开检查点、8 项核心任务;OLMo-7B 数字对应 2.46T token 检查点(Table 3)。附录辅助任务的具体数字未出现在所给正文表中。
- Paloma 报告 11 个来源及合并曲线的 bits per byte,OLMo 侧做了段落泄漏去污;正文没有列出各模型的精确终点数值(Figure 2,Section 4.2)。
- 适配评测包括基座、SFT、SFT+DPO,指标为 MMLU、AlpacaEval、ToxiGen、TruthfulQA,Table 8 另有 GSM8k、BBH、TydiQA、Codex-Eval;TruthfulQA 不报告 TÜLU 2,作者给出的原因是测试集污染(Table 4、Table 8、Section 4.3)。
- 训练硬件包括 LUMI 的 AMD MI250X 与 MosaicML 的 NVIDIA A100;作者称 2T tokens 时表现几乎相同,论文未报告两次运行的分项分数,也未报告重复次数(Section 3.4)。
- 在环消融覆盖架构、初始化、优化器、学习率日程与数据混合,正文未给出各变体分数;Dolma 的过滤、去重与混合实验写在 Dolma 报告中,不在本文展开(Section 2.2、Section 2.4)。
总结一下论文的主要内容
OLMo 开放 1B/7B 模型、Dolma 与训练评测工件;7B 平均 69.3,适配后安全性指标明显变化。
Allen Institute 发布 OLMo:一套从数据、训练到评测都公开的语言模型框架,用来支持对语言模型能力、弱点、偏见与风险的研究。
- 问题:作者认为最强模型被专有接口挡住,数据、架构与开发细节不足,只发布权重和推理代码不够。
- 做法:1B 与 7B 的 decoder-only Transformer,去掉 bias,使用非参数 layer norm、SwiGLU 和 RoPE,词表在 GPT-NeoX BPE 上增加 PII 掩码 token。数据来自 Dolma(Table 2 合计 2,668B tokens)。AdamW + FSDP,全局 batch 约 4M tokens,序列长度 2048。7B 报告检查点训到 2.46T tokens,并再做 1000 steps 把学习率收到 0。适配是 TÜLU 混合上的指令微调再加 DPO。
- 下游结果:Table 3 中 OLMo-7B 八项零样本平均 69.3,Llama 2 7B 为 70.5,Falcon-7B 为 70.3,Pythia 6.9B 为 63.0。OLMo-1B 平均 60.4。Figure 1 里除 OBQA 外准确率随 tokens 上升,作者称最后把学习率收到 0 有收益。
- 拟合与适配:作者称在做过 Paloma 去污的前提下,OLMo-7B 的 bits per byte 有竞争力,并在 C4 上超过其他模型,同时在 Wikipedia 等距离网页抓取较远的来源上样本效率较低。Table 4 中 MMLU 从基座 28.3 到 SFT 的 47.3(SFT+DPO 为 46.2),ToxiGen 有毒比例从 81.4 到 1.7,AlpacaEval 胜率 SFT+DPO 为 69.3,TruthfulQA 为 52.0。Table 8 中 DPO 后 GSM8k、BBH、TydiQA、Codex-Eval 低于 SFT。
- 作者的结论:他们把本次称为 OLMo 的首次发布,并称此后数据与训练已改进,例如 MMLU 提高 24 个点到 52%。作者打算继续加入不同规模、模态、数据、安全措施与评测,同时承认英语数据、残留的有害内容、不完整的失败日志、沿用 Llama 向的 TÜLU 混合,以及下游任务不代表聊天用法、自动评测有噪声。