1. LLaMA3中的Scaling Law解析:从公式推导到实践应用
在大型语言模型(LLM)的发展历程中,Scaling Law(尺度定律)一直扮演着关键角色。LLaMA3论文(arXiv:2407.21783)对这一问题进行了深入探讨,特别是通过IsoFLOPs实验得出了最佳数据量与算力关系的精确表达式:D*(C)=ACᵃ=0.299C⁰‧⁵³⁷。这个看似简单的公式背后,蕴含着对模型训练效率的深刻理解。
提示:理解Scaling Law的核心在于把握"在有限算力条件下,如何最优分配模型参数和训练数据量"这一基本问题。
1.1 Scaling Law要解决的核心问题
LLaMA3论文明确指出,他们的Scaling Law研究主要解决两个关键问题:
-
算力预算分配问题:给定预训练算力预算C,确定最优的模型规模(参数量)和训练token数量。这直接关系到训练资源的利用效率。
-
下游任务预测问题:不仅要预测下一个token的损失(loss),还要预测下游任务(如ARC Challenge)的准确率。为此,论文采用了"两段式"相关性拟合方法。
1.1.1 算力最优模型的定义
论文将每条损失曲线的最低点称为"compute-optimal model"(算力最优模型),用数学表达式表示为:
T*(C) = argmin_T L_C(T)
其中:
- C:固定的FLOPs预算
- T:训练token数量
- L̂_C(T):该预算下拟合出来的loss曲线
- T*(C):该预算下最优token数量(即loss曲线最低点对应的token数)
这个定义源自2022年Chinchilla论文的重要发现,挑战了此前"模型越大越好"的认知,提出了更精细的算力分配策略。
1.2 关键公式推导与解释
1.2.1 基本Scaling Law公式
LLaMA3采用的Scaling Law基础形式为:
L(N,D) = E + A/N^α + B/D^β
其中:
- N:模型参数量
- D:训练token数量
- E、A、B、α、β:需要通过实验确定的常数
这个公式将最终loss分解为三个部分:
- 不可约损失E(理论下限)
- 模型规模相关项A/N^α
- 数据量相关项B/D^β
