AI21 Labs Jamba-Instruct モデル - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AI21 Labs Jamba-Instruct モデル

このセクションでは、AI21 Jamba-Instructモデルを使用するための推論パラメータとコード例を示します。

必須フィールド

AI21 Labs の Jamba-Instruct モデルは、次の必須フィールドをサポートしています。

  • メッセージ (messages) – 最も古いメッセージ (インデックス 0) から最新のメッセージまで、このチャット内の以前のメッセージ。リストには、少なくとも 1 つのユーザーまたはアシスタントメッセージが必要です。ユーザー入力とシステムレスポンスの両方を含めます。リストの最大合計サイズは、約 256K トークンです。各メッセージには、次のメンバーが含まれます。

  • ロール (role) — メッセージ作成者のロール。次のいずれかの値になります。

    • ユーザー (user) – ユーザーによって提供される入力。ここに記載されている指示のうち、systemプロンプトに記載されている指示と矛盾するものは、systemプロンプトの指示よりも優先されます。

    • Assistant (assistant) – モデルによって生成されたレスポンス。

    • システム (system) — 生成されたメッセージのトーンと音声に関する一般的なガイダンスを提供するためにシステムに提供される初期指示。初期システムメッセージはオプションですが、チャットのトーンに関するガイダンスを提供するために推奨されます。例えば、「あなたは地球科学のバックグラウンドと、煩わしいフランス語のアクセントを持つ有用なチャットボットです」などです。

  • コンテンツ (content) – メッセージの内容。

推論パラメータ

AI21 Labs の Jamba-Instruct モデルは、次の推論パラメータをサポートしています。

ランダム性と多様性

AI21 Labs の Jamba-Instruct モデルは、レスポンスのランダム性と多様性を制御する以下のパラメータをサポートしています。

  • 温度 (temperature) - 各回答に提供するバリエーションの量。この値を 0 に設定すると、毎回同じ質問に対して同じ応答が保証されます。値を大きく設定すると、バリエーションが増える可能性があります。トークンのサンプリング元のディストリビューションを変更します。デフォルト: 1.0、範囲: 0.0~2.0

  • トップ P (top_p) — 各ステップの次のトークンのプールを、可能なトークンの上位 N パーセンタイルに制限します。1.0 は可能なすべてのトークンのプールを意味し、0.01 は最も可能性の高い次のトークンのプールのみを意味します。

長さ

AI21 Labs の Jamba Instruct モデルは、生成されたレスポンスの長さを制御する以下のパラメータをサポートしています。

  • 最大完了長 (max_tokens) — 生成された各レスポンスメッセージに許可されるトークンの最大数。通常、出力の長さを制限する最善の方法は、システムプロンプトに長さの制限を指定することです (例えば、「回答を 3 文に制限する」)。デフォルト: 4096、範囲: 0~4096。

  • 停止シーケンス (stop) — モデルがこれらの文字列のいずれかを生成したときにメッセージを閉じます。停止シーケンスは、生成されたメッセージに含まれません。各シーケンスは最大 64K の長さで、改行を \n 文字として含めることができます。

    例:

    • 単語とピリオドを含む単一の停止文字列:「monkeys」。

    • 複数の停止文字列と改行: ["cat", "dog", " .", "####", "\n"]

  • レスポンスの数 (n) — 生成するチャットレスポンスの数。ストリーミングレスポンスのメモ n は 1 である必要があります。n を 1 より大きい値に設定すると、すべての回答temperature=0が重複することが保証されるため、設定は常に失敗します。デフォルト:1、範囲: 1~16

繰り返し

AI21 Labs の Jamba-Instruct モデルは、生成されたレスポンスの繰り返しを制御する以下のパラメータをサポートしています。

  • 頻度ペナルティ (frequency_penalty) – この数を増やすことで、単一の応答メッセージ内で繰り返される単語の頻度を減らします。このペナルティは、レスポンスの生成中に単語が表示される回数が多いほど徐々に増加します。を 2.0 に設定すると、単語が繰り返される場合、文字列の生成数が少なくなります。

  • プレゼンスペナルティ (presence_penalty) – この数を増やすことで、1 つのメッセージ内で繰り返される単語の頻度を減らします。頻度ペナルティとは異なり、存在ペナルティは単語が何回出現しても同じです。

モデル呼び出しリクエストの body フィールド

AI21 Labs モデルを使用して InvokeModelまたは をInvokeModelWithResponseStream呼び出す場合は、以下の JSON オブジェクトを bodyフィールドに入力します。[prompt] フィールドにプロンプトを入力します。

{ "messages": [ { "role":"system", // Non-printing contextual information for the model "content":"You are a helpful history teacher. You are kind and you respond with helpful content in a professional manner. Limit your answers to three sentences. Your listener is a high school student." }, { "role":"user", // The question we want answered. "content":"Who was the first emperor of rome?" } ], "n":1 // Limit response to one answer }

モデル呼び出しレスポンスの body フィールド

レスポンスの bodyフィールドの形式については、https://docs.ai21.com/reference/jamba-instruct-api#response-details」を参照してください。

コード例

この例では、AI21 Labs Jamba-Instruct モデルを呼び出す方法を示します。

invoke_model

import boto3 import json bedrock = session.client('bedrock-runtime', 'us-east-1') response = bedrock.invoke_model( modelId='ai21.jamba-instruct-v1:0', body=json.dumps({ 'messages': [ { 'role': 'user', 'content': 'which llm are you?' } ], }) ) print(json.dumps(json.loads(response['body']), indent=4))

会話

import boto3 import json bedrock = session.client('bedrock-runtime', 'us-east-1') response = bedrock.converse( modelId='ai21.jamba-instruct-v1:0', messages=[ { 'role': 'user', 'content': [ { 'text': 'which llm are you?' } ] } ] ) print(json.dumps(json.loads(response['body']), indent=4))