Google CloudのVertex AI Studio自由形式

AI

Google Cloud Vertex AI Studioの自由形式についてメモ書き。

仕事でAIを使う場面が増えてきた。Copilot、Gemini、Chat-GPT等々本当に便利。
コーディングや環境構築が効率的に行えるようになった。
今後必須スキルになると思うので、調べた事をメモしていきたい。
今回はGoogle CloudのVertex AI Studio。

Vertex AI Studioは簡単に生成AIモデルをアプリケーションに組み込めるよう設計されているみたい。要約すると以下のような事らしい。
「Vertex AI Studioは生成AIモデルをテスト、カスタマイズするツール。
生成AIモデルは大量のデータを学習することでそのデータに含まれるパターンや特徴を把握し、新しいテキスト、画像、音楽、コード等のコンテンツを生成する。
Vertex AI Studioは、学習済みのモデルを数多く提供しており、ユーザーは目的に合わせそれらのモデルを微調整して使用することができる。」

2025年2月の段階では、Vertex AI Studioの一部は日本語に対応していない。
Google Cloudは無料トライアルがあるので、Vertex AI Studioを試してみる。
Vertex AI Studioの操作はこちらの公式チュートリアルが分かりやすい。

[VERTEX AI STUDIO]-[自由形式]は以下セクションに分かれている。

各セクションは以下の通り。

セクション名説明
システム指示レスポンスの文脈を指示する。
例えば、『あなたはテクニカルエンジニアのロイです。レスポンスの最初に「こんにちは」と言った後、簡単な自己紹介をしてレスポンスを返して下さい。』のように指示をすると、次のような返事をした後レスポンスを返してくれる。
『こんにちは。テクニカルエンジニアのロイと申します。コンピュータ関連の問題解決を専門としています。』
プロンプトマルチモーダル機能のプロンプト。
マルチモーダルとは、「multi(複数)」と「model(形式)」を組み合わせた言葉。
プロンプトは画像や文章を生成するための指示や質問の事。
要するに、テキストや画像、動画等複数のデータを組み合わせて文章等を生成するための指示が出せる。
レスポンス生成された文章等がレスポンスセクションに出力される。
構成文章等を生成するためのパラメータを調整する。

「構成」には以下パラメータがある。
選択するモデルによっては使用できない(グレーアウト)ものや表示されない項目がある。

パラメータ説明
モデルプロンプトに応答し、文章等を生成するAIモデル。複数のモデルが選択できる。
リージョン選択した「モデル」がデプロイされているリージョンの一覧。レイテンシ等を考慮し選択する。
Temperature生成する文章のランダム性。値が小さい程正確でばらつきが少なく、値が大きい程ばらつきや想定外の結果が多くなる。
Temperatureの範囲が0〜2の場合、0が最も正確でばらつきが少なく、2はばらつきや想定外の結果が多くなる。
出力トークンの上限出力されるテキストの最大量。1トークンは約4文字。
グラウンディング単に学習したパターンでレスポンスを返すのではなく、Google検索の結果を出典として付与し、レスポンスを返す。
グラウンディングを使用する事で、事実に基づかない情報を生成する「ハルシネーション」を低減できる。
「俳句を作って」など、根拠を必要としない(Google検索が必要ない)ものについては、当然ながら出典は付かない。
テキストフォーマット出力フォーマット。テキストやJSONがある。
安全フィルタの設定悪意のある表現等、有害なコンテンツを含む可能性があるレスポンスに対してブロックを設定する。
詳細 – シード生成AIモデルは乱数を使用する事で異なるテキストや画像を生成する事ができる。シード値とは乱数を生成するための初期値の事で、同じシード値を使うと同じ乱数が生成される。ただし、結果はシード値のみによって決定されるわけではないため、同じシード値を使用してもレスポンスは変化する可能性がある。
詳細 – 最大レスポンスストリーミングを無効にできるモデルの場合に有効にできる。ストリーミングは生成されたものから出力する方式で、一度に全てを返すわけではないため、最大レスポンスを制御できない。
詳細 – Top-Kモデルは次に出力する語句の確率分布を持っている。Top-Kサンプリングでは次に出力する確率が高い上位K個の語彙のみを候補とする事ができる。
要するに、Top-Kの値を大きくするとボキャブラリーが増えるため創造的なレスポンスが期待でき、値を小さくすると不適切な回答を避ける事ができる。
詳細 – Top-P累積確率を使って次にどの単語を選ぶか候補を絞り込む。設定値は0~1。累積確率をサイコロの目を使って説明すると、1回サイコロを振った時の確率は、
1の目が出る確率:1/6
1~2の目が出る累積確率:1/6 + 1/6 = 2/6
1~3の目が出る累積確率:2/6 + 1/6 = 3/6
1~4の目が出る累積確率:3/6 + 1/6 = 4/6
1~5の目が出る累積確率:4/6 + 1/6 = 5/6
1~6の目が出る累積確率:5/6 + 1/6 = 6/6 = 1
となり、最大値は1となる。Top-Pは、AIが生成するテキストの確率分布に基づいて候補を絞り込むため、サイコロとは異なり単語Aが候補になる確率が0.5、単語Bは0.3、単語Cは0.15等バラツキがある。設定値として0.8の場合、確率が高い方から累積確率が0.8になるまで単語が選ばれるためABが候補となる。ABどちらが選ばれるかはTemperatureによって調整される。Temperatureの値が小さい場合は確率が高いAが選ばれやすくなり、値が大きい場合は確率が均等化されるため値が小さい場合よりBの値が選ばれやすくなる。
詳細 – 停止シーケンスを追加レスポンスに指定した停止シーケンスの値を検知すると処理を停止する。

それでは試してみる。
マルチモーダルなので、文章と画像をプロンプトに入力する。
「システム指示」には挨拶をしてからレスポンスを返すように入力。
プロンプトに渡す画像はこれ。この画像の表を読み取り、生成AIを使ってJson形式に変換する。

レスポンスは以下の通り。

プロンプトは保存できる。
プロンプト名として「Json形式に変換」を入力し、「Save」をクリック。

内容を確認して「保存」を押下。
自動で保存する場合は「プロンプトを自動保存する」をチェックする。

保存したプロンプトは「プロンプト管理」から使用できる。

Screenshot

応答例を指定し、感情分析をしてみる。プロンプト右上の「例を追加」をクリック。
「入力」欄に感想、「出力」欄に分析例を入力する。

レスポンスセクションが「Test」になる。
「入力」欄に映画の感想を入れると、「出力」欄に感情分析の結果が出力される。

APIを使ってリクエストを送る事ができる。
右上の「コードを取得」をクリック。

ターミナルから実行するので右上の「cUrl」を選択。
1、2を設定した後、3の内容をコピーして実行する。

以下curlコマンド実行後のレスポンスから一部抜粋。
映画の感想に対して”プラス”の分析結果が返ってきた。

 {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "プラス"
          }
        ]
      }

コメント

タイトルとURLをコピーしました