

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

# AI21 Labs Jurassic-2   模型
<a name="model-parameters-jurassic2"></a>

本部分介绍了使用 AI21 Labs AI21 Labs Jurassic-2 模型所需的推理参数和相关代码示例。

**Topics**
+ [推理参数](#model-parameters-jurassic2-request-response)
+ [代码示例](#api-inference-examples-a2i-jurassic)

## 推理参数
<a name="model-parameters-jurassic2-request-response"></a>

AI21 Labs Jurassic-2 模型支持以下推理参数。

**Topics**
+ [随机性和多样性](#model-parameters-jurassic2-random)
+ [长度](#model-parameters-jurassic2-length)
+ [重复](#model-parameters-jurassic2-reps)
+ [模型调用请求正文字段](#model-parameters-jurassic2-request-body)
+ [模型调用响应正文字段](#model-parameters-jurassic2-response-body)

### 随机性和多样性
<a name="model-parameters-jurassic2-random"></a>

AI21 Labs Jurassic-2 模型支持使用以下参数来控制响应中的随机性和多样性。
+ **Temperature** (`temperature`) – 使用较低的值可降低响应中的随机性。
+ **Top P** (`topP`) – 使用较低的值可忽略不太可能的选项。

### 长度
<a name="model-parameters-jurassic2-length"></a>

AI21 Labs Jurassic-2 模型支持使用以下参数控制生成的响应的长度。
+ **Max completion length** (`maxTokens`) – 指定生成的响应中的最大令牌数。
+ **Stop sequences** (`stopSequences`) – 配置模型可识别的停止序列，遇到停止序列后，模型停止生成更多令牌。按 Enter 键可在停止序列中插入换行符。使用 Tab 键结束对停止序列的插入。

### 重复
<a name="model-parameters-jurassic2-reps"></a>

AI21 Labs Jurassic-2 模型支持使用以下参数控制生成的响应中的重复次数。
+ **Presence penalty** (`presencePenalty`) – 使用较高的值可降低生成的新令牌已在提示或完成内容中至少出现过一次的概率。
+ **Count penalty** (`countPenalty`) – 使用较高的值可降低生成的新令牌已在提示或完成内容中至少出现过一次的概率。与出现次数成正比。
+ **Frequency penalty** (`frequencyPenalty`) – 使用较高的值可降低生成的新令牌已在提示或完成内容中至少出现过一次的概率。此值与令牌出现的频率成正比（标准化为文本长度）。
+ **Penalize special tokens** — 降低特殊字符重复出现的概率。默认值为 `true`。
  + **Whitespaces** (`applyToWhitespaces`) – `true` 值会将惩罚应用于空格和新行。
  + **Punctuations** (`applyToPunctuation`) – `true` 值会将惩罚应用于标点。
  + **Numbers** (`applyToNumbers`) – `true` 值会将惩罚应用于数字。
  + **Stop words** (`applyToStopwords`) – `true` 值会将惩罚应用于停顿词。
  + **Emojis** (`applyToEmojis`) – `true` 值且将表情符号排除在惩罚范围之外。

### 模型调用请求正文字段
<a name="model-parameters-jurassic2-request-body"></a>

当您使用AI21 Labs模型进行[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)或[InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)调用时，请在`body`字段中填入符合以下对象的 JSON 对象。在 `prompt` 字段中输入提示。

```
{
    "prompt": string,
    "temperature": float,
    "topP": float,
    "maxTokens": int,
    "stopSequences": [string],
    "countPenalty": {
        "scale": float
    },
    "presencePenalty": {
        "scale": float
    },
    "frequencyPenalty": {
        "scale": float
    }
}
```

要惩罚特殊令牌，请将这些字段添加到任何惩罚对象中。例如，您可以按如下方式修改 `countPenalty` 字段。

```
"countPenalty": {
    "scale": float,
    "applyToWhitespaces": boolean,
    "applyToPunctuations": boolean,
    "applyToNumbers": boolean,
    "applyToStopwords": boolean,
    "applyToEmojis": boolean
}
```

下表显示了数字参数的最小值、最大值和默认值。


****  


- **随机性和多样性**
  - **参数:** Temperature / **JSON 对象格式:** 温度 / **最小值:** 0 / **最大值:** 1 / **默认:** 0.5
  - **参数:** Top P / **JSON 对象格式:** topP / **最小值:** 0 / **最大值:** 1 / **默认:** 0.5

- **长度**
  - **参数:** Max tokens (mid, ultra, and large models) / **最小值:** 0 / **最大值:** 8,191 / **默认:** 200
  - **参数:** Max tokens (other models) / **最小值:** 0 / **最大值:** 2,048 / **默认:** 200
  - **JSON 对象格式:** maxTokens

- **重复**
  - **参数:** Presence penalty / **JSON 对象格式:** presencePenalty / **最小值:** 0 / **最大值:** 5 / **默认:** 0
  - **参数:** Count penalty / **JSON 对象格式:** countPenalty / **最小值:** 0 / **最大值:** 1 / **默认:** 0
  - **参数:** Frequency penalty / **JSON 对象格式:** frequencyPenalty / **最小值:** 0 / **最大值:** 500 / **默认:** 0



### 模型调用响应正文字段
<a name="model-parameters-jurassic2-response-body"></a>

有关响应中`body`字段格式的信息，请参阅 [AI21 API 参考](https://docs.ai21.com/reference/introduction)。

**注意**  
Amazon Bedrock 会以整数值的形式返回响应标识符（`id`）。

## 代码示例
<a name="api-inference-examples-a2i-jurassic"></a>

此示例展示了如何调用 *A2I AI21 Labs Jurassic-2 Mid* 模型。

```
import boto3
import json

brt = boto3.client(service_name='bedrock-runtime')

body = json.dumps({
    "prompt": "Translate to spanish: 'Amazon Bedrock is the easiest way to build and scale generative AI applications with base models (FMs)'.", 
    "maxTokens": 200,
    "temperature": 0.5,
    "topP": 0.5
})

modelId = 'ai21.j2-mid-v1'
accept = 'application/json'
contentType = 'application/json'

response = brt.invoke_model(
    body=body, 
    modelId=modelId, 
    accept=accept, 
    contentType=contentType
)

response_body = json.loads(response.get('body').read())

# text
print(response_body.get('completions')[0].get('data').get('text'))
```