GitHub Repo
Transformers 社群提出長度控制修補,參數組合可能讓生成提前結束
社群重現顯示,最低生成長度與指數長度懲罰同時使用時,可能產生 NaN,造成提前結束或採樣失敗。10 月 2 日已出現修補提案,但正式版本的修復狀態仍待確認。

Transformers 社群針對生成長度控制的交互缺陷提出修補。10 月 1 日公開的回報指出,當 exponential_decay_length_penalty 在最低生成長度達成前開始作用,結束序列 token(EOS)的分數可能變成 NaN;10 月 2 日的公開 PR 列表已出現「保留被遮罩 EOS 分數」的提案,目前仍列於開放項目。問題回報、公開 PR 列表
這兩項控制原本各有用途。官方文件說明,min_new_tokens 在指定長度前將 EOS 分數設為負無限大,使模型繼續生成;指數長度懲罰則在起始位置之後逐步提高 EOS 分數,讓輸出自然收尾。前者限制最短長度,後者鼓勵縮短輸出,部署者可能同時設定兩者。官方生成工具文件
回報者分析,問題出在後續加分仍套用至已遮罩的 EOS:負無限大加上正無限大會得到 NaN。因此,原本代表「暫時禁止結束」的分數失去預期語意。社群以小型 GPT-2 與 T5 配置重現,觀察到貪婪及束搜尋低於最低長度便結束,採樣則因機率張量含無效值而拋出錯誤。重現與分析
回報中的本地修正只對有限 EOS 分數加分,保留既有遮罩。這提供了具體修補方向,但相關測試結果仍由提案作者提供,不能據此宣稱所有模型或部署路徑均已驗證,也不能把提案視為已發布修復。修正說明
對工程團隊而言,此案例顯示生成參數需要組合驗證。依上述機制推論,檢查應涵蓋懲罰起點與最低長度的相對位置、實際新增 token 數,以及不同解碼方式下的錯誤。後續應追蹤提案是否合併、哪個版本納入修正,並以自己的模型與參數重跑測試,確認最低長度約束確實成立。