AMD Instinct MI300 GPU 用 Hugging Face 統合
Hugging Face と AMD は、AMD Instinct MI300 GPU を Hugging Face プラットフォームに統合し、transformers、text-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 の両方で、定期的に数万件のユニットテストを実行しています。このインフラはハードウェア固有のポッドを開発者から抽象化し、transformers と text-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 倍の高速化。
モデルファインチューニングのパフォーマンス
Transformers、PEFT(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 行列乗算を組み合わせ、メモリフットプリントをさらに削減し、パフォーマンスを向上させることが挙げられます。