返回首頁

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 可輸出每個 token 所屬序列的 seq_idx,以及供注意力運算使用的邊界參數;文件也要求確認模型能處理攤平輸入。因此,資料整理端提供邊界後,底層算子仍須實際遵守隔離語意。資料整理器文件

回報將問題指向備援包裝器:它會丟棄參考函式未宣告的參數,而相關函式未接收 seq_idx 或 cu_seqlens。測試比較第二份文件打包與單獨執行的 token 對數機率,完整加速環境的最大差異約為 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 掃描的序列隔離