Llama 3.2-1B-Instruct モデルのデプロイで Google Cloud Run GPU を活用する方法
Wei Yih Yap
GenAI Field Solution Architect
Sagar Randive
Product Manager, Google Cloud Serverless
※この投稿は米国時間 2024 年 11 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。
オープンソースの大規模言語モデル(LLM)の人気が高まりつつある中、新しいモデルにアクセスしてしてそのモデルを Cloud Run GPU でデプロイするための優れた手法をデベロッパーが求めています。Cloud Run でフルマネージドの NVIDIA GPU が利用できるようになったのはそのような期待に応えるためであり、これにより、ドライバのインストールやライブラリ構成の複雑さがなくなります。これは、Cloud Run の CPU やメモリの使用時に得られるオンデマンドの可用性や手間いらずの拡張性といった恩恵を、NVIDIA GPU のパワーを活用して同様に実現できることを意味します。アプリケーションがアイドル状態の場合、GPU を備えたインスタンスは自動的にゼロにスケールダウンされるため、費用を最適化できます。
このブログ投稿では、Cloud Run で Meta Llama 3.2 1B Instruction モデルをデプロイする方法を解説します。また、トラブルシューティングの容易化や生産性の向上に役立つ、Text Generation Inference (TGI) Docker イメージを利用したローカルのモデルテストで開発プロセスを合理化するためのベスト プラクティスも紹介します。
GPU を備えた Cloud Run を選ぶ理由
デベロッパーが GPU を備えた Cloud Run にオープンモデルをデプロイすることで得られる重要な利点には、以下の 4 つがあります。
-
フルマネージド: ドライバ、ライブラリ、インフラストラクチャについて心配する必要がありません。
-
オンデマンド スケーリング: オンデマンドで自動的にスケールアップ、スケールダウンされます。
-
優れた費用対効果: 使用した分だけ支払います。アイドル状態の場合はゼロまで自動でスケールダウンされます。
-
パフォーマンス: NVIDIA GPU は Meta Llama 3.2 向けに最適化されています。
最初のセットアップ
-
最初に、Hugging Face トークンを作成します。
-
次に、Llama 3.2 モデルウェイトにアクセスしてダウンロードするための権限が Hugging Face トークンに付与されていることを、こちらから確認します。トークンは、次の手順で使えるようにすぐに確認できる状態にしておきます。
- その次に、Google Cloud の Secret Manager を使用して Hugging Face トークンを安全に保存します。この例では、Google ユーザー認証情報を使用します。gcloud CLI を使用するための認証、デフォルト プロジェクト ID の設定、必要な API の有効化、Secret Manager と Cloud Storage へのアクセス権限付与が必要になる場合があります。
ローカル デバッグ
-
仮想環境に
huggingface_cli
-
huggingface-cli login
を実行して Hugging Face 認証情報を設定します。 - TGI Docker イメージを使用してモデルをローカルでテストします。このようにすることで、ローカルでのモデルの反復処理とデバッグを Cloud Run にデプロイする前に行えます。
Cloud Run へのデプロイ
- NVIDIA L4 GPU を備えた Cloud Run にモデルをデプロイします。(
SERVICE_NAME
の更新を忘れないようにしてください)。
エンドポイントのテスト
-
curl
を使用してデプロイされたモデルをテストします - これにより、Cloud Run サービスにチャット補完のリクエストが送信されるため、デプロイされたモデルとどのようにやり取りが行われるかを確認できます。
Cloud Storage FUSE によるコールド スタートの改善
コールド スタート時、レスポンスを返すまでに 1 分以上の時間がかかっていることに気づくはずです。改善することは可能でしょうか。
Cloud Storage FUSE を使用できます。Cloud Storage FUSE はオープンソース ツールであり、これを使用することで Google Cloud Storage バケットをファイル システムとしてマウントできるようになります。
まず、モデルファイルをダウンロードしてこのファイルを Cloud Storage バケットにアップロードする必要があります。(GCS_BUCKET
の更新を忘れないようにしてください)。
次に、以下のようにデプロイ スクリプトを使用して新しい Cloud Run サービスを作成します(BUCKET_NAME
の更新を忘れないようにしてください)。また、ネットワーク
とサブネット
の名前も変更する必要がある場合があります。
次のステップ
NVIDIA GPU を備えた Cloud Run の詳細や、Hugging Face から独自のオープンソース モデルをデプロイする方法については、以下のリソースをご確認ください。
-GenAI フィールド ソリューション アーキテクト Wei Yih Yap
-Google Cloud サーバーレス担当プロダクト マネージャー Sagar Randive