🤖

【初学者向け】Vertex AI の使い方と機能の紹介

2024/09/30に公開

はじめに

クラウドエースの SRE 部に所属している安田です。 この記事では Google Cloud が提供するフルマネージドの機械学習プラットフォームである Vertex AI についてご紹介します。
私は、以前から AI に興味があり、機械学習や AI 機能に触れてみたいと思っていましたが、専門的な知識や技術が必要でハードルが高くチャレンジできずにいました。そこで、学習済みモデルを手軽に利用できるマネージドサービスの Vertex AI に注目し、使い方を学んでみることにしました。
本記事では、私が学んだ Vertex AI の基本的な機能や使い方、参考になる記事について紹介していきます。これから機械学習を学び始める方や、Google Cloud のサービスを初めて使うという方にとって、役立つ情報を提供できればと思いますので、最後までお読みいただけると幸いです。

対象読者

  • これから Vertex AI を学ぶ方
  • Google Cloud の機械学習サービスに興味がある方
  • プログラミングやデータ分析の経験が浅いが、AI や機械学習に興味がある方

扱わない内容

  • 料金について
  • 機械学習用のソースコードやアルゴリズムの実装について
  • 他の機械学習プラットフォームとの比較

機械学習について

まずは、AI の基礎となる、機械学習の流れについて紹介します。機械学習モデルの作成プロセスには、いくつかのステップが必要です。最初に、学習に必要なデータを収集し、そのデータに欠損値補完や異常値除去などの前処理を行い、モデルに適した形に整えます。

欠損値補完と異常値除去

欠損値補完とは、欠けているデータを平均値や前後の値などで補う処理のことであり、異常値除去はデータの中で極端に外れた値を検出し、削除や修正を行うことです。

次に、前処理が完了したデータを使用して、目的に適したアルゴリズムを選び、モデルを学習させます。学習後は、学習に使用していないデータを使ってモデルの性能を評価し、精度や再現率などの指標を基に調整を行います。
モデルが期待通りの性能を発揮するようになったら、実際のシステムやアプリケーションにデプロイし、エンドユーザーが利用できるようにします。しかし、モデルに学習をさせた後も、時間の経過によりモデルの予測が正確ではなくなる可能性があるため、定期的に結果を確認し、必要に応じて再学習やモデルの再構築を行います。
このように、データの収集・前処理からモデルの学習・評価、デプロイ、そして継続的なモニタリングまで、機械学習モデルの作成には様々なステップが存在し、各ステップにおいて専門的な知識が必要です。

Vertex AI とは

紹介したように機械学習モデルの作成では、データの処理からモデルのトレーニング、デプロイまで様々なステップがあり、高度な技術と専門知識が必要になります。Vertex AI では、このような煩雑なプロセスを効率化することができます。

各プロセスで様々なソフトウェアを用いる場合、データの互換性やツール間の連携に課題がありましたが、Vertex AI を使用することで、データの取り込みから分析、実装までのすべてのステップを一貫して行うことが可能です。 
この統合プラットフォームである Vertex AI を活用することで、複雑な機械学習プロジェクトをより迅速かつ効果的に進めることが可能になります。

Google Cloud の他機能との統合

Vertex AI は Google Cloud のデータ管理やデータ分析が可能な機能との連携に優れており、他のツールとシームレスに連携することで、機械学習のワークフローを効率的に進めることができます。例えば、データ分析ツールである BigQuery や、大量のデータを保存できる Cloud Storage と連携することで、データの保存や取り込みから、機械学習モデルの構築、トレーニング、デプロイ、さらに大規模なモデルの管理までを一貫して Google Cloud で実行できるようになります。

Vertex AI Studio

Vertex AI 内で様々な生成 AI のテスト、チューニング、デプロイが可能な機能について紹介します。
Vertex AI Studio は、学習済みの AI が用意されており、自然言語処理や画像認識、音声分析といった多様な高性能 AI をすぐに活用でき、素早く業務に取り込むことが可能です。また、学習済みモデルをチューニングすることでユーザーの目的に応じて追加でデータをアップロードし、さらに学習させることもできます。ここからは、Vertex AI Studio のさまざまな機能について紹介していきます。

自由形式

自由形式では、ユーザーがテキストや画像、動画などをプロンプトとして入力・挿入し、それに基づいて AI モデルが質問に答えたり、説明を行ったりすることができます。

このように Prompt に質問など出力してほしいことを入力すれば、Response として回答が出力されます。また、パラメータを調整することで、出力の形式や内容を柔軟にカスタマイズできます。例えば、回答の詳細さや応答の長さなどを変更することで、目的に応じた結果を得ることが可能です。パラメータによる変化について紹介します。

1. システム指示

システム指示では、モデルがどのように回答すべきかを指示できます。
例えば、「あなたは、家庭で料理を作る際のアシスタントです。材料のリストを受け取って、それらの材料を使用するレシピのリストを返します。」このような設定をして、Prompt で材料を入力するとそれらの材料を使用するようなレシピのリストを出力します。
詳細はこちらをご覧ください。

2. Temperature

Temperature は、モデルがレスポンスを生成する際のランダム性を制御するパラメータです。

