
OLMo(Open Language Model)代表了大模型领域的一个重大突破,因为它不仅100%开放了其完整的预训练数据——3万亿token的Dolma数据集,还包括训练代码、模型权重、推理代码、训练指标和完整日志等全部原始数据。这种完全开放的框架,确实为研究人员提供了前所未有的资源,使他们能够完全复现模型训练过程,深入理解模型的性能,并根据需要进行微调。
模型参数和架构
OLMo提供了不同规模的模型变体,具体包括:
- 1B模型:16层,每层2048个隐藏单元,16个注意力头,训练了至少2万亿个令牌。
- 7B模型:32层,每层4086个隐藏单元,32个注意力头,训练了约2.46万亿个令牌。
- 65B模型:(正在训练中)计划包含80层,每层8192个隐藏单元,64个注意力头。
这些模型采用了基于Vaswani等人2017年的研究的解码器仅Transformer架构,并进行了诸多改进,例如不使用偏置项、采用非参数层归一化、使用SwiGLU激活函数、引入旋转位置嵌入(RoPE)和使用修改版的BPE-based标记器。
预训练数据:Dolma
Dolma数据集是一个多源、多样性的3万亿令牌语料库,涵盖了从7种不同数据源获取的5亿文档,包括网络页面、代码、社交媒体、STEM论文、书籍和百科资料等,旨在促进语言模型预训练的开放研究。
性能评估
OLMo 7B模型在多个生成和阅读理解任务上与Llama 2表现相近,但在某些流行的问答任务上略有不足。通过AI2的Paloma和可用检查点的分析,展示了模型预测语言能力与模型规模因素之间的关系,尝试更均衡地代表LLM使用的多个领域。
项目地址和资源
- 项目主页:allenai.org/olmo
- 模型下载:huggingface.co/allenai/OLMo-7B
- 技术报告:blog.allenai.org/olmo-open-language-model-87ccfc95f580
- 论文:arxiv.org/abs/2402.00838
- GitHub:github.com/allenai/olmo
OLMo的完全开放框架为语言模型研究和开发提供了宝贵资源,促进了技术的开放性和透明度,为AI领域的进步做出了贡献。