

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

이 섹션에서는 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`) - 낮은 값을 사용하면 응답의 무작위성을 줄일 수 있습니다.
+ **Top P**(`topP`) - 낮은 값을 사용하면 확률이 낮은 옵션을 무시할 수 있습니다.

### 길이
<a name="model-parameters-jurassic2-length"></a>

AI21 Labs Jurassic-2 모델은 다음과 같은 파라미터를 지원하여 생성된 응답의 길이를 제어합니다.
+ **최대 완료 길이**(`maxTokens`) - 생성된 응답에서 사용할 최대 토큰 수를 지정합니다.
+ **중지 시퀀스**(`stopSequences`) - 모델이 인식한 후 추가 토큰 생성을 중지하는 중지 시퀀스를 구성합니다. Enter 키를 눌러 중지 시퀀스에 줄 바꿈 문자를 삽입합니다. Tab 키를 사용하여 중지 시퀀스 삽입을 완료합니다.

### 반복
<a name="model-parameters-jurassic2-reps"></a>

AI21 Labs Jurassic-2 모델은 다음과 같은 파라미터를 지원하여 생성된 응답의 반복을 제어합니다.
+ **존재 페널티**(`presencePenalty`) - 높은 값을 사용하면 프롬프트에서 또는 완료 시 이미 한 번 이상 나타난 새 토큰이 생성될 확률을 낮출 수 있습니다.
+ **개수 페널티**(`countPenalty`) - 높은 값을 사용하면 프롬프트에서 또는 완료 시 이미 한 번 이상 나타난 새 토큰이 생성될 확률을 낮출 수 있습니다. 출현 횟수에 비례합니다.
+ **빈도 페널티**(`frequencyPenalty`) - 높은 값을 사용하면 프롬프트에서 또는 완료 시 이미 한 번 이상 나타난 새 토큰이 생성될 확률을 낮출 수 있습니다. 값은 토큰 출현 빈도(텍스트 길이로 정규화됨)에 비례합니다.
+ **특수 토큰에 페널티 적용** - 특수 문자가 반복될 확률을 줄입니다. 기본값은 `true`입니다.
  + **공백**(`applyToWhitespaces`) - `true` 값을 선택하면 공백과 새 줄에 페널티가 적용됩니다.
  + **구두점**(`applyToPunctuation`) - `true` 값을 선택하면 구두점에 페널티가 적용됩니다.
  + **숫자**(`applyToNumbers`) - `true` 값을 선택하면 숫자에 페널티가 적용됩니다.
  + **정지 단어**(`applyToStopwords`) - `true` 값을 선택하면 정지 단어에 페널티가 적용됩니다.
  + **이모티콘**(`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) 직접 호출을 수행할 경우, 아래 항목을 준수하는 JSON 객체로 `body` 필드를 채웁니다. `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
}
```

아래 표에는 숫자 파라미터의 최소값, 최대값, 기본값이 나와 있습니다.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters-jurassic2.html)

### 모델 호출 응답 본문 필드
<a name="model-parameters-jurassic2-response-body"></a>

응답에 있는 `body` 필드의 형식에 대한 내용은 [https://docs.ai21.com/reference/j2-complete-api-ref](https://docs.ai21.com/reference/j2-complete-api-ref)를 참조하세요.

**참고**  
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'))
```