arrow_back

PaLM を使用したプロンプト設計

ログイン 参加
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

PaLM を使用したプロンプト設計

Lab 1時間 30分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP1165

Google Cloud セルフペース ラボ

概要

プロンプト設計とは、PaLM のような大規模言語モデル(LLM)に望ましい出力を生成させるために有効なプロンプトを作成するプロセスです。プロンプトは、テキストの生成、言語の翻訳、さまざまな種類のクリエイティブなコンテンツの執筆、質問へのわかりやすい回答などのために使用できます。

プロンプトから良い結果を得るためには、生成したい出力に関連するキーワードを使って具体的に表現し、PaLM に出力サンプルを提供して、求めているものをよりよく理解させる必要があります。

このラボでは、不動産会社のマーケティング アナリストとして作業を行います。顧客が要望に合う住宅を見つけやすくなるように、あなたは会社のウェブサイトに掲載されている長文の住宅説明から要約を抽出できるプロンプトを作成する必要があります。

学習内容

このラボでは、AI / ML プラットフォームとしての Vertex AI を確認し、次の方法を学びます。

  • 良質なプロンプトを設計する。
  • PaLM と対話し、望ましいレスポンスを得る。
  • レスポンスのハルシネーションに注意する。

ユースケース

あなたの会社は、探している住宅の特徴を顧客が入力すると、候補となる住宅の簡単な説明文を返すシステムに大規模言語モデル(LLM)を使用することを考えています。

あなたの任務は、不動産サイトの非常に長い住宅説明文を要約するプロンプトを作成することです。住宅説明文は、Google Cloud Storage バケット内のファイルに保存されています。

時間を節約し、できるだけ早くソリューションを実装するために、まずは Model Garden を使用して利用可能な事前構築済みモデルを探します。

このラボで使用する Vertex AI の機能

生成 AI モデル

Vertex AI で利用可能な生成 AI モデル(基盤モデル)は、生成対象とするコンテンツの種類によって分類されています。このコンテンツには、テキストとチャット、画像、コード、テキスト エンべディングが含まれます。各モデルは、Google Cloud プロジェクト専用のパブリッシャー エンドポイントを通じて公開されます。そのため、特定のユースケース向けにチューニングする場合を除いて、基盤モデルをデプロイする必要はありません。

Pathways と PaLM(Pathways Language Model)

Pathways はドメインやタスクを横断して汎化できる単一モデルであり、非常に効率的です。PaLM(Pathways Language Model)は Pathways システムでトレーニングされた高密度なデコーダのみの Transformer モデルであり、PaLM を使うことで Google は単一のモデルを複数の TPU v4 Pod で効率的にトレーニングできました。PaLM は言語理解と生成に関する何百ものタスクにおいて評価されており、多言語タスクとソースコード生成で高い能力を発揮します。

PaLM 2 は、PaLM API の原動力となっている基本モデルであり、多言語、推論、コーディングの機能が向上した最先端の言語モデルです。PaLM 2 の詳細については、PaLM 2 のご紹介記事をご覧ください。このノートブックでは、さまざまな種類の要約を作成するためのプロンプトを設計する方法を紹介します。

Vertex AI Studio

Vertex AI Studio は、生成 AI モデルを迅速にプロトタイピングおよびテストするための Google Cloud コンソール ツールです。サンプル プロンプトのテスト、独自のプロンプトの設計、基盤モデルのカスタマイズを行い、アプリケーションのニーズを満たすタスクを処理できます。行えることは下記のとおりです。

  • サンプル プロンプトを使ってモデルをテストする。
  • 独自のプロンプトを設計して保存する。
  • 基盤モデルをチューニングする。
  • 音声とテキストの相互変換を行う。

AI Studio の詳細については、公式ドキュメントをご覧ください。

Vertex AI Workbench

Vertex AI Workbench は、フルマネージドでスケーラブルな、エンタープライズ対応のコンピューティング インフラストラクチャです。データ サイエンティスト向けに、テストからデプロイ、モデルの管理、モニタリングに至るまで ML に関するあらゆる作業を行うための単一の環境を提供します。Vertex AI Workbench は Jupyter ベースの環境であり、Jupyter ノートブックやマネージド コンピューティング リソースなどの幅広いツールやサービスが含まれています。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

API を有効にする

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で [その他のプロダクト] をクリックし、[AI] セクションで [Vertex AI] を選択します。
  2. Vertex AI のダッシュボードで、[すべての推奨 API を有効化] をクリックします。

Vertex AI Workbench を開く

  1. Vertex AI のダッシュボードの左ペインで [ワークベンチ] をクリックします。

    注: 左ペインが表示されない場合は、ブラウザ ウィンドウを横に広げてください。
  2. [ユーザー管理のノートブック] タブをクリックします。

タスク 1. Vertex AI の生成モデルによる質問応答

あなたの仕事は、見込み顧客がレスポンスに基づいて不動産物件を絞り込める UI を構築することです。

  1. [ユーザー管理のノートブック] タブで、自分のノートブック名の横にある [JupyterLab を開く] をクリックします。

