OpenELM-3B-Instruct 项目介绍
OpenELM 是一种高效的开放语言模型家族,由多位研究人员共同开发。该项目利用层级缩放策略有效分配 Transformer 模型中每层的参数,从而提升模型的准确性。OpenELM 的预训练是基于 CoreNet 库。项目团队不仅发布了预训练模型,还推出了经过指令微调的多个参数模型,它们的参数量分别为 270M、450M、1.1B 和 3B。此外,项目还包含完整的框架支持,涵盖数据准备、训练、微调和评估过程,并提供多种预训练检查点和训练日志,以促进开放研究。
数据来源
预训练数据集包括 RefinedWeb、去重后的 PILE、RedPajama 的一个子集和 Dolma v1.6 的一个子集,总计约 1.8 万亿个 token。在使用这些数据集前,请仔细查看其许可协议及相关条款。
如何使用
该项目在 generate_openelm.py
文件中提供了一个示例函数,用于通过 Hugging Face Hub 加载 OpenELM 模型并生成输出。用户可以通过以下命令尝试模型:
python generate_openelm.py --model apple/OpenELM-3B-Instruct --hf_access_token [HF_ACCESS_TOKEN] --prompt 'Once upon a time there was' --generate_kwargs repetition_penalty=1.2
在使用命令前,用户需要获取 Hugging Face 的访问令牌。可以通过 generate_kwargs
参数传递额外的生成选项,比如通过 prompt_lookup_num_tokens
参数加速推理过程。
主要结果
OpenELM 在多个数据集上进行评估,其中模型在零次学习 (Zero-Shot)、LLM360 和 OpenLLM Leaderboard 中表现出色。这些模型在 HellaSwag、ARC 系列和 WinoGrande 等任务上表现良好。
评估方法
为了评估 OpenELM 的性能,首先需要安装依赖库,包括 EleutherAI 的 lm-evaluation-harness 和 Hugging Face 的 datasets、tokenizers、transformers 等相关工具。然后,通过几个命令运行不同 shot 数的各种任务,具体包括 zero-shot、five-shot 和 ten-shot 等不同设置。
偏见、风险和限制
OpenELM 的发布旨在为开放研究社区提供最新的语言模型技术支持。尽管这些模型基于公开数据集进行训练,并免费提供给用户使用,但并不具备安全保证。因此,模型可能会在回应用户时生成不准确、具误导性、有偏见或不合适的内容。因此,用户和开发者必须进行彻底的安全测试,并根据其特定需求实施合适的过滤机制。
引用
如果您认为我们的工作有用,请引用:
@article{mehtaOpenELMEfficientLanguage2024,
title = {{OpenELM}: {An} {Efficient} {Language} {Model} {Family} with {Open} {Training} and {Inference} {Framework}},
shorttitle = {{OpenELM}},
url = {https://arxiv.org/abs/2404.14619v1},
language = {en},
urldate = {2024-04-24},
journal = {arXiv.org},
author = {Mehta, Sachin and Sekhavat, Mohammad Hossein and Cao, Qingqing and Horton, Maxwell and Jin, Yanzi and Sun, Chenfan and Mirzadeh, Iman and Najibi, Mahyar and Belenko, Dmitry and Zatloukal, Peter and Rastegari, Mohammad},
month = apr,
year = {2024},
}
@inproceedings{mehta2022cvnets,
author = {Mehta, Sachin and Abdolhosseini, Farzad and Rastegari, Mohammad},
title = {CVNets: High Performance Library for Computer Vision},
year = {2022},
booktitle = {Proceedings of the 30th ACM International Conference on Multimedia},
series = {MM '22}
}
通过这一项目,研究人员和开发者可以更好地理解和应用先进的语言模型技术,同时为各自的研究与应用开发提供了重要支持和参考。