直近でGoogle I/O 2023やGoogle Cloud Dayが開催されましたが、どちらもGenerative AIの話題が盛り上がっていました。
今回は、その一つであるGenerative AI Studioについて、何ができるのか検証していきたいと思います。

Generative AI Studioとは

Generative AI Studioは、Google CloudのVertex AIの機能の1つで、機械学習を活用して音声やテキストなどのコンテンツを生成するためのコンソールツールと環境を提供します。
Prompting、Fine Tuning、RLHFなどに対応しており、独自のデータを使用して様々なモデルを調整できます。
現時点では主に音声やテキスト、コード生成に関する以下の機能が提供されておりますが、今後、画像生成の機能なども拡充される予定とのことです。

  • サンプルプロンプトを使用したモデルのテスト
  • 独自プロンプトの設計
  • 基礎モデルの調整
  • 音声 – テキスト間での変換

コード生成については別途こちらで検証していますので、合わせてご覧ください。
https://iret.media/74341

サンプルプロンプト

Generative AI Studioには、要約・分類・抽出などのタスクの種類によって分類された様々なサンプルプロンプトがあります。
各プロンプトは指定されたモデルとパラメーター値で事前構成されているため、ワンクリックでレスポンスを生成するモデルを取得できます。
試しに「Transcript Summarization」というサンプルのテキストプロンプトを使用して、文章を要約してみます。

設定方法

  1. Vertex AIからGenerative AI Studioページに移動し、[言語]モデルを選択します
  2. [Transcript Summarization]を選択します
  3. プロンプトの入力方法を決定します(※2023/5/30時点で日本語は未対応)
    • 自由形式:未知の情報に対してや、入力文をコピーして文章を生成するようなプロンプトを設計したい場合におすすめ
    • 構造化:複数の入力を組み合わせたプロンプトを設計したい場合におすすめ
  4. 既に各種パラメータにはサンプルプロンプトの値が入力されていますので、そのまま[送信]をクリックしてレスポンスを取得します

    プロンプトの入力方法を自由形式としているため、元の文章がそのまま回答に反映されていることがわかります。
    具体例などは入れず主張部分を含めているため、ちゃんと要約できていそうです。

独自プロンプト

独自プロンプトは、言語モデルからより適切なレスポンスを引き出すプロンプトを手動で作成するためのものです。
プロンプトを細部まで設計することで目的に近い結果を生成できるため、特定のユースケースに特化させることで効率性にメリットを得られます。
また、Generative AI Studioではこのような独自プロンプトを作成して保存できます。

設定方法

  1. Vertex AIからGenerative AI Studioページに移動し、[言語]モデルを選択します
  2. [プロンプトを作成]を選択します
  3. モデルとパラメータを決めてプロンプトに文章を入力したら、[送信]をクリックしてレスポンスを取得します
    • 以下の値を調整することで、レスポンスの柔軟性が大きく変わります。
パラメータ 内容
モデル 使用するモデルを選択する
温度 トークン選択のランダム性を制御できる
低:自由回答や創造性が低下するため、レスポンスの幅を狭めたい場合に有用
高:多様で創造的が向上するため、ランダムなレスポンスを得たい場合に有用
トークン制限 レスポンスで生成できる文章の長さの上限
低:短くしたい場合に有用
高:長くしたい場合に有用
Top-K モデルの語彙内で、最も高い確率を持つ上位K個のトークンをレスポンスに出力する
この上位K個の中から、温度で設定したランダム値をもとに決定される
Top-P Top-Kで選択された上位K個を確率で決定するためのパラメータ
トークンは確率の合計が上位Pの値と等しくなるまで、最も確率の高いものから低いものまで選択され、温度で設定したランダム値をもとに決定される

今回は、わかりやすく結果に出そうな温度とトークン制限の値を、極端に変えることで出力の差を見てみます。

<レスポンスを短く固定する場合>

パラメータを以下のように設定したところ、レスポンスは最低限の内容となりました。
また、何回か試しましたが内容が変化することはなく、すぐにこの回答が返ってきました。

<レスポンスを長くランダムにする場合>

パラメータを以下のように設定した場合、様々な内容のレスポンスが返ってきました。
何回か試したところ、毎回異なる回答を得られ、長さもバラバラでした。

  • 1回目
  • 2回目

チャットプロンプト

テキストベースだけでなく、自由形式のチャットを作成することもできます。
これまでの会話内容を追跡し、コンテキストに応じて応答するマルチターンチャットが採用されています。

設定方法

  1. Vertex AIからGenerative AI Studioページに移動し、[言語]モデルを選択します
  2. [チャットプロンプトを作成]を選択します
  3. モデルやパラメータは先程と同じ要領で調節します
  4. 以下の項目を入力します
    • メッセージ:AIへの質問などを入力する場所
      • トークン制限によりチャットセッション履歴に保持されるメッセージの数が決まる
    • コンテキスト:モデルがどのような動作で回答するかをカスタマイズできる
      • モデルが使用できる単語とできない単語の指定
      • 重点を置くトピックや回避するトピックの指定
      • 応答のスタイル、口調、または形式の指定
      • 登場人物、人物、または役割の指定
    • 例:特定の入力に対するモデルの回答方法をカスタマイズできる

今回は、コンテキストや例の有無でどのような回答になるか試したいと思います。
※わかりやすいようにレスポンスは日本語訳しています。

<メッセージのみ>

コンテキストと例どちらも設定せずに以下の質問をした場合、情報がないため回答は得られませんでした。

<メッセージ・コンテキストのみ>

次にコンテキストを以下のように設定しました。

情報があるAさんは想定通りの回答が得られており、情報のないBさんの回答は得られないという結果でした。
コンテキストの内容を汲み取って回答されていることがわかります。

<メッセージ・コンテキスト・例>

続いて、先程のコンテキストに加えて以下の例を入れてみます。

コンテキストに含めていない情報が回答に含まれました。
このことから例が反映され、回答に活用されていることがわかります。

基礎モデルの調整

トレーニングデータが利用可能な場合は、モデル自体を調整することでより高い精度を保つことができます。
Generative AI Studioでは、調整用のデータセットとしてJSONL形式のファイルをアップロードするか、Cloud Storageからファイルを読み取ることで、調整済みモデルを作成することができます。
モデルの調整には、より多くのデータセットがないと効果を発揮できないため、今回は割愛します。

音声 – テキスト間での変換

Generative AI Studioを使用してテキストを音声に変換、または音声をテキストに変換することができます。
前提として、高度で複雑な変換がしたい場合は、「Text-to-Speech」や「Speech-to-Text」を使用することを推奨します。

テキストを音声に変換

  1. Vertex AIからGenerative AI Studioページに移動し、[音声]モデルを選択します
  2. [テキスト読み上げ]タブを選択します
  3. 以下のパラメータを調整し、[送信]をクリックしてスピーチを取得します
    • テキスト:音声に変換する文章(200文以内)
    • 声:スピーチに使用する音声
      • 英語 – 女性
      • 英語 – 男性
      • スペイン語 – 男性
    • 速度:音声の速度

スピーチはコンソール上の再生ボタンから再生したり、WAV形式でダウンロードすることが可能です。

音声をテキストに変換

  1. Vertex AIからGenerative AI Studioページに移動し、[音声]モデルを選択します
  2. [音声文字変換]タブを選択します
  3. 以下のパラメータを調整し、[送信]をクリックしてテキストを取得します
    • 音声ファイル:最大10MB、長さ60秒までのWAVまたはAIFF形式のオーディオファイル
    • 言語:音声ファイルの言語(様々な言語に対応していますが、出力されるテキストは英語のみ)


先程テキストから変換したWAVファイルから実施したところ、ちゃんとテキストへ変換されました。
ピリオドがないので、もっと長い文章の場合にちゃんと区切られるかは気になります。

終わりに

Vertex AIのGenerative AI Studioでできることを一通り試してみました。
ほとんどの機能が簡単で直感的に使うことができるため、私のようなAI初心者がとりあえず触ってみたいといったケースで有用だと感じました。
また、コンソールだけでなくAPIも提供されているため、生成AIモデルをすぐにテストしたい場合などにも利用できるのではないかと思います。
プレビュー版ということもあり、まだまだ機能拡充される想定ですので、さらに期待が高まるツールでした。
なお、現在はテキストのみGAされており、チャット、音声変換、コード生成はプレビューとなります。

参考
Introduction to Generative AI Studio
Test text prompts
Test chat prompts
Convert text to speech
Convert speech to text