

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

# AI21 Labs 모델
<a name="model-parameters-ai21"></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)(스트리밍) 작업으로 AI21 Labs 모델에 대한 추론 직접 호출을 수행합니다. 이 섹션에는 AI21 Labs 모델을 직접 호출하는 방법을 보여주는 Python 코드 예제도 포함되어 있습니다. 추론 작업에서 모델을 사용하려면 해당 모델의 모델 ID가 필요합니다. 모델 ID를 가져오려면 [Amazon Bedrock에서 지원되는 파운데이션 모델](models-supported.md) 섹션을 참조하세요. 일부 모델은 [Converse API](conversation-inference.md)에서도 작동합니다. Converse API가 특정 AI21 Labs 모델을 지원하는지 확인하려면 [지원되는 모델 및 모델 기능](conversation-inference-supported-models-features.md) 섹션을 참조하세요. 더 많은 코드 예제는 [AWS SDKs를 사용하는 Amazon Bedrock의 코드 예제](service_code_examples.md) 섹션을 참조하세요.

Amazon Bedrock의 파운데이션 모델은 모델마다 다른 입력 및 출력 양식을 지원합니다. AI21 Labs 모델이 지원하는 양식을 확인하려면 [Amazon Bedrock에서 지원되는 파운데이션 모델](models-supported.md) 섹션을 참조하세요. AI21 Labs 모델이 지원하는 Amazon Bedrock 기능을 확인하려면 [Amazon Bedrock에서 지원되는 파운데이션 모델](models-supported.md) 섹션을 참조하세요. AI21 Labs 모델을 사용할 수 있는 AWS 리전을 확인하려면 [Amazon Bedrock에서 지원되는 파운데이션 모델](models-supported.md) 섹션을 참조하세요.

