テキスト用 PaLM 2(text-bison
、text-unicorn
)基盤モデルは、感情分析、エンティティ抽出、コンテンツ作成などのさまざまな自然言語タスク用に最適化されています。テキスト用 PaLM 2 モデルが作成できるコンテンツのタイプは、ドキュメントの概要、質問への回答、コンテンツを分類するラベルなどです。
テキスト用 PaLM 2 モデルは、継続的な会話を必要とせずに、1 回の API レスポンスで完了できるタスクに最適です。反復的なやり取りが必要なテキストタスクの場合は、Vertex AI API でのチャット用生成 AI を使用します。
コンソールでモデルを確認するには、Model Garden でテキスト向けの PaLM 2 モデルカードを選択します。
Model Garden に移動
ユースケース
要約: 元のテキストの関連情報を盛り込んで、ドキュメントの短いバージョンを作成します。たとえば、教科書の一章を要約することが必要な場合が考えられます。または、商品を詳しく説明する長い段落から簡潔な商品説明を作成することもできます。
質問への回答: 質問への回答をテキストで提示します。たとえば、ナレッジベースのコンテンツからのよくある質問(FAQ)のドキュメントの作成を自動化できます。
分類: 指定されたテキストにラベルを割り当てます。たとえば、文法的な正確度を説明するテキストにラベルを適用できます。
感情分析: テキストの感情を特定する分類の一形態です。感情はラベルに変換され、テキストに適用されます。たとえば、テキストの感情には肯定的か否定的かといった二極性、怒りや幸せなどの感情があります。
エンティティ抽出: テキストから情報を抽出します。たとえば、記事のテキストから映画の名前を抽出できます。
テキスト プロンプトの設計について詳しくは、テキスト プロンプトを設計するをご覧ください。
HTTP リクエスト
POST https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/text-bison:predict
詳細については、predict
メソッドをご覧ください。
モデル バージョン
モデルの最新バージョンを使用するには、バージョン番号なしでモデル名を指定します(例: text-bison
)。
モデルの安定版を使用する場合は、モデルのバージョン番号を指定します(例: text-bison@002
)。安定版は、後続の安定版のリリース日から 6 か月間利用できます。
次の表に、利用可能なモデルの安定版を示します。
text-bison モデル | リリース日 | 廃止日 |
---|---|---|
text-bison@002 | 2023 年 12 月 6 日 | 2025 年 4 月 9 日 |
text-unicorn モデル | リリース日 | 廃止日 |
---|---|---|
text-unicorn@001 | 2023 年 11 月 30 日 | 2025 年 4 月 9 日 |
詳細については、モデルのバージョンとライフサイクルをご覧ください。
リクエストの本文
{
"instances": [
{
"prompt": string
}
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"topK": integer,
"topP": number,
"groundingConfig": string,
"stopSequences": [ string ],
"candidateCount": integer,
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"echo": boolean,
"seed": integer
}
}
テキストモデル text-bison
には、次のパラメータを使用します。詳細については、テキスト プロンプトを設計するをご覧ください。
パラメータ | 説明 | 使用できる値 |
---|---|---|
|
モデルのレスポンスを生成するためのテキスト入力。プロンプトには、プリアンブル、質問、提案、指示、例を含めることができます。 | テキスト |
|
温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、topP と topK が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック(代替)レスポンスが返ってきたりする場合は、Temperature を高くしてみてください。 |
|
|
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。 レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。 |
|
|
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が 3 の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンは Top-P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。 ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。 |
|
|
Top-P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いもの(Top-K を参照)から低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 であり、Top-P 値が 0.5 であるとします。この場合、モデルは温度を使用して A または B を次のトークンとして選択し、C は候補から除外します。ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。 |
|
|
レスポンスでいずれかの文字列が検出された場合に、テキストの生成を停止するようモデルに指示する文字列のリストを指定します。レスポンスで文字列が複数回出現する場合、レスポンスでは最初に見つかった箇所が切り捨てられます。文字列では大文字と小文字が区別されます。 たとえば、 stopSequences が指定されていない場合に、次のレスポンスが返されたとします。public
static string reverse(string myString) この場合に、 stopSequences が ["Str",
"reverse"] に設定されている次のようなレスポンスが返されます。public static string |
|
|
根拠付けにより、言語モデルを使用するときに特定のデータを参照できます。モデルを根拠付けると、そのモデルはリポジトリから内部データ、社外秘データなどの特定のデータを参照し、そのデータをレスポンスに含めることができます。Vertex AI Search のデータストアのみがサポートされています。 |
パスは |
|
レスポンスのバリエーションの数。リクエストごとに、すべての候補の出力トークンが課金されますが、入力トークンは 1 回のみ課金されます。 複数の候補を指定する機能は、
|
|
|
各生成ステップで、最上位の候補トークンのログ確率を返します。モデルが選択したトークンとログ確率は、各ステップで常に返されますが、上位候補のリストに含まれない場合があります。1 ~5 の範囲の整数値を使用して、返される候補の数を指定します。 |
|
|
値が正の場合は、生成されたテキストに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。有効な値は -2.0 ~2.0 です。 |
|
|
値が正の場合は、生成されたテキスト内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。有効な値は -2.0 ~2.0 です。 |
|
|
true の場合、生成されたテキスト内でプロンプトがエコーされます。 |
|
|
シードが特定の値に固定されている場合、繰り返されるリクエストに対してモデルはベスト エフォートで同じレスポンスを提供します。確定的な出力は保証されません。また、モデルやパラメータの設定(温度など)を変更すると、同じシード値を使用してもレスポンスが変化することがあります。デフォルトでは、ランダムなシード値が使用されます。 これはプレビュー機能です。 |
|
リクエストの例
REST
Vertex AI API を使用してテキスト プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
HTTP メソッドと URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict
リクエストの本文(JSON):
{ "instances": [ { "prompt": "Give me ten interview questions for the role of program manager."} ], "parameters": { "temperature": 0.2, "maxOutputTokens": 256, "topK": 40, "topP": 0.95, "logprobs": 2 } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict" | Select-Object -Expand Content
レスポンスの例のような JSON レスポンスが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
レスポンスの本文
{
"predictions":[
{
"content": string,
"citationMetadata": {
"citations": [
{
"startIndex": integer,
"endIndex": integer,
"url": string,
"title": string,
"license": string,
"publicationDate": string
}
]
},
"logprobs": {
"tokenLogProbs": [ float ],
"tokens": [ string ],
"topLogProbs": [ { map<string, float> } ]
},
"safetyAttributes": {
"categories": [ string ],
"blocked": boolean,
"scores": [ float ],
"errors": [ int ]
}
}
],
"metadata": {
"tokenMetadata": {
"input_token_count": {
"total_tokens": integer,
"total_billable_characters": integer
},
"output_token_count": {
"total_tokens": integer,
"total_billable_characters": integer
}
}
}
}
レスポンス要素 | 説明 |
---|---|
content |
入力テキストから生成された結果。 |
categories |
生成されたコンテンツに関連付けられた安全性属性カテゴリの表示名。順序がスコアと一致する。 |
scores |
各カテゴリの信頼スコア。値が大きいほど、信頼度が高くなります。 |
blocked |
モデルの入力または出力がブロックされたかどうかを示すフラグ。 |
errors |
入力または出力がブロックされた理由を示すエラーコード。エラーコードのリストについては、安全フィルタと属性をご覧ください。 |
startIndex |
引用が開始される予測出力のインデックス(両端を含む)。0 以上、end_index 未満にする必要があります。 |
endIndex |
引用が終了する予測出力のインデックス(終了箇所は含まない)。start_index より大きく、かつ len(output) より小さくする必要があります。 |
url |
この引用に関連付けられている URL。この URL が存在する場合は、この引用元のウェブページにリンクします。考えられる URL には、ニュース ウェブサイトや GitHub リポジトリなどがあります。 |
title |
この引用に関連付けられているタイトル。存在する場合は、この引用のソースのタイトルを指します。考えられるタイトルには、ニュース タイトルや書籍名などがあります。 |
license |
この引用に関連付けられているライセンス。存在する場合は、この引用元のライセンスを指します。考えられるライセンスの例としては、Mit ライセンスなど、コード ライセンスが挙げられます。 |
publicationDate |
この引用に関連付けられている公開日。存在する場合は、この引用の出典が公開された日付を指します。使用できる形式は、YYYY、YYYY-MM、YYYY-MM-DD です。 |
input_token_count |
入力トークンの数。これは、すべてのプロンプト、接頭辞、接尾辞にわたるトークンの総数です。 |
output_token_count |
出力トークンの数。すべての予測における content 内のトークンの合計数です。 |
tokens |
サンプリングされたトークン。 |
tokenLogProbs |
サンプリングされたトークンのログ確率。 |
topLogProb |
各ステップで最も可能性の高い候補トークンとそのログ確率。 |
logprobs |
logprobs パラメータの結果。candidates に対する 1 対 1 のマッピング。 |
レスポンスの例
{
"predictions": [
{
"citationMetadata":{
"citations": [ ]
},
"safetyAttributes":{
"scores": [
0.1
],
"categories": [
"Finance"
],
"blocked": false
},
"content":"1. What is your experience with project management?\n2. What are your strengths and weaknesses as a project manager?\n3. How do you handle conflict and difficult situations?\n4. How do you communicate with stakeholders?\n5. How do you stay organized and on track?\n6. How do you manage your time effectively?\n7. What are your goals for your career?\n8. Why are you interested in this position?\n9. What are your salary expectations?\n10. What are your availability and start date?",
"logprobs": {
"tokenLogProbs": [
-0.1,
-0.2
],
"tokens": [
"vertex",
" rocks!"
],
"topLogProbs": [
{
"vertex": -0.1,
"hello": -0.2
},
{
" rocks!": -0.2,
" world!": -0.3
}
]
}
},
"metadata": {
"tokenMetadata": {
"outputTokenCount": {
"totalTokens": 153,
"totalBillableCharacters": 537
},
"inputTokenCount": {
"totalBillableCharacters": 54,
"totalTokens": 12
}
}
}
]
}
生成 AI モデルからのレスポンスをストリーミングする
パラメータは、API に対するストリーミング リクエストと非ストリーミング リクエストで同じです。
REST API を使用してサンプルコードのリクエストとレスポンスを表示するには、REST API の使用例をご覧ください。
Vertex AI SDK for Python を使用してサンプルコードのリクエストとレスポンスを表示するには、Vertex AI SDK for Python の使用例をご覧ください。