GitHub Repo
Transformers、Processorの引数上書き問題を確認 テンプレート引数の混在で入力の切り詰めが無効に
10月20日のTransformersの報告によると、テンプレートで使われない引数を追加すると、明示的に設定した入力長の上限が無効になる可能性があります。プロジェクトメンバーは問題を確認しましたが、引数のマージ時の優先順位は議論中で、正式な修正版はまだ確認できていません。

Hugging Face Transformersで10月20日、マルチモーダル前処理に影響するバグが報告されました。ProcessorMixin.apply_chat_template()の呼び出し時に、processor_kwargsとテンプレートで参照されない追加引数を同時に渡すと、指定済みの切り詰め設定が上書きされる可能性があります。報告された環境には、安定版の5.20.2と、メインブランチの5.21.0.dev0が含まれています。プロジェクトメンバーのzucchini-nlpは、問題を確認しました。問題報告とメンテナーの議論
再現コードでは、Qwen2-VL-2B-InstructのProcessorを読み込み、processor_kwargsにmax_length=5とtruncation=Trueを設定して、トークナイズを有効にしています。最初の実行では出力長が5でしたが、2回目にenable_thinking=Falseを追加したところ、長さは20になりました。報告によると、このモデルのテンプレートはこの引数を使っていませんが、コードは引数をProcessor用と判断して既存の辞書を置き換え、その結果、長さと切り詰めの設定も無視されます。再現コード
このインターフェースは、モデルへの入力を準備する段階で使われます。公式ドキュメントでは、マルチモーダルProcessorがチャットテンプレート、テキストのトークナイズ、メディアの前処理を担い、その結果をモデル生成に渡すと説明されています。APIにはprocessor_kwargsがあり、truncationとmax_lengthはテキスト処理のオプションとして定義されています。そのため、エンジニアは生成側の出力上限だけでなく、前処理後の実際の入力長も検証する必要があります。マルチモーダル処理のドキュメント、Processor API
この仕組みから推測すると、モデル間でテンプレート引数を共用する学習・推論用ラッパーでは、モデルを切り替えた際に入力長が意図せず増え、バッチ処理のメモリ需要やデータの切り詰めの一貫性に影響する可能性があります。ただし、現在の例はテキストメッセージのみを使っているため、すべての視覚モデルやメディア関連の引数に影響するとまでは判断できません。
メンテナーの議論では、従来の追加引数との互換性と、2種類の引数が衝突した場合の優先順位が修正方針に影響するとされています。エンジニアは、実際に使うモデルで追加のテンプレート引数を加える前後のinput_idsの長さを比較し、今後のマージ規則と安定版のリリースを追うことができます。現時点では、問題が確認されたことを、展開可能な修正がすでにあるという意味に解釈すべきではありません。修正方針の議論