Vertex AI Model Gardenで利用可能なモデルと各モデルで実行可能な操作を分類する
データアナリティクス事業本部 インテグレーション部 機械学習チームの貞松です。
この記事は、ブログリレー『Google CloudのAI/MLとかなんとか』の9本目の記事になります。
3行まとめ
- Vertex AI Model Gardenとは、Google Cloudおよびサードパーティによる既存学習モデルをユーザーが容易に活用できるようにしたサービス
- 画像やテキストの生成AIモデルだけでなく、従来の画像処理(分類、物体検出)やテキスト分析(分類、感情分析)などのモデルも用意されている
- モデルの活用パターンとして、エンドポイントへのワンタッチデプロイ、Jupyter Notebookからの操作によるファインチューニング、Vertex AI Studioのプロンプトで実行などが用意されている
Model Gardenの概要
Model Gardenは既存の学習済みモデルを一箇所に集約し、検索やデプロイ、ファインチューニング等の操作を簡単に利用できる形にまとめたサービスです。
公式のサービスページは以下参照
公式ドキュメントは以下参照
Model Gardenで利用可能なモデル
Vertex AIのコンソール画面からModel Gardenの画面を開くと、カード形式で多数のモデルが一覧で表示されます。
直近で発表されたGoogle謹製のGeminiやPaLM 2だけでなく、Meta社のLlama 2やStable Diffusionといったサードパーティの基盤モデルも利用することができます。
また、基盤モデルだけでなく、画像分類モデルのResNetや物体検出モデルのYOLOなど、ファインチューニングを実行して個別の課題に適用可能なモデルも多数用意されています。
利用可能なモデルの一覧
Model Gardenから利用可能なモデルは下記の公式ドキュメントをご参照ください。
モデルの絞り込み・検索
コンソールの画面やドキュメントをパッと一覧しただけだと、どういったモデルが用意されているのか、自分が解決したい課題に適用できそうなモデルはどれか、ということがわからないと思いますので、まずはカード一覧の左にあるカテゴリから絞り込みを行うことをオススメします。もちろん使用したいモデルの名称がハッキリしている場合は、カード一覧の上部にある検索フォームから検索すると良いかと思います。
Modalities
Modalitiesはモデルが対象とするデータソースの種類ごとにカテゴライズしたものです。
各モデルにLanguage(言語モデル)やVision(画像モデル)、Tabular(テーブルデータ)といったタグ付けがされているので、必要に応じてタグ名をクリックしてモデルを絞り込みます。
Tasks
Taskはその名の通り、対象となるタスクの種類ごとにカテゴライズしたものです。
各モデルにGeneration(生成モデル)やClassification(分類モデル)、Detection(検知・検出モデル)といったタグ付けがされています。
前述のModalitiesと組み合わせて、「言語モデルかつ生成モデル」のような絞り込みも可能です。
Features
Featuresは、各モデルを使って、Vertex AI上でどういった操作を行うことができるかについてカテゴライズしたものです。
- Vertex AI Studio
- 旧Generative AI Studioという名称のサービスです。
- Vertex AI上に用意された各種生成AI用のPlaygroundを使用して、簡単に生成AIモデルの機能を試すことができます。
- API available
- Google CloudのAI/ML系のAPIサービスとして提供されている機能です。
- Notebook support
- Colab Enterprise上で実行されるNotebookのサンプルが用意されています。
- Notebook上での処理により以下のような操作を実行することができます。
- モデルをリアルタイムエンドポイントにデプロイする(APIエンドポイント化する)
- Vertex AI Pipelinesのパイプラインを作成して、機械学習パイプラインを構築、実行する
- モデルをファインチューニングして、チューニング後のモデルによる推論や生成を実行する。
- Open sourece
- オープンソースとして提供されているモデルです。
- Pipeline support
- Vertex AI Pipelinesを用いたファインチューニング用パイプラインサンプルが提供されているモデルです。
- One-click deployment
- 実際にはワンクリック…とはいきませんが、多少の設定項目を入力、選択してDEPLOYボタンを押すだけで簡単にモデルをリアルタイムエンドポイントにデプロイ(APIエンドポイント化)できます。
Model Gardenで実行可能な操作
エンドポイントにOne-clickデプロイする
Foundation Modelの一覧から、Llama 2を選択します。
「DEPLOY」ボタンをクリックします。
モデル名やエンドポイント名を入力し、リージョンを選択して「DEPLOY」ボタンをクリックします。
Vertex AIのOnline Predictionでリアルタイムエンドポイントとしてデプロイされていることが確認できるので、Curl等なにかしらの手段でAPIアクセスしてLlama 2モデルによる推論結果を取得できるようになります。
Vertex AI Studioのプロンプトからモデルの実行
Foundation Modelの一覧から、最新のGemini Pro(プレビュー)を選択します。
「OPEN LANGUAGE STUDIO」をクリックします。
Vertex AI StudioのLanguage Studio画面が開くので、以降はこの画面に従ってGemini Proモデルを用いたテキスト生成(チャットボット)をお試しできます。
Vertex AI Studioを開いて以降の具体的な操作については、下記の各記事をご参照ください。
(旧Generative AI Studio時の記事もありますが、そこまで大きく変わりは無いです)
Jupyter Notebookサンプルを使用してファインチューニングを実行する
Fine-tunable modelsの一覧からYOLOv8(Keras)を選択します。
「OPEN NOTEBOOK」をクリックします。
Vertex AIコンソールにあるColab Enterprise画面が起動し、対象のサンプルノートブックが開きます。
YOLOv8は物体検出のモデルなので、今回はサンプルノートブックの記述に従って、以下のような画像データセットでファインチューニングしてリポビタンDを検出するモデルを作成してみます。
ファインチューニング前のモデルで検出を実行すると以下の結果になります。チラホラ何かしらのボトル(Bottle)として検出された領域が確認できます。
以下、ファインチューニング後のモデルで検出を実行した結果です。1本検出できていませんが、2本のリポビタンDを「lipod」ラベルで検出できていることが確認できます。
おわりに
今回はVertex AI Model Gardenで利用可能なモデルやそれらを使って実際に何ができるのかについて整理しました。
既存モデルを簡単に利用できてなんか便利そうだけど、結局使えるのかどうかよくわからない、という方の手がかりになれば幸いです。