OLMo(Open Language Model)与其他开源语言模型的不同之处在于其“完全开放的框架”。
OLMo不仅100%开放了其完整的预训练数据——3万亿token的Dolma数据集
还提供了其训练代码、模型权重、推理代码、训练指标和完整日志等全部原始数据。
真正做到完全开源,100%开源!
这种程度的开放使研究人员能够完全复现模型训练过程,理解模型的性能表现,以及根据需要对模型进行微调。
OLMo(Open Language Model)是由AI2(Allen Institute for AI)推出的一系列开放语言模型,旨在推进语言模型的科学研究。
OLMo框架包括:
- 完整的预训练数据:OLMo项目提供了完整的预训练数据——AI2的Dolma数据集,这是一个包含三万亿token的开放语料库,用于语言模型的预训练。这意味着研究人员不仅可以访问模型本身,还能够获得用于训练这些模型的原始数据,从而允许他们深入理解模型的学习基础,甚至重新训练或调整模型以适应特定的研究需求。
- 训练代码和模型权重:OLMo框架提供了四种不同变体模型的完整模型权重,每种模型都至少训练到2万亿令牌。除了数据,OLMo还提供了训练代码、模型权重、推理代码、训练指标和日志。这种程度的开放性使研究人员能够完全复现模型训练过程,理解模型的性能表现,以及根据需要对模型进行微调。
- 评估工具的提供:项目包含了开发过程中使用的评估套件,以及500多个模型的检查点,每1000步训练过程中的每一个都有,还有评估代码,这些都属于Catwalk项目的一部分。这使得研究人员可以使用相同的工具来评估自己的模型或对OLMo模型进行进一步的分析。
模型参数和架构
OLMo提供了不同规模的模型变体,具体包括:
- 1B(10亿参数)模型:具有16层,每层2048个隐藏单元,16个注意力头,训练了至少2万亿个令牌。
- 7B(70亿参数)模型:包含32层,每层有4086个隐藏单元,32个注意力头,训练了约2.46万亿个令牌。
- 65B(650亿参数)模型:(文章撰写时仍在训练中),计划包含80层,每层8192个隐藏单元,64个注意力头。
这些模型采用了基于Vaswani等(2017年)的解码器仅Transformer架构,并进行了多项改进,例如: