GitHub Repo
TransformersコミュニティがQwen4-Expの注意機構の異常を報告、左パディングのバッチでNaNが発生する可能性
10月23日のTransformersコミュニティからの報告によると、Qwen4-Expでeager注意機構を使って左パディングのバッチを処理すると、有効トークンの出力にNaNが現れる可能性があります。小規模なCPUテストではSDPA経路で同じ問題は見られませんでしたが、実際の重みとGPUへの影響は未検証です。

Transformersに新たに寄せられた技術報告は、Qwen4-Expの特定の注意機構バックエンドに数値汚染のリスクがあると指摘しています。報告者は10月23日、再現コードを提示しました。左パディングされた系列とパディングされていない系列が同じバッチに含まれる場合、attn_implementation="eager"を設定すると、前者の有効位置のlogitsにNaNが現れ、後者は正常なままです。同じ重みと入力でSDPAに切り替えると、値は有限のままでした。問題報告
この条件は公式の推奨と直接関係しています。Qwen4-Expのドキュメントでは、バッチ生成に左パディングを使うよう求め、eagerとSDPAの両方をサポート対象として挙げています。そのアーキテクチャはQwen Sparse Attention(QSA)とGatedDeltaNetを組み合わせています。QSAは関連するトークンブロックを選択し、GatedDeltaNetは線形注意機構を処理します。そのため、マスク位置で発生した異常が後続層で隔離されるかどうかは、実装上の重要な境界です。公式アーキテクチャと使用ドキュメント
報告者の調査によると、QSAの選択マスクと因果マスク/パディングマスクを加算する際、2つの最小有限浮動小数点値がオーバーフローして負の無限大になる可能性があります。パディング位置の行に可視キーが一つもないと、softmaxがNaNを生成します。その後のGatedDeltaNetでは、マスクを乗算してゼロにしてもNaNは除去できず、有効位置に伝播する可能性があります。これは報告者が提示した根本原因の分析であり、メンテナーによる確認はまだです。分析と再現コード
テストではTransformers 5.19.0、CPU、FP32を使用し、ランダム初期化した小型モデルを使っています。事前学習済みの重みは読み込んでいません。報告者は、マスクを加算する代わりに、阻止対象の位置を上書きする修正案を提示しています。限定的なテストでは出力が有限値に戻りましたが、正式な修正と見なすことはできません。テスト範囲と修正案
エンジニアリングチームにとって、この報告は、系列長の異なるバッチ、有効位置の値が有限であることのチェック、注意機構バックエンドの比較を検証に含める必要性を示しています。現時点ではSDPAを比較基準にできますが、実際のデプロイに適用できるかは、既存の重み、精度、ハードウェアを使って再テストする必要があります。今後はメンテナーによる確認、回帰テスト、修正バージョンを追跡すべきです。この結果を、Qwen4-Expのすべての推論経路が失敗するという意味に拡大解釈してはいけません。