本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AI21 Labs Jamba 模型
本節提供推論參數和程式碼範例,以供使用 AI21 Labs Jamba 模型。
必要欄位
AI21 Labs Jamba 模型支援下列必要欄位:
-
訊息 (
messages
) – 此聊天中的上一個訊息,從最舊的 (索引 0) 到最新的。清單中必須至少有一個使用者或助理訊息。包含使用者輸入和系統回應。清單的最大總大小約為 256K 權杖。每個訊息都包含下列成員: -
角色 (
role
) – 訊息作者的角色。下列其中一值:-
使用者 (
user
) – 使用者提供的輸入。此處提供的任何與system
提示中提供的說明衝突的指示,都優先於system
提示指示。 -
助理 (
assistant
) – 模型產生的回應。 -
系統 (
system
) – 提供給系統的初始指示,提供有關產生訊息的語氣和語音的一般指引。初始系統訊息是選用的,但建議提供有關聊天音調的指導。例如,「您是實用的聊天機器人,擁有地球科學背景和迷人的法國口音」。
-
-
內容 (
content
) – 訊息的內容。
推論參數
AI21 Labs Jamba 模型支援下列推論參數。
隨機性和多樣性
AI21 Labs Jamba 模型支援下列參數,以控制回應中的隨機性和多樣性。
-
溫度 (
temperature
) – 每個答案要提供多少變化。將此值設定為 0 可確保每次都對相同問題做出相同的回應。設定較高的值會鼓勵更多變異。修改從中取樣權杖的分佈。預設:1.0,範圍:0.0 – 2.0 -
前 P (
top_p
) – 將每個步驟中的下一個字符集區限制為可能字符的 N 百分位數上限,其中 1.0 表示所有可能字符集區,0.01 表示僅最可能下一個字符的集區。
長度
AI21 Labs Jamba 模型支援下列參數,以控制產生的回應長度。
-
完成長度上限 (
max_tokens
) – 每個產生的回應訊息所允許的字符數量上限。通常限制輸出長度的最佳方法是在系統提示中提供長度限制 (例如,「將您的答案限制為三句」)。預設:4096,範圍:0 – 4096。 -
停止序列 (
stop
) – 在模型產生其中一個字串時結束訊息。停止序列不包含在產生的訊息中。每個序列的長度最多可達 64K,而且可以包含 \n 個字元的新行。範例:
-
具有單字和句號的單一停止字串:「monkeys」。
-
多個停止字串和新行:【"cat"、"dog"、" ."、"####"、"\n"】
-
-
回應數目 (
n
) – 要產生的聊天回應數量。對於串流回應,備註 n 必須為 1。如果 n 設定為大於 1,則設定temperature=0
一律會失敗,因為所有答案都保證為重複。預設:1,範圍:1 – 16
重複
AI21 Labs Jamba 模型支援下列參數,以控制所產生回應中的重複。
-
頻率處罰 (
frequency_penalty
) – 透過增加此數字,減少單一回應訊息中重複單字的頻率。此懲罰會逐漸增加字詞在回應產生期間出現的次數。如果有任何重複的單字,設為 2.0 會產生有少數數的字串。 -
存在處罰 (
presence_penalty
) – 透過增加此數字,減少單一訊息中重複單字的頻率。與頻率懲罰不同,無論單字出現多少次,存在懲罰都是相同的。
模型調用請求主體欄位
當您使用 進行 InvokeModel或 InvokeModelWithResponseStream 呼叫時 AI21 Labs 模型中,在body
欄位中填入符合下列物件的JSON物件。在 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
欄位格式的相關資訊,請參閱 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))
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 }