AI21 LabsJamba-Instruct 模型 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AI21 LabsJamba-Instruct 模型

本节提供推理参数和使用AI21 Jamba-Instruct模型的代码示例。

必填字段

AI21 Labs Jamba-Instruct 模型支持以下必填字段:

  • 消息 (messages)-此聊天中以前的消息,从最旧(索引 0)到最新。列表中必须至少有一条用户或助手消息。包括用户输入和系统响应。该列表的最大总大小约为25.6万个代币。每封邮件都包含以下成员:

  • 角色 (role)-消息作者的角色。下列值之一:

    • 用户 (user)-用户提供的输入。此处给出的任何与system提示中给出的说明相冲突的指令优先于system提示指令。

    • 助手 (assistant)-模型生成的响应。

    • 系统 (system)-向系统提供的初始指令,用于为所生成消息的语气和语音提供一般指导。系统初始消息是可选的,但建议为聊天语气提供指导。例如,“你是一个乐于助人的聊天机器人,具有地球科学背景和迷人的法国口音。”

  • 内容 (content)-消息的内容。

推理参数

AI21 Labs Jamba-Instruct 模型支持以下推理参数。

随机性和多样性

AI21 Labs Jamba-Instruct 模型支持以下参数来控制响应中的随机性和多样性。

  • 温度 (temperature)-每个答案中要提供多少差异。将此值设置为 0 可确保每次对相同问题的回答都相同。设置较高的值会鼓励更多的变化。修改从中采样令牌的分布。默认值:1.0,范围:0.0 — 2.0

  • Top P (top_p) — 将每个步骤中的下一个代币池限制在可能代币的前 N 个百分位以内,其中 1.0 表示所有可能的代币池,0.01 表示仅包含最有可能的下一个代币池。

Length

AI21 Labs Jamba Instruct 模型支持以下参数来控制生成的响应的长度。

  • 最大完成长度 (max_tokens)-每条生成的响应消息允许的最大令牌数。通常,限制输出长度的最佳方法是在系统提示符中提供长度限制(例如,“将您的答案限制在三句话以内”)。默认值:4096,范围:0 — 4096。

  • Stop sequences (stop)-当模型生成其中一个字符串时,结束消息。生成的消息中不包含停止序列。每个序列的长度可达 64K,并且可以包含作为\ n 个字符的换行符。

    示例:

    • 带有单词和句点的单停字符串:“monkeys”。

    • 多个停止字符串和一个换行符:["cat”、“dog”、” 。 “, “####”,”\ n “]

  • 回复数 (n)-要生成的聊天回复数量。注 n 必须为 1 才能进行直播响应。如果 n 设置为大于 1,则设置temperature=0将始终失败,因为保证所有答案都是重复的。默认值:1,范围:1 — 16

重复

AI21 Labs Jamba-Instruct 模型支持以下参数来控制生成的响应中的重复性。

  • Frequ ency Pentaling (frequency_penalty)-通过增加此数字,降低单条回复消息中重复单词的频率。在响应生成过程中,单词出现的次数越多,这种惩罚就会逐渐增加。设置为 2.0 将生成一个包含少量重复单词的字符串。

  • 在线状态惩罚 (presence_penalty)-通过增加该数字来降低单条消息中重复单词的频率。与频率惩罚不同,无论单词出现多少次,存在惩罚都是一样的。

模型调用请求正文字段

使用AI21 Labs模型进行InvokeModelInvokeModelWithResponseStream调用时,请在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))