license: apple-amlr
license_name: apple-sample-code-license
license_link: 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-3B --hf_access_token [HF_ACCESS_TOKEN] --prompt '很久很久以前' --generate_kwargs repetition_penalty=1.2
获取HuggingFace访问令牌请参考此链接。
可通过generate_kwargs
传递额外生成参数。例如使用前瞻token推测生成加速推理:
python generate_openelm.py --model apple/OpenELM-3B --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-3B --hf_access_token [HF_ACCESS_TOKEN] --prompt '很久很久以前' --generate_kwargs repetition_penalty=1.2 --assistant_model [较小模型]
核心结果
零样本学习
LLM360评估
OpenLLM排行榜
模型规模 |
ARC-c |
CrowS-Pairs |
HellaSwag |
MMLU |
PIQA |
RACE |
TruthfulQA |
WinoGrande |
平均分 |
OpenELM-270M |
27.65 |
66.79 |
47.15 |
25.72 |
69.75 |
30.91 |
39.24 |
53.83 |
45.13 |
OpenELM-270M-Instruct |
32.51 |
66.01 |
51.58 |
26.70 |
70.78 |
33.78 |
38.72 |
53.20 |
46.66 |
OpenELM-450M |
30.20 |
68.63 |
53.86 |
26.01 |
72.31 |
33.11 |
40.18 |
57.22 |
47.69 |
OpenELM-450M-Instruct |
33.53 |
67.44 |
59.31 |
25.41 |
72.63 |
36.84 |
40.48 |
58.33 |
49.25 |
OpenELM-1_1B |
36.69 |
71.74 |
65.71 |
27.05 |
75.57 |
36.46 |
36.98 |
63.22 |
51.68 |
OpenELM-1_1B-Instruct |
41.55 |
71.02 |
71.83 |
25.65 |
75.03 |
39.43 |
45.95 |
64.72 |
54.40 |
OpenELM-3B |
42.24 |
73.29 |
73.28 |
26.76 |
78.24 |
38.76 |
34.98 |
67.25 |
54.35 |
OpenELM-3B-Instruct |
47.70 |
72.33 |
76.87 |
24.80 |
79.00 |
38.47 |
38.76 |
67.96 |
55.73 |
更多结果与对比请参阅技术报告。
评估流程
环境配置
安装依赖项:
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
执行评估
hf_model=apple/OpenELM-3B
tokenizer=meta-llama/Llama-2-7b-hf
add_bos_token=True
batch_size=1
mkdir lm_eval_output