コンテンツに移動
AI & 機械学習

Vertex AI と PyTorch を使用して、わずか 4 ステップでジェネレーティブ AI モデルをデプロイ

2023年5月22日
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 つのステップを実行します。

  1. カスタムの TorchServe ハンドラを作成する。

  2. Google Cloud Storage(GCS)にモデル アーティファクトをアップロードする。

  3. モデル アーティファクトとビルド済みの PyTorch コンテナ イメージを使用して Vertex AI を作成する。

  4. 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 を使用すると、本番環境でのモデルのトレーニング、デプロイ、オーケストレーションが非常に簡単になることがおわかりいただけるでしょう。また、テキストの分類モデルをデプロイするノートブックもぜひご確認ください。


- ML 担当デベロッパー アドボケイト Erwin Huizenga
投稿先