GitHub Repo
Transformers 5.20.2 修復生成輸入型別遺失,納入 BF16 專家梯度修補
Hugging Face 於 10 月 19 日發布 Transformers 5.20.2,修復生成流程搬移輸入時遺失容器型別、影響多模態模型的問題。新版也正式納入特定專家平行配置的 BF16 梯度修補,為先前社群回報提供可部署版本。

Hugging Face 於 10 月 19 日發布 Transformers 5.20.2,將生成流程的輸入型別修正,以及特定分散式訓練下的專家梯度修補納入正式版本。PyPI 同日提供原始碼與 wheel 套件,讓工程團隊可直接固定版本驗證。發布說明、PyPI 套件紀錄
生成問題出在新增的 move_to_device 路徑:搬移類似字典的輸入時,原本的容器型別可能遺失,連繼承 OrderedDict 的 ModelOutput 也受影響。當後續程式依賴原型別提供的屬性存取方式,便可能發生錯誤。維護者指出,這會波及 generate 內的 prepare_inputs_for_generation,尤其需要留意多模態模型;修補已合併並補上測試。輸入型別修補
訓練端則處理 BF16、token dispatch 與特定專家平行拓樸交會的情況。修補說明列出的條件為 tp_size < ep_size < fsdp_size * tp_size:專家梯度的除數與其 FSDP 群組大小不同,促使 FSDP2 使用 NCCL PREMUL_SUM,而該運算在回報涉及的 PyTorch 版本可能回傳零。新版改讓專家模組先加總,再於本地除算。專家梯度修補
維護者以四張 B300、PyTorch 2.13.0 重現時,BF16 專家梯度範數由零恢復至 0.0889,接近 FP32 的 0.0887,並加入四卡回歸測試。這項結果支持修補在該配置下恢復梯度,但不能據此推定所有拓樸與模型都已驗證。重現數據與測試
對工程團隊而言,升級後應分別檢查多模態生成的輸入容器,以及各專家的梯度與權重更新。前者涉及資料搬移後的介面契約,後者關乎訓練是否實際更新專家;建議以既有工作負載比較升級前後結果。此次發布確立了正式修復版本,完整環境相容性仍須由部署端確認。