AI21 Labs 모델로 추론 직접 호출을 수행할 때 모델에 대한 프롬프트를 포함해야 합니다. Amazon Bedrock이 지원하는 모델에 대한 프롬프트를 만드는 방법의 일반적인 내용은 [프롬프트 엔지니어링 개념](prompt-engineering-guidelines.md) 섹션을 참조하세요. AI21 Labs 한정 프롬프트 정보는 [AI21 Labs 프롬프트 엔지니어링 안내서](https://docs.ai21.com/docs/prompt-engineering)를 참조하세요.

**Topics**
+ [

# AI21 Labs Jurassic-2 모델
](model-parameters-jurassic2.md)
+ [

# AI21 Labs Jamba 모델
](model-parameters-jamba.md)

# 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'))
```

# AI21 Labs Jamba 모델
<a name="model-parameters-jamba"></a>

이 섹션에서는 AI21 Labs Jamba 모델을 사용하기 위한 추론 파라미터와 코드 예시를 제공합니다.

**Topics**
+ [

## 필수 필드
](#model-parameters-jamba-required-fields)
+ [

## 추론 파라미터
](#model-parameters-jamba-request-response)
+ [

## 모델 간접 호출 요청 본문 필드
](#model-parameters-jamba-request-body)
+ [

## 모델 호출 응답 본문 필드
](#model-parameters-jamba-response-body)
+ [

## 코드 예제
](#api-inference-examples-a2i-jamba)
+ [

## Jamba 1.5 Large의 코드 예제
](#api-inference-examples-a2i-jamba15-large)

## 필수 필드
<a name="model-parameters-jamba-required-fields"></a>

AI21 Labs Jamba 모델은 다음과 같은 필수 필드를 지원합니다.
+ **메시지**(`messages`) - 가장 오래된 메시지(인덱스 0)부터 가장 최신 메시지까지, 이 채팅의 이전 메시지를 나타냅니다. 목록에 사용자 또는 어시스턴트 메시지가 하나 이상 있어야 합니다. 사용자 입력과 시스템 응답을 모두 포함합니다. 목록의 가능한 최대 크기는 약 256K 토큰입니다. 각 메시지에는 다음 멤버가 포함됩니다.
+ **역할**(`role`) - 메시지 작성자의 역할입니다. 다음 값 중 하나입니다.
  + **사용자**(`user`) - 사용자가 제공한 입력입니다. 여기에서 `system` 프롬프트에 제공된 지침과 충돌하는 모든 지침은 `system` 프롬프트 지침보다 우선합니다.
  + **어시스턴트**(`assistant`) - 모델에서 생성된 응답입니다.
  + **시스템**(`system`) - 생성된 메시지의 어조에 대한 일반적인 지침을 제공하기 위해 시스템에 제공되는 초기 지침입니다. 초기 시스템 메시지는 선택 사항이지만 채팅의 어조에 대한 지침을 제공하는 것이 좋습니다. “당신은 지구 과학에 대한 지식을 갖춘 매력적인 프랑스 억양의 유용한 챗봇입니다.” 같은 메시지를 예로 들 수 있습니다.
+ **콘텐츠**(`content`) - 메시지의 콘텐츠입니다.

## 추론 파라미터
<a name="model-parameters-jamba-request-response"></a>

AI21 Labs Jamba 모델은 다음과 같은 추론 파라미터를 지원합니다.

**Topics**
+ [

### 무작위성과 다양성
](#model-parameters-jamba-random)
+ [

### 길이
](#model-parameters-jamba-length)
+ [

### 반복
](#model-parameters-jamba-reps)

### 무작위성과 다양성
<a name="model-parameters-jamba-random"></a>

AI21 Labs Jamba 모델은 다음과 같은 파라미터를 지원하여 응답의 무작위성과 다양성을 제어합니다.
+ **온도**(`temperature`) - 각 답변에 어느 정도의 변형을 제공할 것인지 나타냅니다. 이 값을 0으로 설정하면 동일한 질문에 대해 매번 동일한 응답이 보장됩니다. 값을 높게 설정하면 더 많은 변형이 발생합니다. 토큰이 샘플링되는 배포를 수정합니다. 기본값: 1.0, 범위: 0.0\$12.0
+ **Top P**(`top_p`) - 각 단계의 다음번 토큰 풀을 가능한 토큰의 상위 N 백분위수로 제한합니다. 여기서 1.0은 가능한 모든 토큰 풀을 의미하고 0.01은 가능성이 가장 높은 다음번 토큰만으로 구성된 풀을 의미합니다.

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

AI21 Labs Jamba 모델은 다음과 같은 파라미터를 지원하여 생성된 응답의 길이를 제어합니다.
+ **최대 완성 길이**(`max_tokens`) - 생성된 각 응답 메시지에 대해 허용할 최대 토큰 수입니다. 일반적으로 출력 길이를 제한하는 가장 좋은 방법은 시스템 프롬프트에 길이 제한을 제공하는 것입니다(예: '답변은 3개 문장으로 제한하세요'). 기본값: 4096, 범위: 0\$14096
+ **중지 시퀀스**(`stop`) - 모델이 여기에 해당하는 문자열 중 하나를 생성하면 메시지를 종료합니다. 중지 시퀀스는 생성된 메시지에 포함되지 않습니다. 각 시퀀스는 최대 64K 길이까지 가능하며 새 줄을 \$1n자로 포함할 수 있습니다.

  예시:
  + 단어와 마침표가 있는 단일 중지 문자열: “monkeys.”
  + 여러 중지 문자열 및 새 줄: ["cat", "dog", " .", "\$1\$1\$1\$1", "\$1n"]
+ **응답 수**(`n`) - 생성할 채팅 응답 수입니다. 스트리밍 응답의 경우 n은 1이어야 합니다. n이 1보다 크게 설정된 경우 모든 응답이 중복되는 결과로 이어지므로 `temperature=0` 설정이 항상 실패합니다. 기본값:1, 범위: 1\$116

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

AI21 Labs Jamba 모델은 다음과 같은 파라미터를 지원하여 생성된 응답의 반복을 제어합니다.
+ **빈도 페널티**(`frequency_penalty`) - 이 숫자를 늘려 단일 응답 메시지 내에서 반복되는 단어의 빈도를 줄입니다. 이 페널티는 응답 생성 중에 같은 단어가 더 많이 나타날수록 점진적으로 증가합니다. 2.0으로 설정하면 반복되는 단어가 거의 없거나 전혀 없는 문자열이 생성됩니다.
+ **출현 페널티**(`presence_penalty`) - 이 숫자를 늘려 단일 메시지 내에서 반복되는 단어의 빈도를 줄입니다. 빈도 페널티와 달리 출현 페널티는 단어가 표시되는 횟수에 관계없이 동일합니다.

## 모델 간접 호출 요청 본문 필드
<a name="model-parameters-jamba-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` 필드에 프롬프트를 입력합니다.

```
{
  "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
}
```

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

응답에 있는 `body` 필드의 형식에 대한 내용은 [https://docs.ai21.com/reference/jamba-instruct-api\$1response-details](https://docs.ai21.com/reference/jamba-instruct-api#response-details)를 참조하세요.

## 코드 예제
<a name="api-inference-examples-a2i-jamba"></a>

이 예제에서는 *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))
```

**converse**

```
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의 코드 예제
<a name="api-inference-examples-a2i-jamba15-large"></a>

이 예제에서는 *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
}
```