Claude를 위한 Anthropic "think" 도구
Anthropic은 Claude가 복잡한 작업을 수행하는 동안 구조화된 추론을 위한 전용 공간을 생성할 수 있게 해주는 "think" 도구를 도입했습니다. 이 도구는 Claude가 정책을 준수하고, 일관된 결정을 내리며, 최소한의 구현 오버헤드로 다단계 문제를 처리하는 능력을 크게 향상시킵니다.
"think" 도구 vs. Extended Thinking
목적은 비슷하지만, "think" 도구는 Claude의 "extended thinking" 기능과 구별됩니다. 주요 차이점은 추론이 발생하는 시점입니다:
- Extended Thinking: 모델이 응답 생성을 시작하기 전에 발생합니다. 이는 조치를 취하기 전에 계획에 대해 깊이 고민하고 반복하는 데 사용됩니다. 단순한 도구 사용(비순차적 호출), 명확한 지침 준수, 그리고 코딩, 수학, 물리학과 같은 작업에 권장됩니다.
- The "think" tool: 모델이 응답 생성을 시작한 후에 발생합니다. 이는 Claude가 진행을 위해 필요한 모든 정보가 있는지 평가하기 위해 멈출 수 있게 하여, 도구 호출을 통해 발견된 외부 정보를 처리하는 데 이상적입니다.
Anthropic은 복잡한 도구, 긴 도구 호출 체인, 정책 중심의 환경, 또는 각 단계가 이전 단계에 기반하는 순차적 결정이 필요한 시나리오에 "think" 도구 사용을 권장합니다.
성능 벤치마크
τ-Bench 결과
τ-bench는 현실적인 고객 서비스 시나리오에서 모델의 도구 사용 능력을 테스트합니다. Anthropic은 pass^k 메트릭을 사용하여 Claude 3.7 Sonnet을 평가했습니다. 이 메트릭은 k개의 독립적인 시도가 모두 성공할 확률을 측정하여 일관성과 신뢰성을 강조합니다.
- Airline Domain: "think" 도구와 최적화된 프롬프트의 조합은 baseline 대비 pass^1 점수를 0.584로 기록했습니다(baseline은 0.332). 이는 항공 도메인에서 54%의 상대적 향상을 나타냅니다.
- Retail Domain: "think" 도구만으로 baseline 대비 pass^1 점수를 0.812로 기록했습니다(baseline은 0.783). 소매 도메인의 정책이 항공 정책보다 단순하기 때문에, Claude는 추가적인 프롬프팅 없이도 성능이 향상되었습니다.
SWE-bench 결과
SWE-bench 설정에 "think" 도구를 통합하는 것은 Claude 3.7 Sonnet이 0.623이라는 최첨단(state-of-the-art) 점수를 달성하는 데 기여했습니다. 격리된 실험(n=30 도구 사용, n=144 미사용) 결과, "think" 도구는 성능을 평균 1.6% 향상시켰습니다(Welch's t-test: t(38.89) = 6.71, p < .001, d = 1.47).
구현 베스트 프랙티스
"think" 도구의 효과를 극대화하기 위해 Anthropic은 두 가지 주요 전략을 권장합니다:
- Strategic Prompting: 시스템 프롬프트에 명확한 지침과 도메인별 예시를 제공하십시오. 여기에는 예상되는 상세 수준, 복잡한 지침을 나누는 방법, 일반적인 시나리오에 대한 결정 트리, 정보 수집을 위한 검증 단계가 포함되어야 합니다.
- System Prompt Placement: 길거나 복잡한 가이드라인의 경우, 도구 설명 자체에 포함하는 것보다 시스템 프롬프트에 배치하는 것이 더 효과적입니다.
"think" 도구 사용 시기 (및 사용하지 않을 시기)
권장 사용 사례
- Tool Output Analysis: 모델이 도구 출력을 처리하고 잠재적으로 되돌아가는(backtrack) 작업이 필요한 경우.
- Policy-Heavy Environments: 엄격한 가이드라인 준수가 필요한 경우.
- Sequential Decision Making: 실수가 비용이 큰 다단계 도메인 작업.
권장하지 않는 사용 사례
- Non-sequential Tool Calls: 단일 또는 병렬 도구 호출만 필요한 작업.
- Simple Instruction Following: 기본 동작으로 충분한 제약 조건이 적은 작업.
기술적 구현
개발자는 표준 도구 사양을을 사용하여 "think" 도구를 구현할 수 있습니다. τ-Bench 기반의 샘플 구현은 다음과 같습니다:
{
"name": "think",
"description": "Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.",
"input_schema": {
"type": "object",
"properties": {
"thought": {
"type": "string",
"description": "A thought to think about."
}
},
"required": ["thought"]
}
}
Anthropic은 이러한 결과가 Claude 3.7 Sonnet에 집중되었지만, Claude 3.5 Sonnet (New)에서도 성능 향상이 관찰되었음을 언급하며, 이 기능이 모델 전반에 걸쳐 일반화될 수 있음을 나타냈습니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch