テックブログ

エルカミーの技術ブログです

Vertex AI の Generative AI Studio とは

はじめに

Google Cloud の Generative AI Studio を紹介します。カスタマイズ可能な生成AIモデルを簡単に開発し活用することができます。

Generative AI Studioとは

Google Cloud の Vertex AI のプロダクトで、文章や音声などをAIで自動生成するツールです。専門知識がなくても、AIに入力する命令文(プロンプト)を入力するだけで、様々な回答を生成するプロンプトとAPIを開発できます。

Generative AI Studio の使い方

Generative AI Studio の日本語の取り扱い
現状(2023/5/27)は、英語のみのサポートとのことです。
image block

Generative AI Studio の大まかな開発の流れとしては、「プロンプトエンジニアリング」→「API開発」となります。

言語モデルの開発を始めるには、ここからVertex AI のGenerative AI Studio にアクセスします。今回は、独自のプロンプトを作成する「プロンプトを作成」をクリックします。

image block
プロンプトエンジニアリング

Promptに質問文を入力するとResponseで出力されます。

image block

プロンプトの設計や構造だけでなく、品質を向上させるために下記のモデルパラメータを試すこともできます。

温度 トークン選択のランダム性の度合いで、低い温度は、正しいレスポンスが、高い温度は、多様な結果が出力される。
トークンの制限 出力されるトークンの最大数です。1トークン約4文字です。
トップ K モデルが出力するトークン候補のうち確率の高い上位K個のトークンから選択して文章を生成します。
トップ P モデルが出力するトークン候補のうち確率の高いトークンの確率の合計がPを超えるまで選択し、その中から選択して文章を生成します。
「ヒューショットプロンプトン」の例

どのような「プロンプト」を入力すれば 期待した結果が得られるかを設計する技術を「プロンプトエンジニアリング(プロンプトデザイン)」と呼びます。Generative AI Studio では、プロンプトエンジニアリングに便利な様々な機能を備えています。

「ヒューショットプロンプティング」というプロンプトエンジニアリングでは、いくつかの例を使った構造化されたプロンプトテンプレートを利用します。今回はこの手法を試してみます。

  1. 「構造化」のタブを選択します。
  2. 下記をプロンプトエンジニアリングの検証に必要な要素を入力します。
    Context:指示を入力(キャラクターを出力)
    Extract the characters.
    Examples(入力):例となる質問文(桃太郎のあらずじ)
    Momotaro, also known as "Peach Boy," is a popular Japanese folk tale. The story begins when an old, childless woman is washing clothes by the river and spots a giant peach floating downstream. She brings it home to share with her husband. As they cut open the peach, a healthy baby boy emerges from within. They name him Momotaro, meaning Peach Boy, and raise him as their own.
    
    As Momotaro grows, he becomes a strong and brave young man. One day, he learns of a group of oni, or demons, causing havoc on a distant island. Deciding to take action, Momotaro bids farewell to his elderly parents and embarks on a journey to confront the oni.
    
    Along the way, he befriends a dog, a monkey, and a pheasant by sharing his kibi-dango (millet dumplings), convincing them to join him in his mission. The four travel together to the island where the oni reside.
    
    Upon arriving, they challenge the oni, who initially laugh at the prospect of being defeated by a young boy and his animal companions. However, Momotaro and his friends prove formidable and manage to defeat the oni. The oni surrender their treasure and promise to stop their wicked ways.
    
    Triumphant, Momotaro returns to his village with the treasure, where he and his parents live happily and peacefully. The story of his bravery continues to be told, embodying virtues of courage, friendship, and the value of righteousness over evil.
    Examples(出力):例となる回答文(桃太郎の登場人物を箇条書き)
    Momotaro
    The old woman
    The old man
    The dog
    The monkey
    The pheasant
    The oni (demons)
    Test:検証したい質問文(浦島太郎のあらずじ)
    Urashima Taro is a classic Japanese folktale about a kind-hearted fisherman. One day, Taro saves a turtle from being tortured by a group of children on the beach. To express its gratitude, the turtle invites Taro to visit the Palace of the Dragon God, Ryugu-jo, located at the bottom of the sea.
    
    Transforming into a beautiful princess, the turtle escorts Taro to the undersea palace. There, Taro is welcomed by the Dragon God and enjoys a luxurious feast. He spends what feels like several days indulging in the palace's pleasures and enjoying the company of the princess.
    
    After a few days, Taro begins to miss his home and decides to return, even though the princess wishes him to stay. Before he leaves, the princess gifts him a mysterious box called "tamatebako," warning him never to open it.
    
    Upon returning to his village, Taro is shocked to find that everything has changed. His home is gone, his mother has passed away, and no one recognizes him. Overwhelmed with sadness and confusion, he opens the "tamatebako," despite the princess's warning.
    
    In an instant, Taro transforms into an old man. It turns out that what felt like a few days in the undersea palace was, in fact, three hundred years in the human world. Realizing he can't return to his former life, Taro is left with the memories of his wonderful but fleeting time in the Palace of the Dragon God.
    image block
    image block
  3. 「送信」をクリック

    Testの出力の結果が、Examplesの出力と同じ形式になりました。

    Urashima Taro
    The turtle
    The Dragon God
    The princess
    Taro's mother
    image block
プロンプトの保存

プロンプトの設計がうまくいったと思う場合は、保存して後で利用することもできます。

image block

保存したプロンプトは、プロンプトギャラリーで管理できます。

image block

APIの開発

次に、Generative AI Studio で開発したプロンプトをシステムに組み込むことができる API をご紹介します。Generative AI Studio の API には PaLM APIEmbedding API の2種類があります。これらの2つの API についてご紹介します。

PaLM API

Generative AI Studio の画面 の右上にある「コードを表示」をクリックするとこのように開発したプロンプトのコードサンプルが表示されます。

コードを Cloud Functions や Cloud Run に実装しデプロイすることで、システムに開発したプロンプトを実行するAPIを組み込むことが可能です。

image block
image block

ユースケースとしては、Google Cloud Storage にテキストファイルが保存されるトリガーで、Cloud Functions が実行され、Cloud Functions 上で Generative AI Stadio で開発したプロンプトの API を呼び出して、BigQuery に連携するといったことが可能です。

Embedding API

Embeddingとは、画像やテキストのような高次元のデータを数字の配列であるベクトルに変換することです。Embedding API を使うとテキストや画像から意味表現となるベクトルを簡単に作成できます。

ユースケースとしては、Vertex AI の Matching Engine と組み合わせてECサイトのテキスト検索で商品特徴から画像を検索することが可能です。テキストからベクトルの距離が近い画像を抽出するので、例え商品情報やタグ化されていない情報からでも商品を検索することができるようになります。