对一个位置 (t),模型给出词表分布 $p_\theta(\cdot \mid x, y_{<t})$
真实 token 是 (y_t),其 one-hot 分布为 $(\delta_{y_t})$。
$$ \begin{aligned}\arg\min_{\theta}\,\mathrm{KL}\!\left(q_t \,\|\, p_\theta(\cdot \mid x, y_{<t})\right)&=\arg\min_{\theta}\sum_{v \in \mathcal{V}}q_t(v)\log\frac{q_t(v)}{p_\theta(v \mid x, y_{<t})} \\[6pt]&=\arg\min_{\theta}\left(-\sum_{v \in \mathcal{V}}q_t(v)\log p_\theta(v \mid x, y_{<t})\right) \\[6pt]&=\arg\min_{\theta}\,H\!\left(q_t,\,p_\theta(\cdot \mid x, y_{<t})\right) \\[8pt]&\overset{q_t(v)=\delta_{v=y_t}}{=}\arg\min_{\theta}\left[-\log p_\theta\!\left(y_t \mid x, y_{<t}\right)\right] \\[6pt]&=\arg\min_{\theta}\,\mathrm{NLL}_t(\theta).\end{aligned} $$
q_t: [0, 0,0,…, 1, 0,0 ] 长度为词表大小的一个one-hot向量;
p_t: 模型输出的第t个token的表示
$\sum_{v\in\mathcal{V}}q_t\log q_t = 0$ 所以最小化KL等价于最小化CE; 把 one-hot的q_t带入CE,就可以得到CE严格等于NLL;
$$ \begin{aligned}\arg\min_{\theta}\,\mathrm{KL}\!\left(q \,\|\, p_\theta\right)&=\arg\min_{\theta}\sum_{y} q(y)\log\frac{q(y)}{p_\theta(y)} \\&=\arg\min_{\theta}\left(-\sum_{y} q(y)\log p_\theta(y)\right) \\&=\arg\min_{\theta}\, H(q, p_\theta) \\&\overset{q(y)=\delta_{y^\star}(y)}{=}\arg\min_{\theta}\, \big[-\log p_\theta(y^\star)\big] \\&=\arg\min_{\theta}\, \mathrm{NLL}(y^\star;\theta).\end{aligned} $$
这一步没有任何近似,CE 在 one-hot 标签下 严格等价于 NLL(负对数似然)
在训练集上,SFT 的优化目标是最小化平均 CE或者说KL,也就是在数据集的层面,强硬地拉近模型输出和reference的分布
$$ \begin{aligned}\mathcal{L}{\mathrm{SFT}}(\theta)&=\frac{1}{|\mathcal{D}{\mathrm{train}}|}\sum_{(x,y)\in\mathcal{D}{\mathrm{train}}}\frac{1}{|y|}\sum{t=1}^{|y|}-\log p_\theta\!\left(y_t \mid x, y_{<t}\right) \\[6pt]&=\frac{1}{|\mathcal{D}{\mathrm{train}}|}\sum{(x,y)\in\mathcal{D}{\mathrm{train}}}\frac{1}{|y|}\sum{t=1}^{|y|}\mathrm{KL}\!\left(\delta_{y_t}\,\big\|\,p_\theta(\cdot \mid x, y_{<t})\right).\end{aligned} $$