MDLLMs是什么?
·
多模态扩散大语言模型(MDLLMs),这类模型通过并行掩码解码实现高效生成。他和GPT的自回归编码模式不同,是并行解码的。具体是怎么做的呢?:
1. 核心概念差异
- 传统串行预测(Autoregressive, AR):
- 机制:像说话一样,必须先说出第一个字,确认无误后才能说第二个字。
- 表现:解码过程是 t=1→t=2→t=3 的单向顺序。前面的 token 决定了后面的预测。
- 致命伤:如果第一步错选了
no,后面的步骤会基于这个错误的no继续生成,无法回头修正,这就是图中左侧产生幻觉的原因。
- 并行预测(Parallel Decoding / Masked Decoding):
- 机制:像 “填空” 一样,一次性预测句子中所有位置的 token。
- 表现:所有的
[MASK]位置同时被模型填充。图中右侧的t=1时刻,no、on、the、deck是同时被候选出来的。 - 核心优势:因为是同时预测,解码器拥有全局视野,发现某个 token(如
no)视觉站不住脚时,可以撤销该选择,保留[MASK]状态,等待下一轮迭代修正(即图中右侧的An intermediate step过程)。
因此,训练的时候MDLLMS有点像bert,是在做”完形填空“,但实际使用的时候并不是完形填空。问题在于他需要知道自己具体要生成多长,有多少个mask。具体做法是这样:
1. 训练 vs 推理的本质区别
表格
| 阶段 | 核心任务 | 形式 | 目的 |
|---|---|---|---|
| 训练阶段 | 掩码语言建模(MLM) | 给句子随机打[MASK],让模型预测被掩码的 token |
学习语言的全局语义、上下文依赖,以及多模态对齐 |
| 推理阶段 | 迭代式并行解码 | 从全[MASK]序列出发,多轮迭代逐步填充 / 修正 token |
最终生成完整、通顺的目标文本 |
简单来说:训练是 “完形填空”,推理是 “从空白到完整的多轮并行修正”,完全不是一次性填空。
2. 实际推理的完整流程(以图 1 的问答场景为例)
以用户提问 Is there a cup in the image? 为例,MDLLMs 的实际使用流程是这样的:
- 初始化:根据任务预设一个最大输出长度(比如 20 个 token),生成一个全
[MASK]的序列:[MASK] [MASK] [MASK] ... [MASK](共 20 位)。 - 第 1 轮并行预测:模型一次性给所有
[MASK]位置预测候选 token 和置信度(就是图 1 中t=1的状态),同时计算每个 token 的视觉对齐分数(VISAGE 就是在这一步做修正)。 - 筛选与保留:根据置信度筛选出高可信度的 token(比如
on the deck),保留下来;低可信度的 token(比如no)不锁定,变回[MASK],等待下一轮修正。 - 多轮迭代:重复步骤 2-3,每一轮都并行预测所有位置的 token,修正错误、填充空白,直到:
- 所有位置都被填充为有效 token,或
- 生成了终止符
<EOS>,或 - 达到预设的最大迭代轮数。
- 最终输出:提取迭代完成后的有效 token 序列,去掉填充位,得到最终回答
There is a cup on the deck.。
这样就实现了动态长度,产生了类似于自回归的效果。
和所有的transformers一样,这种模型也是输入多少个token输出就有多少个。在传统的自回归transformers里面,每个输入token对应的预测token是本token的下一个token。而在MDLLMs里面,本token对应的预测token就是本token自己。比如说训练的时候有100个token,里面25个被mask了,模型的工作是预测这25个mask对应啥真实token。其实那75个没有被mask的也会有对应的预测token,但我们不用管,就像GPT架构里面已经确定了下一位是啥token的token也会在前向传播的时候预测一次下一个token是啥一样,我们直接不管的。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)