OLMo 是由非营利性组织 AI2 开源的项目,致力于提供真正的 完全开源 解决方案。与其他语言模型相比,OLMo 不仅在数据、代码和模型权重的开放性上展现了极高的透明度,还包括完整的训练指标和日志文件,供研究人员和开发者深入探索。
关键特点
OLMo 的开放性远超传统模型,具体体现在以下几个方面:
1. 完整的预训练数据
OLMo 提供了包含 3 万亿 token 的 Dolma 数据集,这是一套开放语料库,涵盖了来自多个领域的数据,用于模型的预训练。研究人员不仅可以访问模型本身,还能利用原始数据进行再训练或调整,以满足特定研究需求。
2. 训练代码与模型权重
OLMo 开源了四种不同变体的模型,且每种变体都至少经过 2 万亿 token 的训练。除了数据,OLMo 还提供了模型的 训练代码、推理代码、训练指标 和 日志文件,使得任何人都能完整复现训练过程,并对模型进行进一步的优化与微调。
3. 强大的评估工具
OLMo 项目还提供了开发过程中使用的评估工具,包括 500+ 个模型检查点,以及每 1000 步训练过程中记录的评估数据。所有这些工具都包含在 Catwalk 项目 中,研究人员可以借此工具对自己的模型进行全面评估或进一步分析 OLMo。
模型参数与架构
OLMo 提供了多种规模的模型变体,具体如下:
- 1B(10亿参数)模型:16 层,每层 2048 个隐藏单元,16 个注意力头,训练了至少 2 万亿个 token。
- 7B(70亿参数)模型:32 层,每层 4086 个隐藏单元,32 个注意力头,训练了约 2.46 万亿个 token。
- 65B(650亿参数)模型:当前仍在训练中,计划包含 80 层,每层 8192 个隐藏单元,64 个注意力头。
这些模型均基于 Vaswani 等(2017年) 提出的 解码器仅 Transformer 架构,并作出了多项改进:
- 去除偏置项,提升训练稳定性;
- 采用 非参数层归一化;
- 使用 SwiGLU 激活函数 替代传统的 ReLU;
- 引入 旋转位置嵌入(RoPE);
- 采用修改版 BPE 标记器,减少个人可识别信息(PII)。
Dolma 数据集:预训练的核心
OLMo 使用的 Dolma 数据集 是一个多源、跨领域的大型语料库,包含 3 万亿个 token,来源于 7 种不同的数据源,总计 5 亿文档。数据集涵盖了网络页面、社交媒体、STEM 论文、书籍、百科资料等多样化内容,旨在推动语言模型预训练的开放研究。
性能评估
在多个生成任务和阅读理解任务(如 TruthfulQA)上,OLMo 7B 的表现与 Llama 2 相媲美,但在一些问答任务(如 MMLU 或 Big-bench Hard)上略有逊色。通过分析 AI2 的 Paloma 检查点,研究人员进一步探讨了模型预测语言能力与训练规模(如训练令牌数)之间的关系。
获取 OLMo
OLMo 项目是开放的,任何人都可以访问完整的代码、数据和文档。如果你对开源语言模型感兴趣,可以通过以下链接了解更多并获取相关资源: