⚡ 중급2026-04-176분
temperature와 top_p, 언제 얼마로 설정하나
0.0은 결정적, 1.0은 창의적 — 이 요약은 틀렸다. 작업별 권장값과 top_p와의 관계.
apiparameters
잘못된 통념
"temperature 1이 창의적이고 0이 정확하다"는 반만 맞는 말이다. temperature는 확률 분포를 얼마나 평탄화하느냐의 파라미터지 창의성 다이얼이 아니다.
작업별 권장값
| 작업 | temperature | 이유 | |------|------------|------| | 분류/추출 | 0.0 | 같은 입력 → 같은 출력 | | 요약 | 0.3 | 약간의 여유, 일관성 유지 | | 코드 생성 | 0.2~0.5 | 관용구 재사용 vs 창의성 균형 | | 글쓰기 초안 | 0.7~1.0 | 표현 다양성 | | 브레인스토밍 | 1.0+ | 발산이 목적 |
top_p와의 관계
- temperature만 쓰거나, top_p만 쓰거나. 둘 다 건드리면 상호작용이 예측 불가.
- Anthropic 공식 권장: temperature를 먼저 튜닝, 필요할 때만 top_p 조정
- top_p = 0.9는 "상위 90% 확률 질량에서만 샘플링" → 꼬리의 이상한 단어 제거
// 분류 작업: 결정적
await client.messages.create({
model: "claude-haiku-4-5",
temperature: 0,
max_tokens: 50,
messages: [/* ... */],
})
// 카피 초안: 다양성 원함
await client.messages.create({
model: "claude-sonnet-4-6",
temperature: 0.9,
max_tokens: 800,
messages: [/* ... */],
})
디버깅 팁
- 같은 프롬프트가 매번 다르게 나오면 → temperature 낮춰라
- 결과가 너무 뻔하고 템플릿 같으면 → temperature 올리거나 예시를 더 다양화
- temperature 0인데도 조금씩 다르다? → Claude는 완전 결정적이지 않다. seed는 보장하지 않는다
체크리스트
- [ ] 작업 유형에 맞는 값인가
- [ ] temp과 top_p 둘 다 건드리지 않았나
- [ ] 프로덕션 분류에선 0으로 고정
- [ ] A/B로 0.3 vs 0.7 비교해봤나