temperature が低い場合

比較的正確な答えが返ってきますが、新しいアイデアや創造的な答えが得られにくく、毎回同じ答えが返ってくる可能性があります。

temperature が高い場合

新しいアイデアや創造的な答えが得られますが、ランダム性が高いため、意味不明なレスポンスが返ってくることがあります。

3. 出力トークンの上限

ここでは 1 つのプロンプトに対する Response のトークンの上限が設定できます。

トークンは、モデルがテキストを理解・生成するために分割する基本的な単位です。トークン 1 つは必ずしも 1 文字や 1 単語に対応するわけではありません。例えば「こんにちは」は 1 つのトークンとして扱われる場合もあれば、単語の組み合わせである「AI 技術」というテキストは 2 つのトークンとして扱われることもあります。つまり、出力トークンの上限の設定により、出力されるテキスト数の最大量が決まります。 Vertex AI においては、トークンは平均して約 4 文字に相当します。

使用例

ここでは、画像や動画を挿入した場合の結果について紹介していきます。

画像の分析

Prompt に画像を挿入することで、画像の分析をすることができます。

実際に先ほどワークフローの説明で使用した画像を挿入して、画像を説明するように指示すると、Response に画像の説明が出力されました。 他にも画像内のテキスト抽出や、人物の顔が写っている場合、その表情を解析して感情を識別する機能もあります。

動画の分析

画像の分析と同様に 7MB までのファイルであれば動画も挿入ができ、解析が可能です。

実際に家の猫を撮影した動画を挿入し、その動画について説明するようなテキストを入力したところ、撮影場所が 2 階であることや、猫が歩いていることなどを正確に出力しました。

分析で使用した動画のスクリーンショット

チャット

チャット機能は、言語モデルと対話形式でコミュニケーションを取るための機能です。 自由形式とは異なり、以前のチャットの内容などに基づいて回答を出力します。

このように対話形式で質問ができ、2 つ目の質問では特にどのチュートリアルかを指定しなくても Vertex AI のチュートリアルだと認識して回答を出力しました。

Vision

Vision 機能では、テキストを送信して画像を生成したり、画像の背景を変更することができます。

翻訳

翻訳機能は、テキストを異なる言語に翻訳するための機能です。 自由形式やチャットでも翻訳はできますが、翻訳では専用の翻訳モデルが使用でき、翻訳の精度が高く、適切な文章を提供できます。

Vertex AI の公式ドキュメントを翻訳してみました。より良い結果を得るために例をアップロードすることもできます。
カスタム翻訳の概要については、こちらの Google 公式ドキュメントをご覧ください。

音声

音声機能では、音声認識やテキスト読み上げをすることができます。音声データのアップロードやその場での録音によって、音声からのテキスト変換が可能です。また、テキストから音声合成も行えます。

実際に「吾輩は猫である」の内容を読んだものを録音し、テキストに変換してみたところ、ほぼ正確に変換できました。一部、漢字の変換ミスがありましたが、全体として高い精度を発揮していました。
現時点のテキスト読み上げは、英語とスペイン語にのみ対応しており、今後さらに多くの言語への対応が期待されています。

プロンプトギャラリー

プロンプトギャラリーでは事前に準備されたプロンプトが利用できます。特定のタスクに使用でき、ユーザーは簡単に選択し使用できます。

タスクや機能、検索バーなど、簡単に使用したいプロンプトを検索できます。実際にあるプロンプトの例を紹介します。

  • 挿入された動画について広告のような紹介文を作成するプロンプト
  • 音声録音の内容を要約するプロンプト
  • カスタマーレビューを要約し、どんな感情かを分類するプロンプト

このようなプロンプトは簡単に利用でき、特定の業務にすぐに活用することも可能です。

保存済みのプロンプト

この機能では、ユーザーが以前に作成したプロンプトを保存し、再利用することができます。

チャットなどのプロンプトは保存することで、会話の続きから質問することができます。複数のプロンプトを管理し、さまざまなタスクに切り替えて使用することができます。

チューニング

チューニング機能は、モデルの性能を最適化するための重要なツールです。チューニングとは、機械学習モデルの性能をパラメーターや設定で調整するプロセスを指し、このプロセスには専門的な知識と技術が必要になります。チューニングの詳細な方法については、以下に記載した弊社の検証記事をご覧ください。
https://zenn.dev/cloud_ace/articles/a88d8fef2945a2

トレーニング方法

Vertex AI では、学習済みのモデルを活用したり、さらにモデルを学習させることが可能です。また、一からモデルを作成することもできます。これにより、目的に合ったモデルを利用することができます。
ここからは、モデル作成の方法として、 AutoML を利用する方法と、カスタムトレーニングを利用する方法の特徴について紹介します。

AutoML

AutoML は、機械学習モデルの反復的な学習を自動化する仕組みです。煩雑なプロセスを経るモデル作成には、高度な技術と専門知識が求められ、データの処理からモデルの学習、モデルの評価は手作業で行うため、予測精度は、基本的にモデル開発者の手に委ねられることになります。

