在独立请求共同封装时调查大型隐藏状态差异 (Qwen3.6, no-grad)
一个有界相同执行者的无梯度诊断在将相同的三个独立请求包含在一个更大的包中时发现了巨大的隐藏状态差异。这目前阻止了在 #848 / #870 / #900 中声称包装/恢复工作的数值资格。它并未确定 #900 引入的回归或识别出底层内核。 观察到 2026 年 9 月 15 日在一个 H200 上,Qwen/Qwen3.6-35B-A3B,候选训练运行时 SHA256 `5df3a1138923faa6705862037cd067d4b8b27cbdb9ef99c1094116efeb237d23`,源代码修订 `586fc4a6dbbabc876f6c7a571a86c47d6b064e4a`。两个可训练的第 1 级 LoRA 位置和一个冻结的参考值都在内存中,恢复了优化器状态;没有发生任何后向、优化器更新、推理请求或缓存释放操作。 同一个执行者运行了 A1、A2、B、A3: - A:原始请求 0-2、32,496 个打包/逻辑行,一个被接受的子程序。 - B:原始请求 0-11、134,591 行,一个被接受的子程序;请比较与 A 不同的前三个请求。 - A2/A1 和 A3/A1 为所有三个输出的位元级别相同。 - B/A1 超过原始 BF16 容忍值(`atol=1e-5`、`rtol=0.016`)的容忍值,对于所有三个输出,最大绝对差异为 10.9453125、8.0 和 9.171875。 A3/B 也失败了。 - 所有 12 个 B 输出都是有限的。所有 9 个测量的适配器/优化器状态摘要相等。完整基础模型状态未被此诊断重新生成。 四个本机阶段完成。原始严格离线投影确认 `native_completed=true`、`scalar_complete=true`、`all_numerical_conditions_passed=false`,以及零个缓存释放调用。进程退出 0 是完成,而不是数值接受。四个拥有的资源 UID 和两个主机进程组在独立情况下得到调和。源代码调查:选择的 GDN 路径创建了新的根循环/卷积状态,并且两个打包都使用了长度可变的处理。常见请求 1/2 保留了它们的 GDN 偏移量,但仍然不同;请求 0 移到了更晚的偏移量。全面关注、GDN、MoE、编译、未测量的基础模型状态和观察者效应仍然可能的位置。尚未找到原因。原始打包/投影/汇编路径的基于标记的 CPU 检查通过;这不是本机数值正确性的证明。下一个拥有的工作(Schulman/Peirce):一个受控的行数与分段/边界处理比较,保留了常见的三个请求和原始令牌内容。单独的基准/候选主复制后向诊断仍在进行中。没有容忍值放宽或 art.megatron 编辑是本问题接收的一部分。持久的私有证据(负载未附加): - 运行根目录:`/var/tmp/art870-aaba-native-v1-20260915-root` - 严格结果:`offline-result/result.json`,SHA256 `97d922966396785661cbac6cf247e5e4081a59ef38216b069599eabc66a4e770` - 根关闭:`gpu-root-closure.json`,SHA256 `4421c8d875889813a2cf1248e924cb3e8cb178f4d15248f6e5872de5398154b3` - 全部原始终端日志 SHA256 …
内容来源: OpenPipe/ART