

# Amazon Nova 2에서 확장된 사고
<a name="extended-thinking"></a>

Amazon Nova 2 Lite에서는 모델이 복잡한 문제에 대한 심층적인 추론에 참여할 수 있는 **확장된 사고** 기능을 도입했습니다. 이 선택적 기능을 사용하면 모델이 어려운 태스크를 고민할 때 추가 계산 리소스를 할당하는 시기와 방법을 제어할 수 있습니다.

## 확장된 사고의 작동 방식
<a name="how-extended-thinking-works"></a>

 Amazon Nova 2에서는 확장된 사고를 **하이브리드 기능**으로 도입합니다. 다음을 완벽하게 제어할 수 있습니다.
+ **확장된 사고 꺼짐(기본값)**: Amazon Nova 2는 효율적인 잠재 추론으로 작동하며 일상적인 태스크와 대용량 애플리케이션에 적합합니다.
+ **확장된 사고 켜짐**: Amazon Nova 2는 심층 분석이 필요한 복잡한 문제에 가장 적합한 명시적 단계별 추론에 참여합니다.

### 추론 노력
<a name="reasoning-effort"></a>

다음은 다양한 수준의 추론 노력을 보여줍니다.

#### 낮은 수준의 노력(maxReasoningeffort: "low")
<a name="reasoning-effort-low"></a>

**적합한 작업:** 체계적인 사고가 요구되는 복잡성이 늘어난 태스크. 예를 들어 모델이 기존 코드 품질을 신중하게 고려해야 하는 코드 검토 및 개선 제안, 여러 요인을 신중하게 고려해야 하는 분석 태스크 또는 방법론적 접근 방식의 이점을 활용하는 문제 해결 시나리오에 사용할 수 있습니다. 낮은 수준의 노력은 심층적인 여러 단계의 계획을 세우지 않고도 기본적인 추론을 통해 정확도가 향상되는 복합 태스크에 적합합니다.

#### 중간 노력(maxReasoningEffort: "medium")
<a name="reasoning-effort-medium"></a>

**적합한 작업:** 여러 단계의 태스크 및 코딩 워크플로. 예를 들어 변경 사항을 구현하기 전에 모델이 기존 코드 구조를 이해해야 하는 소프트웨어 개발 및 디버깅, 여러 파일 또는 구성 요소에서 조정이 필요한 코드 생성, 상호 종속성이 존재하는 여러 단계의 계산이나 여러 제약 존건이 있는 태스크 계획에 사용할 수 있습니다. 중간 노력은 여러 도구를 조정하고 모델이 여러 순차적 작업에서 컨텍스트를 유지 관리해야 하는 에이전트 워크플로에 적합합니다.

#### 높은 수준의 노력(maxReasoningeffort: "high")
<a name="reasoning-effort-high"></a>

**적합한 작업:** STEM 추론 및 고급 문제 해결. 예를 들어 엄격한 단계별 확인, 심층 조사를 요구하는 과학 분석 및 연구 태스크, 여러 차원에서 아키텍처 고려 사항이 포함된 복잡한 시스템 설계 또는 중요한 영향을 미치는 중요한 의사 결정 시나리오가 필요한 고급 수학적 문제 및 증명에 사용할 수 있습니다. 높은 수준의 노력은 정교한 추론, 대안에 대한 신중한 평가, 결론에 대한 철저한 검증이 필요한 태스크에서 최대의 정확도를 제공합니다.

### 빠른 시작: 확장된 사고 활성화
<a name="enable-extended-thinking"></a>

확장된 사고는 `reasoningConfig` 파라미터를 통해 제어됩니다.

```
import boto3

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

response = bedrock.converse(
    modelId='us.amazon.nova-2-lite-v1:0',
    system=[{"text": "You are a highly capable personal assistant"}],
    messages=[{
        "role": "user",
        "content": [{"text": "Provide a meal plan for a gluten free family of 4."}]
    }],
    inferenceConfig={
        "temperature": 0.7,
        "topP": 0.9,
        "maxTokens": 10000
    },
    additionalModelRequestFields={
        "reasoningConfig": {
            "type": "enabled",
            "maxReasoningEffort": "low"
        }
    }
)

content_list = response["output"]["message"]["content"]

for item in content_list:
    if "reasoningContent" in item:
        reasoning_text = item["reasoningContent"]["reasoningText"]["text"]
        print("=== REASONING ===")
        print(reasoning_text)
        print()
    elif "text" in item:
        print("=== ANSWER ===")
        print(item["text"])
```

추론 파라미터:
+ `type: enabled` 또는 `disabled`(기본값: `disabled`)
+ `maxReasoningEffort`, `low`, `medium` 또는 `high`

**참고**  
Temperature, topP, topK는 `maxReasoningEffort`를 `high`로 설정한 상태에서 사용할 수 없습니다. 이러한 파라미터를 함께 사용하면 오류가 발생합니다.

확장된 사고를 활용하는 코드의 전체 예제는 [코드 라이브러리](code-library.md) 섹션을 참조하세요.

### 응답 구조
<a name="extended-thinking-response-structure"></a>

확장된 사고를 활성화하면 응답에는 `reasoningContent` 블록과 `text` 콘텐츠 블록이 순서대로 포함됩니다.

