AMD Instinct MI300 GPU 用 Hugging Face 統合

Hugging Face と AMD は、AMD Instinct MI300 GPU を Hugging Face プラットフォームに統合し、transformerstext-generation-inference(TGI)およびその他のコアライブラリ全体でシームレスなサポートを提供しています。この統合により、ユーザーはコードの変更なしで、Azure ND MI300x V5 VM を含む AMD MI300 ハードウェア上にモデルをデプロイできるようになりました。

オープンソースと本番環境の有効化

長期的な安定性と正確性を確保するため、Hugging Face は MI300 シリーズ向けに堅牢な CI/CD パイプラインを実装しました。

CI/CD インフラストラクチャ

Azure ND MI300x V5 VM とマネージド Kubernetes クラスタを活用することで、Hugging Face は MI300 と前世代の MI250 GPU の両方で、定期的に数万件のユニットテストを実行しています。このインフラはハードウェア固有のポッドを開発者から抽象化し、transformerstext-generation-inference がさまざまな AMD ハードウェアプラットフォーム間で互換性と高性能を保てるようにしています。

本番 AI ワークロードのパフォーマンス

統合作業は TGI のモデリング層に焦点を当て、Meta Llama ファミリーなどのモデルが MI300 ハードウェア上で最適に実行されるようにしました。

推論パフォーマンス

最適化作業には Flash Attention v2、Paged Attention、GPTQ/AWQ 圧縮技術、そして最適化された融合カーネルの統合が含まれます。

TunableOp の役割

PyTorch 2.3 から、Hugging Face は AMD TunableOp を統合しました。これは形状やデータ型に基づいて汎用行列乗算(GEMM)を最も効率的に実行する方法を特定する仕組みです。TGI のウォームアップフェーズで、TunableOp はユーザー固有のシーケンス長とバッチサイズに最適な設定を見つけ出し、サーバーの稼働中はそれらのルーチンを固定します。その結果、自己回帰デコードフェーズにおける小さな入力シーケンスのレイテンシが 8〜10% 向上します。

ベンチマーク: MI300 vs. MI250

Azure ND MI300x V5 上で Meta Llama 3 70B を使用したところ、MI300X は MI250 に比べて大幅な向上を示しました。

  • Time to First Token (Prefill): 2〜3 倍の高速化。
  • Autoregressive Decoding Latency: 2 倍の高速化。

モデルファインチューニングのパフォーマンス

TransformersPEFT(LoRA 使用)、および Accelerate ライブラリ経由の DeepSpeed Zero3 を用いて Llama 3 70B のファインチューニングをテストしました。

  • Training Speed: Azure VM(MI300X 搭載)では、MI250 HPC サーバーに比べてトレーニング速度が約 2 倍です。
  • Memory Capacity: MI300X の 192 GB HBM3 メモリにより、Meta Llama 3 70B(float16/bfloat16 で約 140 GB)を単一デバイスでフルロードおよびファインチューニングでき、128 GB の MI250 では不可能です。

今後のロードマップ

Hugging Face は現在、"minifloat"(float8 及びそれ以下)サポートに投資しています。これにより、LLM 推論時のキー・バリューキャッシュのサイズが半減すると期待されています。将来的な目標として、float8 で保存されたキー・バリューキャッシュと float8/float8 行列乗算を組み合わせ、メモリフットプリントをさらに削減し、パフォーマンスを向上させることが挙げられます。

Sources