AI21 Labs蠶豆指示模型 - Amazon Bedrock

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

AI21 Labs蠶豆指示模型

本節提供推論參數和使用AI21 Jamba-Instruct模型的程式碼範例。

必要欄位

AI21 實驗室 Jamba 指導模型支持以下必填字段:

  • 消息messages)— 此聊天中的先前消息,從最舊的(索引 0)到最新消息。清單中必須至少有一個使用者或助理訊息。包括使用者輸入和系統回應。列表的最大總大小約為 256K 令牌。每則訊息都包含下列成員:

  • Role (role) — 訊息作者的角色。下列其中一值:

    • 使用者 (user) — 使用者提供的輸入。此處提供的任何與提示中提供的指示衝突的指system示都會優先於system提示指示。

    • 助理 (assistant) — 由模型產生的回應。

    • System (system) — 提供給系統的初始指示,以針對所產生訊息的音調和語音提供一般指引。初始系統消息是可選的,但建議提供有關聊天鈴聲的指導。例如,「您是一個有用的聊天機器人,具有地球科學背景和迷人的法語口音。」

  • 內容 (content) — 訊息的內容。

推論參數

AI21 實驗室 Jamba 指導模型支持以下推論參數。

隨機性和多樣性

AI21 實驗室 Jamba 指導模型支持以下參數來控制響應中的隨機性和多樣性。

  • 溫度temperature)-每個答案中提供多少變化。將此值設定為 0 可確保每次對相同問題的回應都相同。設置更高的值鼓勵更多的變化。修改從中取樣記號的分佈。預設值:1.0,範圍:0

  • 前 Ptop_p)— 將每個步驟中的下一個令牌池限制為可能令牌的前 N 個百分位數,其中 1.0 表示所有可能令牌的池,而 0.01 表示只有最可能的下一個令牌的池。

長度

AI21 實驗室 Jamba 指示模型支持以下參數來控制生成的響應的長度。

  • 最大完成長度 (max_tokens) — 允許每個產生的回應訊息的權杖數目上限。通常,限制輸出長度的最佳方法是在系統提示中提供長度限制(例如,「將答案限制為三個句子」)。預設值:範圍:0

  • 停止序列 (stop)-當模型產生這些字串之一時結束訊息。停止序列不包含在產生的訊息中。每個序列最長可達 64K,並且可以包含換行符作為\ n 字符。

    範例:

    • 帶有單詞和句點的單停字符串:「猴子」。

    • 多個停止字符串和一個換行符:[「貓」,「dog」,」 。 「,「###」, "\ n「]

  • 響應數n)-生成多少聊天響應。串流回應的附註 n 必須為 1。如果 n 設置為大於 1,則設置temperature=0將始終失敗,因為所有答案都保證是重複的。預設值:1,範圍:1 — 16

重複

AI21 實驗室 Jamba 指導模型支持以下參數,以控制生成的響應中的重複。

  • 頻率懲罰 (frequency_penalty) — 透過增加此數字來減少單一回應訊息中重複字詞的頻率。這個懲罰會逐漸增加一個字詞在產生回應期間出現的次數。設置為 2.0 將產生一個包含少量單詞的字符串(如果有任何重複的話)。

  • 存在懲罰 (presence_penalty) — 透過增加此數字來減少單一訊息中重複字詞的頻率。與頻率懲罰不同,無論單詞出現多少次,存在懲罰都是相同的。

模型調用請求主體欄位

當您使用AI21 Labs模型進行InvokeModelInvokeModelWithResponseStream呼叫時,請使用符合以下內容的 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欄位格式的資訊,請參閱 https://docs.ai21.com/reference/ jamba-instruct-api #response-詳細資訊。

程式碼範例

這個範例說明如何呼叫 AI21 實驗室 Jamba 指導模型。

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))