AutoML では、データの前処理からモデル学習・評価までが自動化され、トレーニング用のデータを Google Cloud にアップロードするだけでモデルを作成することが可能です。これにより機械学習を扱えるエンジニアがいなくても簡単にモデル作成をすることができます。
AutoML では簡単にモデルを作成できますが、目的のモデルが作成できない場合や、工程やパラメーターを細かく管理したい場合があります。その場合はカスタムトレーニングにより、モデルを作成することができます。

カスタムトレーニング

カスタムトレーニングは、AutoML の自動化されたプロセスとは対照的に、機械学習モデルの各工程を高度にカスタマイズし、より細かい管理が可能です。これにより、データ処理、モデル学習、パラメーターの設定など、専門的な技術が必要になりますが、AutoML よりも目的に合ったモデルを作成することができます。
作成には、モデルのトレーニングを実行するコードが必要になります。他にもハイパーパラメーターやトレーニングパイプラインの設定が必要になるため、専門的な知識が必須になります。

比較

項目 Auto ML トレーニング カスタムトレーニング
トレーニングの方法 必要なデータをアップロードするだけで自動で最適なモデルをトレーニング 自分で定義したモデルやアルゴリズムを使用してトレーニングを行う
コードの必要性 ノーコードで実施可能 コードが必要
必要な知識レベル
柔軟性 決まった範囲内で自動化された選択肢から選ぶ 特定のニーズや要件に合わせて柔軟にカスタマイズ可能
利用対象者 初心者や専門的的知識が少ない人、簡単にモデルを開発したい人 専門的な知識を持っている人、特定の要件にあったモデルが必要な人
時間効率 短時間でモデルが完成 要件により異なるが、一般的に時間がかかる
結果の精度 一般的に良好だが、特定のケースでは最適でない場合もある 特定の要件に最適化された結果が得られる

その他機能の紹介

ここからは、Vertex AI が提供するモデル作成の効率化機能、さまざまな学習モデルの提供機能、そしてモデル作成ワークフローの管理機能について紹介します。

Colab Enterprise

Colab は Colaboratory の略称で、Google が提供するノートブック環境です。ノートブック環境というのは、プログラミングコード、テキスト、画像、グラフなどをまとめて扱うことができる開発環境のことを指します。そして、この Colab Enterprise は先ほど説明した Colaboratory を企業向け(Enterprise)に拡張したバージョンです。 特徴として Google Cloud の IAM による権限管理が細かく行えること、Vertex AI や BigQuery とのスムーズな統合、高度のセキュリティ機能などがあります。

Colab Enterprise について詳しく書かれた記事がありますので、こちらも併せてご覧ください。
https://zenn.dev/cloud_ace/articles/1085659bb87dfe

Model Garden

Model Garden は、Google が提供する機械学習モデルのライブラリです。このライブラリには、事前にトレーニングされた高品質なモデルや、それらを活用するためのサンプルコードが豊富に揃っています。これにより、ユーザーは自分のプロジェクトに適したモデルを簡単に見つけて、利用できます。検索タブには、モダリティ、タスク、Providers、特徴があり、要件に合わせたモデルの検索が直感的にできます。

モデルの種類

Model Garden では学習モデルが基盤モデル、ファインチューニング可能なモデル、タスク固有のソリューションの三つに分類されます。それぞれの違いを紹介します。

分類 概要 使用例
基盤モデル 大規模データで事前ト学習された汎用的なモデル。多様なタスクに対応可能 画像認識や自然言語処理など、幅広い分野での初期モデルとして使用
ファインチューニング可能なモデル 特定のタスクに向けてさらにトレーニング可能なモデル 特定の産業向けカスタマイズモデルや、特定業務に向けた高度なモデルの作成に使用
タスク固有のソリューション 特定の仕事や問題を解決するために、すぐに使えるモデル カスタマーサポートのチャットボット、画像分類、音声認識、など特定の仕事向け

このように状況や目的に応じて、最適なモデルを選択できるよう分類されています。
検索タブに関する詳しい説明は、こちらの記事をご覧ください。
https://zenn.dev/cloud_ace/articles/411f4fd7359094

パイプライン

Vertex AI のパイプラインは、機械学習ワークフローの構築、管理、運用を自動化するための機能です。パイプラインは、ML モデルのトレーニングからデプロイ、さらにはモデルのモニタリングや再トレーニングまで複数のステップを連携させたワークフローを定義し、それを効率的に実行します。詳しい使い方については以下の記事をご覧ください。
https://zenn.dev/cloud_ace/articles/mlops-bigframes-vertex-ai-pipelines

まとめ

この記事では、Google Cloud が提供するフルマネージドの機械学習プラットフォーム Vertex AI について、その基本的な機能や使い方を紹介しました。
Vertex AI は、複雑な機械学習プロジェクトを効率化し、データの取り込みからモデルのトレーニング、デプロイまでを可能にするプラットフォームを提供しています。AutoML を利用することで、専門的な知識がなくてもモデルが作成ができるだけではなく、Vertex AI Studio で様々な生成 AI を活用することも可能です。
今後もさらに学び、実際の業務で活用できる知識を積み重ねていきたいと思います。

Discussion