Vertex AI Workbench が開き、左ペインにファイルが表示されます。

  1. training-data-analyst/self-paced-labs/genai/housing_question_answering.ipynb を見つけ、ダブルクリックして開きます。

housing_question_answering.ipynb が開き、右ペインに表示されます。

  1. [編集] > [出力をすべて消去] をクリックします。

  2. ノートブックの手順をよく読み、各セルのコードを実行します。

現在のセルを実行するには、そのセルをクリックして、Shift+Enter キーを押します。その他のセルコマンドはノートブック UI 内の [実行] の下にあります。

Jupyter ノートブック環境を開いたままにして、このタスクを読み進めてください。タスク 3 でノートブック環境に戻ります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

housing_question_answering.ipynb ファイルのセルを実行する

パラメータの値

モデルに送信する呼び出しの一つひとつに、モデルがどのようにレスポンスを生成するかを制御するパラメータ値が含まれています。モデルが生成する結果は、パラメータ値によって異なります。このタスクでは、タスクに最適な結果を得るために、さまざまなパラメータ値を試します。

使用できるパラメータはモデルによって異なりますが、以下のパラメータが最も一般的です。

  • Temperature
  • トークンの上限
  • Top-K
  • Top-P

Temperature

Temperature は、Top-K と Top-P を適用したときのトークン選択におけるランダム性の度合いを制御します。Temperature が低いほど、自由度や創造性を抑えた決定的なレスポンスが求められるプロンプトに適しています。一方、Temperature が高いと、より多様で創造的な結果を導くことができます。Temperature 0 は決定的であり、最も高い確率のレスポンスが常に選択されることを意味します。

ほとんどのユースケースでは、Temperature 0.2 から始めることをおすすめします。モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック(代替)レスポンスが返ってきたりする場合は、Temperature を高くしてみてください。

トークンの上限

トークンの上限により、1 つのプロンプトに対して出力されるテキストの最大量が決まります。トークンは約 4 文字です。デフォルト値は 256 です。

レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。

Top-K

Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が 3 の場合は、最も確率が高い上位 3 つのトークンから次のトークンが選択されることになります(Temperature を使用します)。

トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンは Top-P に基づいてさらにフィルタリングされ、最終的なトークンは Temperature サンプリングを用いて選択されます。

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。Top-K のデフォルト値は 40 です。

Top-P

Top-P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いもの(Top-K を参照)から低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 で、Top-P が 0.5 だとします。このとき、モデルは次のトークンとして A か B を Temperature を使って選択し、C は候補から外します。

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。Top-P のデフォルト値は 0.80 です。

タスク 2. さまざまなパラメータ値のテスト

パラメータの値を変えてテストする準備が整いました。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[AI] セクションの [Vertex AI] を選択します。

  2. 左側にある [TOOLS] ペインで [GENERATIVE AI STUDIO] セクションの [言語] をクリックします。次に、[開始] ページで [テキスト プロンプト] をクリックします。

  3. 次のプロンプトを入力します。

ハリーポッターの冒頭部分を要約してください。
  1. パラメータ セクションのボックスで、Temperature を 0.9 から 1 に変更し、[送信]、[保存] の順にクリックします。プロンプトに名前を付けて保存します。レスポンスを読み、Temperature 値の違いによるレスポンスへの影響を確認します。

  2. パラメータ セクションで、トークンの上限を 2048 から 1024 に変更し、[送信]、[保存] の順にクリックします。レスポンスを読み、トークンの上限の違いによるレスポンスへの影響を確認します。

  3. パラメータ セクションで [詳細] 切り替えオプション ボタンをクリックして、Top-K の値を 1 に変更し、[送信]、[保存] の順にクリックします。レスポンスを読み、Top-K 値の違いによるレスポンスへの影響を確認します。

  4. パラメータ セクションで、Top-P の値を 1 に変更し、[送信]、[保存] の順にクリックします。レスポンスを読み、Top-P 値の違いによるレスポンスへの影響を確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

パラメータを変更してレスポンスを保存する

タスク 3. Vertex AI の生成モデルによるテキスト要約

検索プロセスを合理化するために、最も重要な情報を含む住宅の要約を抽出します。

  1. JupyterLab ノートブックで、左側のパネルにある housing_text_summarization.ipynb をダブルクリックして開きます。

  2. [編集] > [出力をすべて消去] をクリックします。

  3. ノートブックの手順をよく読み、各セルのコードを実行します。

housing_text_summarization.ipynb ファイルのセルを実行する

お疲れさまでした

PaLM API と AI Studio を使用して、さまざまな生成 AI のユースケースのためのプロンプトを作成し、テストしました。また、AI Studio の UI の操作方法を学び、さまざまなパラメータでテキストとコードのプロンプトを作成しました。

次のステップと詳細情報

  • プロンプト設計の詳細について、公式ドキュメントを読む。

  • このラボで使用したノートブックを見る。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2023 年 12 月 28 日

ラボの最終テスト日: 2023 年 12 月 28 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。