Masked Cross-Entropy (Masked CE) 是 VLM 的标准训练损失——序列级 next-token 预测, 但只在 assistant (模型回答) 文本 token 上计算损失, 屏蔽用户指令 token 与全部视觉 patch token 的梯度:
L=−t∈assistant∑logpθ(yt∣x<t)
输入序列为
x=[v1,…,vN,u1,…,um,a1,…,aL] (视觉 patch → 用户指令 → assistant 回答), 因果注意力对全部 token 可见, 但只有
t∈assistant 位置产生损失——等价于 LLM SFT 的 labels 机制: 非监督位置 label =
ignore_index (如 -100)。
为什么屏蔽: (1) 视觉 patch token 没有“下一个 token”的监督目标 (它们由编码器静态提供, 不是生成目标), 对它们算 CE 会强迫模型预测 patch 序列, 既无意义又干扰文本学习; (2) 用户指令不是模型该生成的内容, 预测指令会鼓励模型“续写用户话术”; (3) 计算效率——高分辨率输入下视觉 token 占序列绝大部分 (336×336、patch 14 → 576 个视觉 token, 常占整条序列 85–90%), 屏蔽后反向传播量近似下降一个量级。归一化可加
1/L (按监督 token 数平均)。