
Qwen3.5 GatedDeltaNet: Large logit divergence between full-sequence forward and prefill+decode with cache
快速结论:该问题发生在使用 Hugging Face Transformers 加载 Qwen3.5 系列模型时,全序列前向推理与分段预填充+缓存解码模式之间的 logit 差异达到约 0.125,远超其他架构模型。优先排查是否缺少 causal-conv1d 和 mamba-ssm 等 fast path 依赖,或尝试安装这些包后进行对比测试。
问题场景
用户在 macOS (Apple Silicon) 环境下,使用 transformers==5.9.0 和 PyTorch==2.12.0 (CPU) 对 Qwen/Qwen3.5-0.8B 模型进行两种推理模式(全序列前向与预填充+缓存解码)的 logit 一致性测试。模型中包含 GatedDeltaNet 架构,涉及类似 Mamba 的 conv1d 和循环状态。
报错原文
Max diff: 1.250000e-01
Mean diff: 1.944993e-02
Equal=False
Top-5 largest differences:
Index Full Forward Prefill+Decode Abs Diff Token
6927 -6.343750 -6.218750 1.250000e-01 'oles'
28100 -1.132812 -1.007812 1.250000e-01 'ois'
124639 -9.125000 -9.250000 1.250000e-01 '版主'
107466 -8.937500 -8.812500 1.250000e-01 '了指'
16697 -8.062500 -7.937500 1.250000e-01 'olen'
原因分析
可能原因:GatedDeltaNet 模型架构在 eager 路径中存在数值精度或实现不一致问题,导致预填充阶段的 chunk 计算与最终解码阶段的循环路径输出产生系统性偏差。误差在全连接层(尤其是最后一层)急剧放大,且不受 bfloat16 / float32 精度切换的影响。另外,缺少 causal-conv1d 和 mamba-ssm 等 fast path 包可能加剧偏差。
环境排查
- 确认
transformers版本是否为 5.9.0 - 确认
PyTorch版本是否为 2.12.0 - 确认是否安装
causal-conv1d包(未安装时使用 torch 回退路径) - 确认是否安装
mamba-ssm包(未安装时使用 torch 回退路径) - 确认模型 ID 是否为
Qwen/Qwen3.5-0.8B或Qwen/Qwen3.5-2B - 确认是否在 CPU 上运行(GPU 下行为可能不同,但 Issue 未提供 GPU 测试)
解决步骤
- 安装 fast path 依赖包:
causal-conv1d和mamba-ssm(可优先尝试)。参考 Issue 中用户安装后依然观察到相同误差幅度(最大 0.125),因此此步骤可能无法完全消除问题。 - 测试加载模型时分别使用
dtype=torch.bfloat16和dtype=torch.float32,确认误差是否一致。Issue 数据表明两者表现相同,排除精度问题。 - 逐层输出 hidden state 比较,定位误差集中层(Issue 数据显示误差在最后一层骤升至 0.3125)。
- 如果环境允许,尝试使用 Unsloth 等第三方优化库进行推理,验证结果是否不同(Issue 中仅为建议,未提供实测结论)。
- 关注官方后续修复或针对
GatedDeltaNet的优化补丁。
验证方法
运行 Issue 中提供的复现代码,对比全序列前向(use_cache=False)与预填充+解码(use_cache=True)两种模式在最后一个 token 的 logit 差异。若最大绝对差从 0.125 降至 1e-3 以下,则可认为问题缓解。



