🚀 ReluLLaMA-7B
ReluLLaMA-7B 是基于 ReLU 激活函数的大语言模型,通过微调现有模型转换为 ReLU 激活版本,有望推动稀疏大语言模型的发展,在计算效率上具有一定潜力。
🚀 快速开始
本文档将为你详细介绍 ReluLLaMA-7B 模型,包括其背景、数据集、训练细节、评估结果、推理工具等内容。
✨ 主要特性
- 稀疏计算潜力:模型在使用 ReLU 激活函数时展现出适合稀疏计算的特性,有望通过动态选择模型参数进行计算,大幅提高效率。
- 知识蒸馏优化:在训练中引入知识蒸馏目标,避免过拟合,增强模型的泛化能力。
- 多数据集评估:在多个数据集上进行评估,全面展示模型性能。
📚 详细文档
背景
稀疏计算正日益成为提升大语言模型(LLM)计算效率的重要方向。在各种方法中,以 Mixtral 等模型为代表的专家混合(MoE)方法表现出了特别的潜力。MoE 通过选择性地激活不同的模型组件(专家),从而优化资源使用。
近期研究(Zhang el al., 2021; Liu et al., 2023; Mirzadeh et al., 2023)表明,当使用 ReLU 激活函数时,大语言模型本质上具有有利于稀疏计算的特性。这一发现为模型效率开辟了新途径,类似于 MoE 的选择性激活。通过动态选择模型参数进行计算,我们可以大幅提高效率。
然而,基于 ReLU 的模型在大语言模型领域的广泛应用仍然有限。参考现有工作的转换方法(Zhang el al., 2021; Mirzadeh et al., 2023),我们通过微调将现有模型转换为 ReLU 激活版本。我们希望这些开源的 ReLU 大语言模型能够促进稀疏大语言模型的发展。
数据集
我们在约 50 亿个标记上对模型进行微调,包括:
- Wikipedia
- Pile
- StackOverflow
我们乐观地认为,通过继续使用更多标记(涵盖更广泛的数据种类)进行训练,模型将进一步接近其原始性能。
训练细节
我们在传统语言建模目标和知识蒸馏目标上联合优化模型。知识蒸馏目标是最小化教师模型和学生模型之间的 KL 散度。教师模型是原始的大语言模型,学生模型是 ReLU 激活版本。由于微调数据的规模相对较小,我们引入知识蒸馏目标以避免过拟合,并增强模型的泛化能力,这也可以看作是一种标签平滑技术。
参数 |
值 |
微调类型 |
全量微调 |
批量大小 |
2048 |
GPU |
8xA100(80G) |
学习率调度器 |
余弦 |
学习率 |
3e - 5 |
评估
我们在 Open LLM Leaderboard 的数据集上对模型进行评估。结果如下:
指标 |
ReLU 值 |
原始值 |
ARC (25 - 样本) |
49.48 |
53.07 |
HellaSwag (10 - 样本) |
74.67 |
78.59 |
MMLU (5 - 样本) |
44.84 |
46.87 |
TruthfulQA (0 - 样本) |
39.04 |
38.76 |
Winogrande (5 - 样本) |
69.37 |
74.03 |
GSM8K (5 - 样本) |
10.61 |
14.48 |
平均值 |
48.00 |
50.97 |
推理工具
我们使用 PowerInfer 进行推理,这里我们展示了使用 fp16 精度纯 CPU 推理的推理速度。
CPU 配置包括一个 Intel i9 - 13900K 处理器(八个性能核心,主频 5.4GHz)和 192GB 主机内存(内存带宽 67.2 GB/s)。
- 密集推理:5.17 标记/秒
- 稀疏推理:8.21 标记/秒
许可证声明
此模型受原始 Llama - 2 模型的许可证和使用限制约束,并且不提供任何形式的保证。
局限性和偏差
Llama 2 及其微调变体是一种新技术,使用时存在风险。到目前为止进行的测试均使用英语,且未涵盖也不可能涵盖所有场景。因此,与所有大语言模型一样,Llama 2 及其任何微调变体的潜在输出无法提前预测,并且在某些情况下,模型可能会对用户提示产生不准确、有偏差或其他令人反感的响应。因此,在部署 Llama 2 变体的任何应用程序之前,开发人员应针对其特定的模型应用进行安全测试和调整。
请参阅 负责任使用指南。
引用
请使用以下 BibTeX 进行引用:
@misc{sparsellm,
title={Sparse Large Language Models with ReLU Activation},
author={SpaseLLM Team},
year={2023}
}
致谢
此模型卡片修改自 ORCA_LLaMA_70B_QLoRA。