苹果机器学习研究团队发布了名为 OpenELM 的高效语言模型族,该模型基于公开数据集进行预训练和微调。
OpenELM 的主要信息如下:
- 高效性能:OpenELM 采用逐层缩放策略,有效分配每个 Transformer 层的参数,提高了模型的准确性。
- 逐层缩放:通过调整每个Transformer层的注意力头数和FFN乘法器,实现了跨层参数的非均匀分配。
- 参数规模:OpenELM 提供了四种不同参数规模的变体,分别为 270M、450M、1.1B 和 3B。
- 数据集:预训练使用了约1.8万亿个token的公共数据集,包括 RefinedWeb、deduplicated PILE、RedPajama 的子集和 Dolma v1.6 的子集。
- 训练细节:使用苹果自家开源的 CoreNet 库进行训练,训练过程迭代了35万次。
- 性能评估:在零样本和少样本设置下,OpenELM的性能优于其他使用公开数据集进行预训练的现有开源大型语言模型(LLM)。
- 架构特点:
- 不在全连接层中使用可学习的偏差参数。
- 使用 RMSNorm 进行预标准化,旋转位置嵌入(ROPE)编码位置信息。
- 使用分组查询注意力(GQA)代替多头注意力(MHA)。
- 用 SwiGLU FFN 替换前馈网络(FFN)。
- 使用 flash 注意力计算可缩放的点积注意力。
- 使用与 LLama 相同的分词器(tokenizer)。
苹果公司不仅发布了模型权重和推理代码,还包括了完整的训练和评估框架,如训练日志、多个检查点和预训练配置。与具有相似参数数量的模型相比,OpenELM在准确度上有所提高,但在速度上可能稍慢。研究者计划探索优化策略以进一步提高OpenELM的推理效率。