翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AI21 Labs Jamba モデル
このセクションでは、AI21 Labs Jamba モデルを使用する際の推論パラメータとコード例について説明します。
トピック
必須フィールド
AI21 Labs Jamba モデルは、次の必須フィールドをサポートしています。
-
Messages (
messages
) – このチャットの過去のメッセージを、最も古いもの (インデックス 0) から新しいものまで表示します。リストには、少なくとも 1 人のユーザーまたはアシスタントメッセージが必要です。ユーザー入力とシステムレスポンスの両方を含めます。リストの最大合計サイズは、約 256K トークンです。各メッセージには、次のメンバーが含まれます。 -
Role (
role
) – メッセージ作成者のロール。次のいずれかの値になります。-
User (
user
) – ユーザーが提供する入力。system
プロンプトの指示と矛盾するような指示がある場合は、system
プロンプト 指示が優先されます。 -
Assistant (
assistant
) – モデルが生成したレスポンス。 -
System (
system
) – 生成されたメッセージのトーンや音声に関する一般的なガイダンスを指定するためにシステムに提供される最初の指示です。最初のシステムメッセージはオプションですが、チャットのトーンに関するガイダンスは提供することが推奨されます。例えば、「地球科学に精通し、魅力的なフランス語訛りで話す役立つチャットボット」などがガイダンスとして挙げられます。
-
-
Content (
content
) – メッセージの内容。
推論パラメータ
AI21 Labs Jamba もでるは、次の推論パラメータをサポートしています。
ランダム性と多様性
AI21 Labs Jamba モデルでは。レスポンスのランダム性と多様性を制御する以下のパラメータをサポートしています。
-
Temperature (
temperature
)– 各回答に提供するバリエーション数。この値を 0 に設定すると、同じ質問に対して毎回同じレスポンスが保証されます。値を大きく設定すると、バリエーションが増えます。トークンのサンプリング元の分布を変更します。デフォルト値: 1.0、範囲: 0.0~2.0 -
Top P (
top_p
) – 各ステップの次のトークンのプールを、可能なトークンの Top N パーセンタイルに制限します。1.0 は可能なすべてのトークンのプールを意味し、0.01 は最も可能性の高い次のトークンのプールのみを意味します。
長さ
AI21 Labs Jamba モデルでは、生成されるレスポンスの長さを制御する以下のパラメータがサポートされています。
-
Max completion length (
max_tokens
) – 各生成されたレスポンスメッセージに許可するトークン最大数。通常、出力長を制限する最善の方法は、システムプロンプトに長さ制限を指定することです (例:「回答を 3 つの文に制限する」)。デフォルト値: 4096、範囲: 0~4096。 -
Stop sequences (
stop
) – モデルがこれらの文字列のいずれかを生成した場合にメッセージを終了します。ストップシーケンスは、生成されたメッセージには含まれません。各シーケンスは最大 64K の長さで、改行を \n 文字として含めることができます。例:
-
単語とピリオドを含む単一の停止文字列: "monkeys."
-
複数の停止文字列と改行: ["cat", "dog", " .", "####", "\n"]
-
-
Number of responses (
n
) – 生成するチャットレスポンス数。ストリーミングレスポンスの場合。n は 1 である必要があります。n が 1 より大きい場合、すべての回答がかならず重複するため、temperature=0
に設定すると常に失敗します。デフォルト値: 1、範囲: 1~16
繰り返し
AI21 Labs Jamba モデルでは、生成されるレスポンスの長さを制御する以下のパラメータがサポートされています。
-
Frequency Penalty (
frequency_penalty
) – この数値を高くすると、単一レスポンスメッセージで繰り返される単語の頻度が減少します。このペナルティは、レスポンス生成中に単語が表示される回数が多いほど徐々に厳しくなります。2.0 に設定すると、繰り返される単語がほとんどない文字列が生成されます。 -
Presence Penalty (
presence_penalty
) – この数値を高くすると、単一メッセージで繰り返される単語の頻度が減少します。Frequency Penalty とは異なり、存在ペナルティは単語が何度登場しても同じです。
モデル呼び出しリクエストの 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))
converse
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))
Code example for Jamba 1.5 Large
この例では、AI21 Labs Jamba 1.5 Large モデルを呼び出す方法を示しています。
invoke_model
POST https://bedrock-runtime.us-east-1.amazonaws.com/model/ai21.jamba-1-5-mini-v1:0/invoke-model HTTP/1.1 { "messages": [ { "role": "system", "content": "You are a helpful chatbot with a background in earth sciences and a charming French accent." }, { "role": "user", "content": "What are the main causes of earthquakes?" } ], "max_tokens": 512, "temperature": 0.7, "top_p": 0.9, "stop": ["###"], "n": 1 }