看 Common Crawl 的语言分布,英语一家能占一半以上,西班牙语几个百分点,斯瓦希里语、冰岛语这种语言的可用文本以 GB 计。一个想做多语言模型(XLM-R、mT5、Aya 系)的团队面临的第一个问题就是:按自然分布采样,绝大多数语言的 token 数撑不起一次像样的训练。直接后果是 XLM-R 论文里观察到的"多语言诅咒"——语言数从 15 加到 100,每种语言的下游指标全线下跌,因为模型的容量(参数量)被摊薄了。采样温度就是为这个不均衡打的补丁,但 $p^{1/T}$ 这个式子不是拍脑袋,背后有一条清晰的优化推导。
问题形式化:给定预算,怎么分给各语言
设语言 $L$ 的自然 token 占比为 $p_L$($\sum_L p_L = 1$),总数据预算 $D$。如果我们给语言 $L$ 分配 $D_L$ 个 token($\sum_L D_L = D$),该语言的验证损失遵循 scaling 形式 $\ell_L(D_L) = B_L D_L^{-\beta}$——这和 Chinchilla 的数据项是同一个形状。我们希望重要的语言损失低,但又不至于把全部预算砸给英语。用一个按自然占比加权的总损失来描述目标:
$$ \mathcal{L} = \sum_L p_L \, B_L D_L^{-\beta}, \qquad \text{s.t.} \;\sum_L D_L = D . $$
拉格朗日求极值:对每个 $L$,$\partial/\partial D_L \big[\,p_L B_L D_L^{-\beta} + \lambda D_L\,\big] = 0$,得
$$ p_L \beta B_L D_L^{-\beta-1} = \lambda \;\;\Longrightarrow\;\; D_L = \Big(\frac{\beta B_L}{\lambda}\Big)^{\frac{1}{\beta+1}} p_L^{\frac{1}{\beta+1}}. $$
也就是说最优分配不是自然分布,而是自然分布的一个幂次:$D_L / D \propto p_L^{\,\gamma}$,指数 $\gamma = \frac{1}{\beta+1}$。代入 Chinchilla 拟合的 $\beta \approx 0.28$,$\gamma \approx 0.78$。这就是"采样温度"的理论出处:工程上用
$$ q_L = \frac{p_L^{\,1/T}}{\sum_{L'} p_{L'}^{\,1/T}} $$
的形式重采样,$1/T$ 就是那个分配指数。理论值 0.78 意味着 $T \approx 1.3$——理论上应该轻微地上采样小语种、下采样大语种(因为损失对数据的边际收益递减,均匀 marginal return 要求低资源语言拿到比自然占比更多的数据)。
理论值和实操值为什么差一个区间
上面推出来的 $\gamma \approx 0.78$ 照顾的是"加权总损失最小",但多语言模型的真实目标不是这个。工程上有三个因素把实操温度推向更激进($\gamma$ 更小,即 $T$ 更小)的方向。
下游任务在每个语言上等权。 训练分布按 $p_L$ 加权是假设"英语用户量是斯瓦希里语的一千倍,损失就该按这个比例加权"。但产品评测和学术论文里,每个语言的 benchmark 各占一分——几十个语言的平均分直接决定模型口碑。等权评测等价于把目标函数里的权重从 $p_L$ 换成均匀,重新解上面的优化,小语种的分配会大幅上移。
低于某个数据量,损失函数形状会坏掉。 $\ell = B D^{-\beta}$ 只在"数据足够、分布干净"的区间成立。一个语言的干净文本只有几百 MB 时,还没进入幂律区就见底了——继续上采样等于重复同一个小语料几十 epoch,换来的是背答案而不是学语言。所以实操里会给 $q_L$ 设上限(一般不超过 5%),并且小语种的真实瓶颈往往是高质量数据量,而不是采样权重。
容量诅咒约束了上限。 Conneau 等人的 XLM-R 实验给出的硬证据:固定参数量,语言数翻倍,每语言性能下降。采样温度能补偿数据的不足,补偿不了容量的分摊。做到某个点后,多语言模型的正解不是继续调 $T$,而是换更大的底座或按语系分模型。
几个具体口径
XLM-R 用的是 $\alpha = 0.3$(即 $q \propto p^{0.3}$),这是文献里最激进的档位,换来的是它在 XNLI 等跨语言基准上的统治力,代价是英语单语能力比同规模 RoBERTa 差。mT5 基本按自然分布训练,结果是低资源语言全面掉队,这个对照本身就说明了温度的价值。Aya 和 BLOOM 系的做法介于中间:按语言家族分组设权重,再叠加质量过滤。经验上:以英语为主力市场的通用模型,$T$ 取 0.7–0.9(轻微修正)比较稳;以跨语言迁移为卖点的模型,0.3–0.5 是常见档,但要配上面说的单语言占比上限。
还有个经常被漏掉的点:温度采样要和去重、质量过滤的顺序配合。先重采样后过滤,会让小语种的有效产出比预期更低(小语料的脏数据率通常更高);先过滤后重采样,则温度公式里的 $p_L$ 应该用过滤后的占比重新归一。两种顺序的总产出能差出十几个百分点,流水线上值得专门核对。
小结
采样温度的原理是约束优化:在各语言数据预算的边际收益相等处分配,得到 $D_L \propto p_L^{1/(\beta+1)}$,即理论分配指数约 0.78。工程上写成 $q_L \propto p_L^{1/T}$ 的形式,理论值 $T \approx 1.3$ 只是温和修正;考虑到下游等权评测、幂律区下限和容量诅咒,实操把 $T$ 压到 0.3–0.7。温度能补偿数据量的不均衡,补偿不了数据质量和模型容量本身——小语种的真实杠杆在高质量语料的扩充,温度只是把存量分得更公平。