AI21 Labs Jamba 模型 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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

  • 前 Ptop_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) – 透過增加此數字,減少單一訊息中重複單字的頻率。與頻率懲罰不同,無論單字出現多少次,存在懲罰都是相同的。

模型調用請求主體欄位

當您使用 進行 InvokeModelInvokeModelWithResponseStream 呼叫時 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 }