ホームへ戻る

GitHub Repo

Transformersコミュニティが系列分離の修正を提案、加速パッケージがない場合に文書のパッキングでモデル出力が変わる可能性

10月9日のTransformers開発版で報告された問題によると、一部のPyTorchフォールバック演算子が文書境界を無視し、パッキングされた系列同士が影響し合う可能性がある。コミュニティは修正案と比較テストを提出したが、まだマージされておらず、正式リリースへの影響範囲は確認中だ。

prayitno from Los Angeles, USA · CC BY 2.0 · Image source
zh-Hant

Transformersコミュニティは10月9日、文書パッキングの正確性に関する問題を公開した。環境に一部の任意の高速化パッケージがなく、PyTorchの参照実装にフォールバックした場合、畳み込みや再帰状態が文書境界を越え、後続文書の出力が先行文書の影響を受ける可能性がある。報告にはQwen3.5-0.8Bを使った最小再現例が含まれている。テストはメインブランチのコミット4cc2aa8、H100、float32に基づくもので、すべての正式リリースが影響を受けると直ちに結論づけることはできない。問題報告

文書パッキングでは、パディング処理を減らすために複数のサンプルを長い系列に連結する。公式ドキュメントによると、DataCollatorWithFlatteningは各トークンが属する系列を示すseq_idxと、注意計算に使う境界パラメーターを出力できる。また、モデルが平坦化された入力を処理できることを確認するよう求めている。つまり、データコレーターが境界を渡しても、下位の演算子が実際に分離の意味を守る必要がある。データコレーターのドキュメント

報告は原因をフォールバック用ラッパーに絞り込んでいる。このラッパーは、参照関数で宣言されていない引数を破棄する一方、関連する関数はseq_idxやcu_seqlensを受け取らない。テストでは、2つ目の文書をパッキングした場合と単独で実行した場合のトークン対数確率を比較した。高速化パッケージをすべて使える環境では最大差は約0.0007だったが、causal-conv1dを無効にすると5.7380に増えた。これは特定のケースにおける出力差であり、モデル品質の低下率を示すものではない。また、ユーザー間でデータが漏えいしたことを示す証拠もない。再現手順と数値

修正案#49477では、畳み込みのマスクが系列をまたぐウィンドウを遮断し、gated delta ruleとMamba2のスキャンを系列ごとに実行する。作者によると、別のQwen3.5-0.8Bテストでは最大対数確率差が6.8から約0.000011に低下した。ただし、系列ごとの処理にはホストとの同期が必要となり、性能面でコストが生じる。確認時点で、この提案はまだオープンだった。エンジニアリングチームは、実環境でパッキングした結果とサンプルごとの結果を照合し、使用した任意パッケージとカーネル経路を記録したうえで、マージと正式リリースの状況を追跡するのがよい。学習損失や評価の再現性への影響については、現時点では追加計測が必要な推論にとどまる。修正提案

出典

  1. Packed sequences leak into each other in gated-DeltaNet models when only position_ids are given
  2. Transformers Data collator:DataCollatorWithFlattening
  3. Transformers #49472:PyTorch 備援算子忽略打包序列邊界
  4. Transformers #49477:修補卷積、gated delta rule 與 Mamba2 掃描的序列隔離