Intel Gaudi 2 AIアクセラレータ上のテキスト生成パイプライン
Hugging Face は、Intel Gaudi 2 AIアクセラレータ向けにカスタムテキスト生成パイプラインをリリースしました。これにより、開発者は最小限のコードで Llama 2 モデル(7b、13b、70b)を実行できます。このパイプラインは、前処理と後処理を含むエンドツーエンドのテキスト生成を処理することで、高い抽象化レベルを提供します。
高レベルパイプライン機能
GaudiTextGenerationPipeline は、単一または複数のプロンプトからテキストを生成する柔軟なインターフェースを提供します。主に以下の 3 つの方法でさまざまなワークフローに統合できるよう設計されています。
- スタンドアロンスクリプト: Optimum Habana リポジトリに含まれる
run_pipeline.pyスクリプトを使用。 - カスタム Python 統合: パイプラインクラスを直接 Python スクリプトにインポートしてプログラム制御。
- フレームワーク統合: パイプラインを使用して LangChain クラスを初期化し、複雑な LLM オーケストレーションを実現。
技術実装と要件
ハードウェアおよびソフトウェアの前提条件
パイプラインを利用するには、Meta と Hugging Face が提供するゲート付き Llama 2 モデルへのアクセス権と、以下のソフトウェア環境が必要です。
- Optimum Habana: バージョン 1.10.4。
- DeepSpeed: 分散推論に必須(例: Llama-2-70b)。バージョンは SynapseAI のバージョンと合わせる必要があります(例: SynapseAI 1.14.0 に対して DeepSpeed 1.14.0)。
- 認証:
huggingface-cli loginを使用してゲート付きモデルをダウンロードするために、Hugging Face のアクセストークンが必要です。
実行と設定
パイプラインは、パフォーマンス最適化フラグや生成パラメータを多数サポートしています。
- パフォーマンス最適化: 推論効率を向上させるために
--use_hpu_graphsと--use_kv_cacheを有効化できます。 - 生成制御:
--do_sample、--temperature、--top_pなどの標準的なサンプリングパラメータをサポート。 - 分散推論: Llama-2-70b のような大規模モデルの場合、
gaudi_spawn.pyを--use_deepspeedフラグと指定した--world_size(例: 8)で起動します。
LangChain 互換性
テキスト生成パイプラインは LangChain と互換性があり、LLM バックエンドとして使用できます。GaudiTextGenerationPipeline のコンストラクタ引数 use_with_langchain=True を設定することで、パイプラインを LangChain の HuggingFacePipeline クラスに渡すことが可能です。
パイプラインクラスは特に LangChain バージョン 0.0.191 向けに検証されており、他のバージョンでは動作しない可能性があります。
モデルサポートの概要
| モデル | デプロイ方法 | 主な要件 |
|---|---|---|
| Llama-2-7b | 単一 HPU / run_pipeline.py |
Optimum Habana 1.10.4 |
| Llama-2-13b | 単一 HPU / run_pipeline.py |
Optimum Habana 1.10.4 |
| Llama-2-70b | 分散 / gaudi_spawn.py |
DeepSpeed + Optimum Habana 1.10.4 |