跳到正文

高噪 vs 低噪专家怎么划分?

扩散模型中专家网络按噪声水平划分的标准与动机

原题:在某些扩散模型中,专家网络会根据噪声水平划分为高噪专家和低噪专家。请问这种划分通常依据什么标准(如时间步长、信噪比等)?其背后的动机是什么?

多模态 · 百度真题

回答与解析

划分依据

在常见variance-preserving日程中:

x_t = alpha_t x_0 + sigma_t epsilonSNR(t)=alpha_t²/sigma_t²

若采用DDPM记号,alpha_t²可对应 alpha_bar_t,噪声方差对应 1-alpha_bar_t。因此 alpha_bar_t是累计信号保留系数,不应叫“累积噪声方差”。

专家可按以下信号划分:

  • 时间步t:实现简单,但相同归一化t在不同schedule下未必代表相同SNR。
  • sigma或log-SNR:更直接描述当前噪声状态,便于跨schedule比较。
  • 可学习路由:把时间编码与共享内容特征送入gate,输出软权重或top-k专家;不是所有扩散MoE都必须确定性路由。

阈值没有通用的 0.7T/0.3T。可以先按log-SNR分桶或按训练样本量分位数建立基线,再用验证集选择边界;区间应连续覆盖定义域并写清t方向。

动机与边界

高噪区输入信号弱,模型常更依赖条件和全局结构;低噪区更接近数据,常需要恢复局部细节。这是划分专家的经验动机,不表示两个阶段必然是互相矛盾的任务。必须用相同参数/计算预算,比较单模型、硬分段和软路由,并监控分桶质量、专家利用率、阈值连续性和延迟。

口语版讲法(约4分钟)

  • 先定义alpha、sigma和SNR
  • 澄清alpha_bar含义
  • 比较t与log-SNR
  • 说明硬阈值和可学习路由
  • 给出公平消融标准

我会先把噪声量定义清楚。常见写法是x t等于alpha t乘干净样本,再加sigma t乘标准高斯噪声,信噪比是alpha t平方除以sigma t平方。在DDPM的variance-preserving记号里,alpha t平方可对应alpha bar t,噪声方差则对应一减alpha bar t。所以alpha bar t是累计信号保留系数,不能直接叫累积噪声方差。

最简单的专家划分信号是时间步t。例如在约定大t为高噪的日程里,可以设一个阈值,把大t送到高噪专家,小t送到低噪专家。它容易实现和解释,但阈值不是固定的零点七T或零点三T。不同linear、cosine或其他schedule里,相同归一化t对应的真实SNR可能不同。

更通用的做法是按sigma、SNR或log-SNR分桶。log-SNR直接表达信号与噪声的相对强弱,也方便比较不同schedule。实践中可以先按训练分布的log-SNR分位数得到样本量较均衡的桶,再在验证集上调边界。所有区间要连续覆盖定义域,并明确t从干净到噪声还是从噪声到干净,避免早期和后期叫反。

路由不一定是确定性的。硬路由按固定阈值只激活一个专家,计算路径简单,但阈值附近可能不连续。软路由可以把时间编码和共享主干特征送进gate,输出专家权重,或者做top-k稀疏选择;代价是额外计算、负载不均和专家塌缩风险。是否加入内容条件必须通过消融验证。

划分动机通常是:高噪时输入信号较弱,模型更依赖条件信息和全局结构;低噪时样本已经接近数据流形,更关注纹理和局部误差。这是有用的经验描述,不是所有模型都满足的理论定律,也不能据此断言一个共享网络必然无法同时学习两个阶段。

训练时要确保各个噪声桶都有足够样本,并分别看每桶loss、生成质量和专家利用率。软路由还要看路由熵和负载;硬路由要检查阈值附近输出是否突变。若专家共享backbone,只拆部分block,也要把实际激活参数和显存算清楚,不能只报总参数量。

最终我会在相同总参数或相同激活计算预算下,对比单一去噪器、硬分段专家和软路由专家,报告质量、延迟、显存和不同噪声桶表现。只有当分段在独立评测上稳定有益,才能说这种专家划分成立,而不是先把SNR更优或路由确定性当作结论。

若使用软路由,还要确认加权发生在专家输出、残差分支还是参数层,不同位置的数值和成本不同。若硬路由切换专家,两个专家在边界处的输出尺度也应校准,否则采样轨迹可能出现不连续。

关键一句:同一归一化t在不同噪声schedule下为何不代表同一SNR。

核验来源

  1. Denoising Diffusion Probabilistic Models
  2. eDiff-I: Text-to-Image Diffusion Models with an Ensemble of Expert Denoisers

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你做一个文生图应用,用户输入“一只在雪地里奔跑的哈士奇”。早期生成步骤和晚期步骤,模型关注点很不一样。你会怎么设计不同阶段的专家网络?划分标准用什么?

  2. 问法 2 · 层层追问

    扩散模型里专家网络按噪声水平分区,你觉得应该按什么来分?……直接按时间步长行不行?……那如果换了噪声调度策略,比如从linear换成cosine,同样时间步对应的噪声水平一样吗?……所以更本质的指标是什么?

  3. 问法 3 · 直球架构

    设计一个基于噪声水平划分专家的扩散模型,高噪和低噪专家如何路由?划分标准用时间步还是信噪比?为什么?背后的动机是什么?

同模块相关题目