OLMo:真正的100%开源语言模型
OLMo是一个完全开源的项目,由非营利性组织AI2推出。它不仅实现了100%的开放性,还提供了丰富的资源,使研究人员能够深入研究其架构和性能。
完整的预训练数据
OLMo开放了完整的预训练数据——高达3万亿token的Dolma数据集。这意味着,研究人员不仅可以获取模型本身,还能够访问用于训练模型的原始数据,从而更好地理解模型的学习机制,甚至实现再训练和微调。
OLMo(Open Language Model)与其他开源语言模型的不同之处在于其“完全开放的框架”。
OLMo框架的优势
OLMo框架的开放性体现在以下几个方面:
-
训练代码与模型权重:OLMo提供四种不同变体的模型权重,每种模型至少训练了2万亿token。研究人员可以利用训练代码、推理代码及完整的训练指标与日志,复现模型训练过程,深入分析其性能并进行微调。
-
评估工具:项目中提供了用于开发过程的评估套件,包含500多个模型的检查点,以及评估代码,帮助研究人员使用相同工具评估其模型或进行更深入的分析。
-
模型参数与架构:OLMo提供不同规模的模型变体,包括:
- 1B(10亿参数)模型:16层,每层2048个隐藏单元,16个注意力头,训练至少2万亿个令牌。
- 7B(70亿参数)模型:32层,每层4086个隐藏单元,32个注意力头,训练约2.46万亿个令牌。
- 65B(650亿参数)模型:仍在训练中,计划包含80层,每层8192个隐藏单元,64个注意力头。
这些模型基于Vaswani等(2017年)的解码器仅Transformer架构,使用了一些关键改进来提高训练的稳定性和性能,例如:
- 不使用偏置项
- 采用非参数层归一化
- 使用SwiGLU激活函数
- 引入旋转位置嵌入(RoPE)
- 使用修改版的BPE-based标记器,以减少个人可识别信息(PII)
Dolma数据集
OLMo使用的Dolma数据集是一个多源且多样化的3万亿令牌语料库,涵盖了来自7种不同数据源的5亿文档。这些内容包括网络页面、代码、社交媒体信息、STEM论文、书籍和百科资料等,旨在促进语言模型的开放研究。
性能评估
在生成和阅读理解任务(如truthfulQA)中,OLMo 7B的表现与Llama 2相当,但在某些问答任务(如MMLU或Big-bench Hard)中稍显逊色。项目利用AI2的Paloma和可用检查点,分析了模型预测语言能力与模型规模因素(如训练token数量)间的关系。
了解更多
OLMo的详细信息和最新进展可以在其项目网站上找到。