Vertex AI と PyTorch を使用して、わずか 4 ステップでジェネレーティブ AI モデルをデプロイ
Google Cloud Japan Team
※この投稿は米国時間 2023 年 5 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。
基盤モデルは、膨大なラベルなしデータでトレーニングされ、テキスト、画像、音楽の生成といった下流のジェネレーティブ AI のタスクに使用されており、新しいプロダクトやサービスを生み出す可能性を探る企業にとって、ますますその利用が拡大しています。基盤モデルは、画像生成などのユースケースに使用できます。生成モデルである拡散モデルは、高画質の画像を生成できることから、ここ数年注目を集めています。Stable Diffusion は、テキストから画像への潜在的な拡散モデルであり、CompVis、Stability AI、LAION の研究者により開発されました。
Stable Diffusion のような大規模モデルのデプロイは、困難で時間がかかることがあります。このブログ投稿では、Vertex AI を活用することで、PyTorch Stable Diffusion モデルのデプロイを効率化する方法をご紹介します。PyTorch は、Stable Diffusion v1.5 で Stability AI が使用しているフレームワークです。Vertex AI は、ML の実務担当者が本番環境で ML を高速化およびスケールできるようにするツールとインフラストラクチャを備えたフルマネージドの ML プラットフォームです。PyTorch のようなオープンソースのフレームワークであるというメリットもあります。PyTorch Stable Diffusion モデル(v1.5)は、4 つのステップでデプロイできます。
PyTorch Stable Diffusion モデルを Vertex AI エンドポイントとしてデプロイする
Stable Diffusion モデルを Vertex AI エンドポイントにデプロイするには、次の 4 つのステップを実行します。
カスタムの TorchServe ハンドラを作成する。
Google Cloud Storage(GCS)にモデル アーティファクトをアップロードする。
モデル アーティファクトとビルド済みの PyTorch コンテナ イメージを使用して Vertex AI を作成する。
Vertex AI モデルをエンドポイントにデプロイする。
では、各ステップを詳しく見ていきましょう。ノートブックの例を使用し、ステップに沿って実装することができます。
ステップ 1 - カスタムの TorchServe ハンドラを作成する
TorchServe は、PyTorch モデルを提供するための簡単で柔軟なツールです。Vertex AI にデプロイされたモデルは、TorchServe を使用してリクエストを処理し、モデルからレスポンスを返します。カスタムの TorchServe ハンドラを作成して、Vertex AI にアップロードされるモデル アーティファクトに含める必要があります。ハンドラ ファイルは、他のモデル アーティファクトが存在するディレクトリに含めるようにします(例: model_artifacts/handler.py)。
ハンドラ ファイルを作成した後、ハンドラをモデル アーカイブ(MAR)ファイルとしてパッケージ化する必要があります。出力ファイルの名前は、model.mar でなければなりません。
ステップ 2 - Google Cloud Storage(GCS)にモデル アーティファクトをアップロードする
次のステップでは、モデルファイルやハンドラなどのモデル アーティファクトを GCS にアップロードします。アーティファクトを GCS に保存するメリットとして、一元的なバケットでアーティファクトを追跡できることが挙げられます。
ステップ 3 - Vertex AI モデルを作成する
モデル アーティファクトを GCS バケットにアップロードしたら、PyTorch モデルを Vertex AI Model Registry にアップロードできます。Vertex AI Model Registry ではモデルの概要を確認できるため、新しいバージョンの整理、追跡、トレーニングの向上が実現します。これについては、Vertex AI SDK とビルド済みの PyTorch コンテナを使用します。
ステップ 4 - モデルをエンドポイントにデプロイする
モデルが Vertex AI Model Registry にアップロードされたら、それを取得して Vertex AI エンドポイントにデプロイできます。これを行うには、コンソールまたは Vertex AI SDK を使用します。この例では、モデルを NVIDIA Tesla P100 GPU と n1-standard-8 マシンにデプロイします。マシンタイプは指定することができます。
ノートブックに沿って操作する場合は、Vertex AI SDK を使用してオンライン予測を取得することもできます。
次のステップ
Vertex AI での PyTorch について詳しくは、こちらのドキュメントをご覧ください。Vertex AI の PyTorch 統合に関する説明と、Vertex AI での PyTorch の使用方法に関するリソースが記載されています。PyTorch と Vertex AI を使用すると、本番環境でのモデルのトレーニング、デプロイ、オーケストレーションが非常に簡単になることがおわかりいただけるでしょう。また、テキストの分類モデルをデプロイするノートブックもぜひご確認ください。