Diffusion LLM paper reading
1 Residual Context Diffusion Language Models 方法 传统dLLM在每轮预测的时候会把没有预测到的位置上的[MASK]直接扔掉,重置为新的空白[MASK];为了不浪费算力,会选择保留这些废弃的语义,转变成向量用于下一轮预测 算法 将模型预测的概率与词向量进行加权求和,生成残差向量: $ \Delta_i^{(t_k)} = \sum_{j=1}^V p_{i,j}^{(t_k)} E_{j,:} $
$E_{j}$是该词的词向量
残差向量的权重,来判断这个向量值不值得保留 $\alpha_i^{(t_k)} = \frac{-\sum_{j=1}^V p_{i,j}^{(t_k)} \log p_{i,j}^{(t_k)}}{\log V}$
$\alpha$越大,模型对这个词可能越没把握,越应该保留;如果有把握的词都没有被预测,说明可能不应该继续保留
$logV$用来把$\alpha$压缩到0-1之间
如果位置i的词没有被预测出来,就做残差相加,把残差项加到[MASK]上 如果已经被预测出来了,就是等于该词的词向量
$\tilde{e}i^{(t_k)} = \begin{cases} (1 - \alpha_i^{(t{k-1})})E(x_i^{(t_k)}) + \alpha_i^{(t_{k-1})}\Delta_i^{(t_{k-1})}, & \text{if } x_i^{(t_k)} = \text{[MASK]} \ E(x_i^{(t_k)}), & \text{otherwise} \end{cases}$
训练 1 Reference Model Initialization 训练一个$\mathcal{M}_{ref}$,冻结所有参数,用来输出 $p^{(t)}$
2 Residual-Aware Target Training 训练一个$\mathcal{M}_{target}$,输入为一个带[MASK]的句子
通过$\mathcal{M}_{ref}$算出来的概率,算出残差向量的权重$\alpha$ $ \Delta_i^{(t_k)} = \sum_{j=1}^V p_{i,j}^{(t_k)} E_{j,:} $ 计算词向量,概率由 $\mathcal{M}{ref}$ 得到,词向量来自$\mathcal{M}{target}$ 计算最终的加权结果作为输入 输入到$\mathcal{M}{target}$,预测无掩码的原句 损失函数:$\mathcal{L} = \mathbb{E}\left[\frac{1}{t}\sum{i:m_i=1} -\log P_{\theta_{target}}(x_i^{(0)} | {e_{i’}^{(t)}}_{i’=1}^b)\right]$ 推理 1 Warm-Start $\mathcal{M}_{ref}$输出第一步的概率分布$p^{(t_0)}$