NVIDIA GPU を使用した Cloud Run での AI 推論アプリケーションの実行
Sagar Randive
Product Manager, Google Cloud Serverless
Wenlei (Frank) He
Senior Staff Software Engineer, Google Cloud Serverless
※この投稿は米国時間 2024 年 8 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。
Cloud Run は、そのシンプルさ、高速な自動スケーリング、ゼロへのスケーリング機能、従量課金の料金設定という特長から、デベロッパーに人気を博しています。これらのメリットは、オープンな生成 AI モデルをサービングするリアルタイムの推論アプリにも活かすことができます。そのため、Google はこのたび NVIDIA L4 GPU のプレビュー版サポートを Cloud Run に追加しました。
これにより、Cloud Run のデベロッパーは、次のような数多くの新しいユースケースに取り組めるようになります。
-
Google の Gemma(2B / 7B)や Meta の Llama 3(8B)などの軽量なオープンモデルを使用してリアルタイムで推論を実行し、カスタム chat bot を構築したりドキュメントの要約を即座に作成したりする一方で、ユーザー トラフィックの急増にスケーリングで対処する。
-
企業ブランドに合わせて画像生成などを行う、ファイン チューニングされたカスタム生成 AI モデルをサービングし、誰も使用していないときはスケールダウンして費用を最適化する。
-
オンデマンドの画像認識、動画のコード変換とストリーミング、3D レンダリングなど、多くのコンピューティング処理を必要とする Cloud Run サービスを高速化する。
フルマネージド プラットフォームである Cloud Run を使用すると、Google のスケーラブルなインフラストラクチャ上で直接コードを実行でき、コンテナの柔軟性とサーバーレスのシンプルさを組み合わせて生産性を向上させることができます。Cloud Run では、フロントエンド サービスとバックエンド サービスの実行、ジョブのバッチ処理、ウェブサイトとアプリケーションのデプロイ、キュー処理ワークロードへの対応が可能です。しかも、基盤となるインフラストラクチャを管理する必要は一切ありません。
同時に、AI 推論を実行する多くのワークロード、特にリアルタイムの処理を要求するアプリケーションは、ユーザーが即座に応答を得られるようにするために GPU アクセラレーションを必要とします。NVIDIA GPU のサポートにより、任意の LLM を使用してオンデマンドかつオンラインの AI 推論を数秒で実行できるようになります。24 GB の vRAM の場合、Llama 3.1(8B)、Mistral(7B)、Gemma 2(9B)など、最大 90 億個のパラメータを含むモデルのトークン処理を高速化できます。アプリが使用されていないときは、サービスが自動的にゼロまでスケールダウンするため、料金は発生しません。
「NVIDIA L4 Tensor GPU と NVIDIA NIM のサポートが追加されたことで、Cloud Run ユーザーは、高速スケーリング可能なリアルタイムの AI 推論プラットフォームを手に入れ、顧客による AI プロジェクトの推進を支援するとともにソリューションの市場投入スピードをアップできます。しかも、インフラストラクチャ管理のオーバーヘッドを最小限に抑えることができます。」- NVIDIA、プロダクト マーケティング担当シニア ディレクター Anne Hecht 氏
以前から Google Cloud のソリューションをご利用のお客様は、Cloud Run と NVIDIA GPU の組み合わせに大きな関心を寄せています。
「Cloud Run での GPU のサポートによって、当社のリアルタイム推論アプリケーションの状況は大きく変わりました。コールド スタート時のレイテンシの短さは驚くべきもので、ほぼ即座に予測をサービングできます。これは、時間が鍵となるカスタマー エクスペリエンスに不可欠です。また、Cloud Run の GPU では、負荷が異なってもサービング時のレイテンシが一貫して最小限になるため、生成 AI アプリケーションの応答性と信頼性を高く保つことができます。さらに、アクティビティのない期間には簡単にゼロまでスケールダウンできます。総合的に言って、Cloud Run での GPU のサポートにより、エンドユーザーに結果を迅速、正確、効率的に提供する能力が大幅に向上しました。」- L’Oreal、グローバル ビューティ テック、AI 担当責任者 Thomas MENARD 氏
「Cloud Run の GPU が、Google Cloud で GPU コンピューティングを利用するための最適な方法であることは間違いありません。私が気に入っているのは、オープンソースの標準(Knative)を使用する場合の高度な制御性とカスタマイズ性に加えて、そのまま使える優れたオブザーバビリティ ツールが提供される点、さらにゼロへのスケーリングが可能なフルマネージド インフラストラクチャである点です。また、Knative プリミティブを使用して簡単に GKE に移行できるため、高度な複雑性とメンテナンスを受け入れて制御性をさらに高めるという選択肢も常にあります。当社のユースケースの場合、GPU の割り当てと起動にかかる時間も、他のほとんどの競合サービスより少なく済みました。」- Chaptr、イノベーション担当ディレクター Alex Bielski 氏
Cloud Run で NVIDIA GPU を使用する
現在、Cloud Run インスタンスあたり 1 個の NVIDIA L4 GPU のアタッチがサポートされています。また、事前に GPU を予約する必要はありません。Cloud Run での GPU は現在、us-central1(アイオワ)で利用可能で、今年末までに europe-west4(オランダ)と asia-southeast1(シンガポール)でも利用可能になる予定です。
NVIDIA GPU を使用して Cloud Run サービスをデプロイするには、コマンドラインで --gpu=1 フラグを追加して GPU の数を指定し、--gpu-type=nvidia-l4 フラグを追加して GPU のタイプを指定します。または、次のように Google Cloud コンソールで同じ処理を行うこともできます。
また、最近発表された Cloud Run functions を使用すると、GPU を関数にアタッチしてイベント ドリブンな AI 推論を簡単に実行できます。
「新たにリリースされた GPU 対応の Cloud Run functions により、Python デベロッパーは、インフラストラクチャ、GPU ドライバ、コンテナなどを気にせずに Hugging Face モデルを使用できます。Cloud Run のゼロへのスケーリングと高速起動の機能は、AI 開発をこれから始めようとしているデベロッパーに最適で、わずか数行のサーバーレス コードで HuggingFace モデルを使用できます。」- Hugging Face、最高技術責任者 Julien Chaumond 氏
パフォーマンス
Cloud Run と NVIDIA GPU を組み合わせると、シンプルなオペレーションだけでなく、高パフォーマンスというメリットも得られます。モデルのサービング時に最高のパフォーマンスを実現できるよう、インフラストラクチャのレイテンシを最小限に抑えることができます。
L4 GPU がアタッチされドライバがプリインストールされた Cloud Run インスタンスは約 5 秒で起動し、コンテナで実行されているプロセスはその時点ですぐに GPU を使用できるようになります。その後、数秒間でフレームワークとモデルが読み込まれ、初期化されます。次の表に、Ollama フレームワークを使用した Gemma 2b、Gemma2 9b、Llama2 7b / 13b、Llama3.1 8b モデルのコールド スタート時間を示します。全体が 11 秒~35 秒の範囲にあります。インスタンスを 0 から起動し、GPU にモデルを読み込み、LLM が最初の単語を返すまでの時間を計測しました。
コールド スタート時間: 最初のサービス URL 呼び出しが行われ、Cloud Run インスタンスが 0 から 1 に移行し、応答として最初の単語を提供するまでにかかった時間。モデル: 前述した各モデルの 4 ビット量子化バージョンを使用。これらのモデルのデプロイには Ollama フレームワークを使用。これらの数値は管理されたラボ環境で観測されたものであり、実際のパフォーマンスの数値は多数の要因に左右される点にご注意ください。
Ollama を使用してサンプルアプリをデプロイする
以下に、Cloud Run と NVIDIA GPU を使用して Ollama で Google の Gemma2 9b モデルをデプロイする方法を示します。Gemma は軽量な最先端のオープンモデルのファミリーであり、Gemini モデルの作成に使用されたものと同じ研究とテクノロジーに基づいて構築されています。Ollama は、大規模言語モデルを管理するためのシンプルな API を提供するフレームワークです。
まず、Ollama でコンテナ イメージを作成し、この Dockerfile でモデルを作成します。
続けて、次のコマンドを使用してデプロイします。
これで完了です。デプロイすると、Ollama API を使用して Gemma 2 との会話を開始できます。
「Ollama を使用した Cloud Run への大規模言語モデルのデプロイは、最新の GPU サポートのおかげで、非常にシンプルです。いくつかのコマンドを実行するだけで、Ollama のアプリへのシームレスな統合と Cloud Run のサーバーレス インフラストラクチャを利用して、LLM のデプロイと管理を簡単に行うことができます。Cloud Run の高速なコールド スタートと迅速なスケーリングにより、信頼性の高い方法でアプリケーションを拡張できます。インフラストラクチャや ML に関する深い知識は必要ありません。自分のアプリケーションに集中していれば、後はツールがすべて処理してくれます。」- Ollama、創設者 Jeffrey Morgan 氏
さらに、Google Cloud Marketplace で提供されている NVIDIA AI Enterprise ソフトウェア スイートに含まれる、NVIDIA NIM 推論マイクロサービスも利用できます。これにより、Cloud Run 上の NVIDIA L4 GPU のパフォーマンスの最大化と高速化を実現し、高パフォーマンスな AI モデル推論を安全かつ確実にデプロイできます。導入について詳しくは、NVIDIA のブログをご覧ください。
使ってみる
Cloud Run は、ウェブ アプリケーションのホスティングを驚くほど簡単にします。そして、GPU がサポートされるようになったことで、サーバーレス、シンプルさ、スケーラビリティというメリットが、AI 推論アプリケーションにも広がりました。Cloud Run での NVIDIA GPU の使用を開始するには、g.co/cloudrun/gpu でプレビュー プログラムにご登録ください。追って、ウェルカム メールをお送りします。
Cloud Run での GPU の使用について詳しく知りたい方は、NVIDIA と Ollama も参加するライブ配信(2024 年 8 月 21 日開催)をぜひご視聴ください。Cloud Run の新機能をご紹介し、さまざまなシナリオでの Cloud Run の使用方法のデモを実施します。