GitHub Repo
TransformersコミュニティがT5のAttention修正を提案、テンソル配置でSDPAが低速カーネルにフォールバックする可能性
10月12日のTransformersコミュニティの報告によると、T5系列の位置バイアス・テンソルがSDPAによる融合カーネルの使用を妨げ、埋め込み処理の性能低下を招く可能性がある。修正案にはAMDとNVIDIAでのテスト結果が添えられているが、まだマージされておらず、改善幅は実際のワークロードで検証する必要がある。

Hugging Face Transformersコミュニティは10月12日、T5系列で性能が低下したとの報告を提出した。Scaled Dot-Product Attention(SDPA)への切り替え後、位置バイアスのメモリレイアウトによって実行環境がMATHカーネルにフォールバックする可能性があるという。報告者はPyTorch環境を固定してTransformersのコミットを順に調べ、T5のSDPA対応を導入した変更により、Radeon 8060Sで2種類のT5埋め込みモデルを使った短文エンコードの所要時間が約7.4〜7.7%増加したと指摘した。問題報告
原因分析ではcompute_biasが焦点となっている。この関数は次元の並べ替えによって非連続テンソルを作り、位置バイアスをattn_maskとしてSDPAに渡す。報告にある主要な診断結果では、マスクの最終次元のstrideは12で、テストした融合カーネルの要件を満たしていなかった。.contiguous()を追加すると、選択されるカーネルがMATHからEFFICIENT_ATTENTIONに変わった。つまり、問題はモデルの重みではなく、テンソルのレイアウトとカーネルのディスパッチの間にある。診断結果と再現コード
同日に提出された修正案は8つのモデルファイルを変更し、位置バイアスを連続レイアウトで返すようにするものだ。作者のテストによると、半精度、バッチサイズ8、入力長2,048のsentence-t5-baseエンコードでは、Radeon 8060Sの初回平均所要時間が272.67ミリ秒から132.01ミリ秒に、RTX 5090では34.19ミリ秒から16.94ミリ秒に短縮した。一方、生成タスクでの改善は小さく、一部のAttention経路では引き続きMATHが使われる。長い入力のエンコード結果を、あらゆるT5サービスにそのまま当てはめることはできない。修正案とテスト
PyTorchの公式ドキュメントによると、SDPAは入力に応じて実装を自動選択し、各融合カーネルには入力に関する制約がある。カーネルを切り替えると浮動小数点数の結果に差が生じることもある。そのため、エンジニアがアップグレードを評価する際は、設定がSDPAになっていることを確認するだけでなく、実際に使われるカーネル、レイテンシ、出力も確認する必要がある。SDPAドキュメント
確認時点で、提案はまだマージされておらず、メンテナーによるレビューも行われていない。作者が示した生成トークンと埋め込み類似度のチェックは、限定的な互換性を裏付けているが、テスト環境はWindowsと開発版PyTorchだった。今後は正式リリースへの修正の取り込み、Linuxでの再現、入力長やパディング率の違いによる効果を追う必要がある。提案の状況