```
{
    "output": {
        "message": {
            "role": "assistant",
            "content": [
                {
                    "reasoningContent": {
                        "reasoningText": {
                            "text": "[REDACTED]"
                        }
                    }
                },
                {
                    "text": "Based on the premises, we can conclude..."
                }
            ]
        }
    },
    "stopReason": "end_turn"
}
```

**참고**  
Amazon Nova 2에서 추론 콘텐츠는 `[REDACTED]`로 표시됩니다. 출력 품질 향상에 기여하므로 추론 토큰에 대한 요금은 계속 청구됩니다. 향후 릴리스에서 추론 콘텐츠를 노출하는 옵션을 유지하기 위해 이제 이 필드가 응답 구조에 포함됩니다. 모델 추론 프로세스를 설명하기 위한 최선의 접근 방식을 결정하기 위해 고객과 적극적으로 협력하고 있습니다. 추론 콘텐츠는 `[REDACTED]`로 표시됩니다. 출력 품질 향상에 기여하므로 추론 토큰에 대한 요금은 계속 청구됩니다.

## 구성 옵션
<a name="extended-thinking-configuration"></a>

Amazon Nova 2에서는 추론을 활성화하기 위해 기존 Converse 요청 구조에 추가할 수 있는 새로운 `reasoningConfig` 파라미터를 도입합니다.

```
additionalModelRequestFields={
    "reasoningConfig": {
        "type": "enabled",  # or "disabled" (default)
        "maxReasoningEffort": "high"  # "low", "medium", or "high"
    }
}
```

**파라미터:**
+ **type:** `"enabled"` 및 `"disabled"` 사이에서 전환(기본값: `"disabled"`)
+ **`maxReasoningEffort`:** 활성화되면 추론 깊이 제어
+ **'low':** 다소 복잡한 태스크
+ **'medium':** 상당한 분석이 필요한 복잡한 문제
+ **'high':** 매우 복잡한 태스크에 대한 가장 철저한 추론

**참고**  
 `"high"`를 사용하는 경우 temp, topP 및 maxToken은 설정 해제해야 합니다. 이 모드에서 모델은 최상의 솔루션을 찾기 위해 심층 분석을 수행합니다. 이와 같이 보다 철저한 처리로 65k의 토큰을 초과하는 출력이 생성될 수 있습니다. 정확한 양은 요청의 복잡성에 따라 다르지만 일부 문제의 경우 최대 128k의 토큰이 생성되기도 합니다. 이를 통해 하면 잘린 결과가 아닌 완전한 고품질 추론을 얻을 수 있습니다.

## 지원되는 모델
<a name="extended-thinking-supported-models"></a>

확장된 사고는 현재 Amazon Nova 2 Lite(us.amazon.nova-2-lite-v1:0)에서 사용할 수 있음

## 도구 사용을 통한 확장된 사고
<a name="extended-thinking-with-tools"></a>

확장된 사고는 도구 직접 호출과 원활하게 작동하므로 Amazon Nova는 사용할 도구와 결과를 해석하는 방법을 추론할 수 있습니다.

## 추론 토큰 및 요금 이해
<a name="reasoning-tokens-pricing"></a>

### 토큰 유형
<a name="reasoning-token-types"></a>

확장된 사고 토큰은 출력 토큰으로 청구됩니다.
+ **입력 토큰**: 원래 요청 콘텐츠(표준 입력 요금) 
+ **출력 토큰**: 여기에는 추론 토큰과 최종 표시 응답 콘텐츠(표준 출력 요금 적용)가 포함됩니다.

### 사용량 분석
<a name="reasoning-usage-breakdown"></a>

세 가지 토큰 유형 모두 사용자의 사용량 지표 및 결제에 포함됩니다. 추론 토큰은 출력 토큰과 요금이 동일하며 모델 응답에 '삭제됨'으로 표시됩니다.”

```
  {
  "usage": {
    "inputTokens": 45,
    "outputTokens": 1240,
    "totalTokens": 1285
  }
}
```

## FAQ
<a name="reasoning-faq"></a>

Amazon Nova 2 Lite에서 모델의 사고 프로세스를 표시하는 대신 추론 콘텐츠에 대해 '삭제됨'을 표시하는 이유는 무엇인가요?  
 이번 출시의 주요 초점은 Nova 2가 태스크에 대해 동급 최고의 인텔리전스를 제공하도록 하는 것이며, 향상된 정확도에 잘 반영됩니다.  
 추론 프로세스에 대한 가시성이 중요하다는 점을 알고 있으며, 모델이 문제를 어떻게 생각하는지 이해하는 데 고객의 큰 관심을 끌었습니다.  
 현재 이 기능을 곧 제공하기 위한 방법을 살펴보고 있습니다.  
추론 토큰은 출력 품질을 개선하는 실제 작업을 나타내므로 **여전히 추론 토큰에 대한 요금이 청구됩니다.**  
응답 토큰과 함께 `outputTokens`에 캡처됩니다.

추론이 삭제되면 확장된 사고가 작동하는지 어떻게 알 수 있나요?  
응답에서 출력에 `reasoningContent` 블록(추론이 활성화된 경우에만 표시됨)이 있는지 확인하여 확장된 사고가 작동하는지 확인할 수 있습니다.