LLM论文笔记 6: Training Compute-Optimal Large Language Models
- Arxiv日期:2022.3.29
- 机构:Google DeepMind
关键词
- scaling law
- power law
- 参数量
- FLOPS
- tokes
核心结论
1. 当前大多数大语言模型(如 GPT-3 和 Gopher)在计算预算分配上存在问题,模型参数过大而训练数据不足
2. 计算预算计算方式(非首次提出,DeepSeek report 中被改进) FLOPS = 6ND
3. 模型参数与训练数据的比例
-
训练资源
,模型参数
,训练token数
-
模型参数和训练数据呈相同倍率增长
4. 不认可(Kaplan et al. 2020)提出的 a = 0.73, b = 0.27
5. 进一步提高语言模型性能的关键在于获取更多高质量的训练数据,而不是盲目增加模型参数
6. 数据质量比数据规模更重要,应对训练数据进行高标准的筛选和去重,以避免数据泄漏和测试集重叠
主要方法
提出三种研究方法:
1. 固定模型大小,改变训练数据量
-
在固定的模型大小 N 下,通过调整训练数据量(即训练的 token 数 D ),研究损失随计算预算 C 的变化趋势(估计给定 FLOPs 预算下的最优模型大小和所需的训练数据量)
-
模型大小和训练数据量应随计算预算等比例增长
2. 固定 FLOPs,调整模型大小
-
在固定计算预算(FLOPs) C 下,通过调整模型大小 N 和对应的训练 token 数 D ,研究损失的最小值随模型大小的变化趋势(直接研究了在特定计算预算下,最优的模型大小是多少)
-
不同计算预算下的最优模型大小和训练数据量均与 FLOPs 呈近似线性关系
3. 拟合参数化损失函数
-
构建一个基于模型大小 N 和训练数据量 D 的损失函数 L(N, D) ,并通过实验数据拟合其参数,推导出理论上的最优模型大小和训练数据量分配
-
通过优化算法(L-BFGS)拟合参数 A, B, E, \alpha, \beta ,使得拟合损失函数与实验数据最为接近 / 使用 Huber 损失来提高对异常点的鲁棒性
-
结合 FLOPs 约束 C = 6ND ,通过拉格朗日乘数法
三种方法总结:
补充
DeepSeek 技术报告 中对 FLOPS=6ND 的计算方式进行了改进
参考 DeepSeek LLM Scaling Open-Source Language Models with Longtermism
提出 C = MD
使用参数 M 替代模型参数 N(认为模型参数不代表真实的计算量)
同时研究了超参数的 scaling law:超参数(batch size / lr)具有较宽的选择范围:
M / D关于C的缩放结论:
注:本系列不包括基础的知识点讲解,为笔记/大纲性质而非教程,用于论文知识点和思想和快速记忆和回顾,更多细节建议阅读论文原文