许可证:apple-amlr
许可证名称:apple-sample-code-license
许可证链接:LICENSE
OpenELM
作者:Sachin Mehta, Mohammad Hossein Sekhavat, Qingqing Cao, Maxwell Horton, Yanzi Jin, Chenfan Sun, Iman Mirzadeh, Mahyar Najibi, Dmitry Belenko, Peter Zatloukal, Mohammad Rastegari
我们推出OpenELM系列模型,即开放高效语言模型。OpenELM采用分层缩放策略,在Transformer模型的每一层中高效分配参数,从而提升准确率。我们使用CoreNet库对OpenELM模型进行了预训练,并发布了参数量分别为270M、450M、1.1B和3B的预训练模型及指令调优模型。为促进开放研究,我们公开了完整框架,包括数据准备、训练、微调和评估流程,同时提供多个预训练检查点和训练日志。
预训练数据集包含RefinedWeb、去重PILE、RedPajama子集和Dolma v1.6子集,总计约1.8万亿token。使用前请查阅相关数据集许可协议。
使用指南
我们提供了示例脚本generate_openelm.py
,可通过HuggingFace Hub加载OpenELM模型生成文本。运行以下命令尝试:
python generate_openelm.py --model apple/OpenELM-1_1B --hf_access_token [HF_ACCESS_TOKEN] --prompt '从前有座山' --generate_kwargs repetition_penalty=1.2
获取HuggingFace访问令牌请参考此链接。
可通过generate_kwargs
传递额外参数。例如使用前瞻token推测生成加速推理:
python generate_openelm.py --model apple/OpenELM-1_1B --hf_access_token [HF_ACCESS_TOKEN] --prompt '从前有座山' --generate_kwargs repetition_penalty=1.2 prompt_lookup_num_tokens=10
或通过assistant_model
参数使用辅助模型进行推测生成:
python generate_openelm.py --model apple/OpenELM-1_1B --hf_access_token [HF_ACCESS_TOKEN] --prompt '从前有座山' --generate_kwargs repetition_penalty=1.2 --assistant_model [小模型]
核心结果
零样本测试
(表格数据保持原格式,仅表头中文化)
| 模型规模 | ARC-c | ARC-e | BoolQ | HellaSwag | PIQA | SciQ | WinoGrande | 平均分 |
LLM360评估
(表格数据保持原格式,仅表头中文化)
| 模型规模 | ARC-c | HellaSwag | MMLU | TruthfulQA | WinoGrande | 平均分 |
OpenLLM排行榜
(表格数据保持原格式,仅表头中文化)
| 模型规模 | ARC-c | CrowS-Pairs | HellaSwag | MMLU | PIQA | RACE | TruthfulQA | WinoGrande | 平均分 |
详见技术报告获取完整结果。
评估流程
环境配置
安装依赖:
harness_repo="public-lm-eval-harness"
git clone https://github.com/EleutherAI/lm-evaluation-harness ${harness_repo}
cd ${harness_repo}
git checkout dc90fec
pip install -e .
cd ..
pip install datasets@git+https://github.com/huggingface/datasets.git@66d6242
pip install tokenizers>=0.15.2 transformers>=4.38.2 sentencepiece>=0.2.0
执行评估
(具体命令保持原格式)
风险声明
OpenELM模型旨在为开放研究社区提供前沿语言模型。基于公开数据集训练的模型未设置安全防护机制,可能产生错误、有害、偏见或不当内容。使用者需根据自身需求进行安全测试并部署过滤措施。
引用规范
若使用我们的工作,请引用:
(文献条目保持原格式)