返回首頁

GitHub Repo

Transformers 提出 FlashAttention 修補,恢復 Ministral3 與 Mistral4 的打包序列隔離

Transformers 社群於 11 月 6 日提出修補,處理 Ministral3、Mistral4 未將位置資訊傳給注意力後端,導致打包文件可能互相影響的問題。提案尚未合併,實際訓練品質影響與完整回歸驗證仍待確認。

Marcus Qwertyus · Public domain · Image source
zh-Hant

Transformers 社群於 11 月 6 日提出 PR #50450,修補 Ministral3、Mistral4 在 FlashAttention 下處理無填充打包序列的參數傳遞問題。依作者說明,兩個模型的注意力模組接收了 position_ids,卻未繼續傳給注意力函式,使後端無法辨識序列邊界,文件之間因此可能出現跨界注意力。截至查核時,提案仍為開啟狀態。修補提案

這項問題牽涉微調常用的效率優化。一般批次會把短樣本補齊至相同長度;無填充處理則把樣本串接,減少無效 token 的計算。Hugging Face 的技術文章說明,這條 FlashAttention 2 路徑須利用位置資訊維持樣本邊界,並透過可變長度注意力處理各序列。若邊界資訊未送達,串接後的資料便可能被當成可互相注意的內容。官方技術說明

作者指出,問題出在模型為查詢縮放而明確接收位置參數後,沒有將它轉交給 attention_interface。提案補上這段傳遞,並新增測試檢查注意力函式確實收到參數;作者也提醒,既有無填充測試在先前調整後已無法捕捉此問題。公開頁面仍顯示等待維護者核准執行 CI,不能據此認定正式套件已修復。問題定位與驗證狀態

對工程團隊而言,需要留意的是訓練資料的獨立性。依上述機制推論,若原應隔離的樣本互相提供上下文,損失值與收斂結果就可能偏離預期;目前提案尚未提供完整訓練品質比較,也未界定所有受影響版本。TRL 文件亦將打包與無填充列為不同的記憶體優化方式,實際觸發條件仍須對照資料整理器與注意力設定。TRL 文件

使用相關模型進行微調的團隊,可優先比對樣本單獨執行與串接執行的輸出,檢查改動前一份文件是否影響後一份文件。接下來應觀察維護者審查、實際 FlashAttention 回歸結果,以及修補收錄版本;目前證據不足以量化既有訓練任務的影響程度。

來源

  1. Fix Ministral3 and Mistral4 ignoring packed sequences under FlashAttention — PR #50450
  2. Improving Hugging Face Training Efficiency Through Packing with Flash Attention 2
  3. TRL — Reducing Memory Usage