推論系統
Anthropic、生物学向けモデルの高速化パッケージ36種を公開 数値的一致性を実行モードに組み込む
Claudeの支援で開発した36種のパッケージが、共有GPUカーネルで生物学向けモデルを高速化し、メモリ使用量を削減する。公式には出力が完全に一致するモードと近似による高速化を区別しているが、公開版の継続的な保守は約束していない。

Anthropicは9月17日、Claudeの支援で開発した、生物学向けモデルの推論を最適化する36種のパッケージを公開した。対象は構造予測、タンパク質設計、ゲノムモデルに及ぶ。公式発表によると、構造予測のテストでは、わずかな数値差を許容する場合に平均約4倍、出力の完全一致を求める場合には約1.6倍の高速化を達成した。この2つの数値は、条件を区別して見る必要がある。[研究発表](https://www.anthropic.com/research/claude-uplifts-biomolecular-modeling)
技術の中核となるのはFlashPairformerで、分子構造モデルが繰り返し使う三角アテンションと三角乗算に対応したGPUカーネルを提供する。共有実行層はデバイス、データ型、テンソル形状に応じて実装を選択し、インターフェースを通じてPyTorch、JAX、各種カーネルバックエンドを接続する。これにより、複数のモデルで最適化の成果を再利用できる。[共有カーネルのドキュメント](https://raw.githubusercontent.com/anthropics/uplifting-biomolecular-modeling/main/common/opt_core/README.md)
パッケージの動作は4つのモードに分かれる。`off`は特定バージョンに固定したアップストリームのコードを実行し、`exact`は同一の出力を目指す。`fast`は文書化された数値差を許容し、`big`はGPUメモリ使用量の削減を優先する。研究者は許容する誤差を先に決め、そのうえで性能向上の方法を選べる。ただし、実際に利用できるモードはモデルごとに異なる。[プロジェクト概要](https://github.com/anthropics/uplifting-biomolecular-modeling)
Boltz-2を例に取ると、`exact`ではCUDA Graphと、ループ内で変化しない計算をループ外に移す処理を使い、`fast`ではさらに低精度の三角演算を導入する。`big`では処理をチャンクに分割し、ペア表現を行単位で同一ホスト上の複数のGPUに分散させることもできる。ただし、ドキュメントによると、呼び出しごとに起動、重みの読み込み、特徴量処理に約25秒を要するため、小さな入力ではエンドツーエンドの高速化効果が小さくなる。また、A100では一部の入力長でビット単位の一致を維持できず、`exact`は有効化できなかったことを報告してエラーコードで終了する。[Boltz-2のドキュメント](https://raw.githubusercontent.com/anthropics/uplifting-biomolecular-modeling/main/boltz2/README.md)
再現のための手順も公開内容に含まれている。各パッケージはアップストリームのバージョン、依存パッケージ、重みのハッシュ値を明記し、コンテナまたは仮想環境を使う方法を提供する。実行前にモードを有効化できるか確認でき、ログには実際に適用された最適化が記録される。これらの情報は、モデルの違い、実行環境の違い、高速化カーネルの不具合を切り分け、単一の実行時間だけを比較することによる誤判断を減らすのに役立つ。[再現手順と実行記録](https://github.com/anthropics/uplifting-biomolecular-modeling)
導入上の制約も具体的だ。これはアップストリームのバージョンを固定した参照用リリースであり、Anthropicは継続的に更新する予定がなく、プルリクエストも受け付けないと明言している。独自に作成したコードにはApache 2.0を適用し、アップストリームのコードにはそれぞれのライセンスが引き続き適用される。研究チームがすぐに活用できるのは、検証可能なカーネルとモード切り替えの仕組みだ。その後は自分たちのデータでコールドスタート、定常状態での推論、ピークメモリ使用量、結果の誤差をそれぞれ測定し、アップストリームの更新後も互換性が保たれるか確認する必要がある。[バージョンと保守に関する説明](https://github.com/anthropics/uplifting-biomolecular-modeling)