扩散模型生成一句话,可以一次写好多个位置上的词。每个位置从自己的分布里抽一个词,再决定这一步要写哪些位置——听起来效率很高,但这里藏着一个前提。
离散扩散、重掩码采样器、均匀态采样器,走的都是这条路:一步写多个token位置,每个位置从各自的分布里取值,写哪些位置也由这些分布决定。问题在于,像素、音素、词这些领域里,token之间存在天然依赖。
打开网易新闻 查看精彩图片
一步写多个位置,前提是什么
只有当这一步写入的位置,在已固定token的条件下彼此条件独立时,这一步才与训练分布匹配。这是结论的核心,也是整条推理链的起点。
反过来看,如果这些位置之间存在依赖,那么无论怎么组合每个位置各自的分布,都无法匹配一个存在依赖的组。单个位置的分布再准,乘起来也对不上真实的联合分布。
这意味着采样器在一步内并行写入多个位置时,可能偏离模型训练时见到的分布。偏差不是来自某个位置的取值错误,而是来自位置与位置之间的关系被拆开了。
并行写入的效率代价
一次写多个位置,是这类采样器效率的来源。但效率与分布匹配之间存在张力:写入的位置越独立,这一步越站得住;位置之间越依赖,这一步越可能失真。
像素、音素、词,这三类域被点名,恰恰因为它们内部依赖普遍存在。语言里一个词的选择往往取决于相邻词,像素的取值取决于周围像素,音素的过渡也受上下文约束。
把这些依赖关系放在同一步里并行处理,等于假设它们互不影响。假设不成立时,采样结果与训练分布的偏离就会累积到后续步骤中。
这项分析给出的不是某个采样器的调参建议,而是一条判断标准:一步是否成立,取决于它写入的位置在给定已固定token后是否条件独立。这条标准可以直接用来检验现有采样器的每一步。
热门跟贴