GitHub Repo
Transformersコミュニティ、生成長を制御する修正を提案 パラメータの組み合わせで生成が早期終了する可能性
コミュニティによる再現で、最小生成長と指数長ペナルティを併用するとNaNが発生し、早期終了やサンプリング失敗につながる可能性が示された。10月2日に修正案が公開されたが、正式リリースでの対応状況はまだ確認が必要だ。

Transformersコミュニティは、生成長制御の相互作用に関する不具合の修正を提案した。10月1日に公開された報告によると、exponential_decay_length_penalty が最小生成長に達する前に適用されると、終了シーケンストークン(EOS)のスコアがNaNになる可能性がある。10月2日公開のPR一覧には「マスク済みEOSスコアを保持する」提案が掲載されており、現在もオープンの項目として残っている。不具合報告、公開PR一覧
この2つの制御には、それぞれ異なる目的がある。公式ドキュメントによると、min_new_tokens は指定された長さに達するまでEOSのスコアを負の無限大に設定し、モデルが生成を続けるようにする。一方、指数長ペナルティは開始位置以降、EOSのスコアを徐々に引き上げ、出力が自然に終わるよう促す。前者は最小長を制限し、後者は出力を短くする方向に働くため、デプロイ担当者が両方を同時に設定することもある。公式の生成ユーティリティドキュメント
報告者の分析では、問題はマスク済みEOSにも後続の加点処理が適用されることにある。負の無限大に正の無限大を加えるとNaNになる。その結果、本来「一時的に終了を禁止する」はずのスコアが、意図した意味を失う。コミュニティは小規模なGPT-2とT5の構成で再現し、貪欲法とビームサーチでは最小長に達する前に終了し、サンプリングでは無効な値を含む確率テンソルによってエラーが発生することを確認した。再現手順と分析
報告に記載されたローカル修正は、有限のEOSスコアにのみ加点し、既存のマスクを維持するものだ。具体的な修正方針ではあるが、関連するテスト結果は提案者による報告であり、すべてのモデルやデプロイ経路で検証済みとは言えない。また、この提案をリリース済みの修正と見なすこともできない。修正の説明
エンジニアリングチームにとって、この事例は生成パラメータを組み合わせて検証する必要性を示している。上述の仕組みから考えると、ペナルティの開始位置と最小長の前後関係、実際に生成された追加トークン数、各種デコード方式でのエラーを確認すべきだ。今後は提案がマージされるか、どのバージョンに修正が含まれるかを追跡し、自社のモデルとパラメータでテストを再実行して、最小長の制約が実際に守られることを確かめる必要がある。