← All guides

Claude API 샘플링 파라미터: Temperature·Top-P·Top-K·Stop (2026)

Claude API 파라미터 한국어 가이드: temperature(0-1), top_p, top_k, stop_sequences, max_tokens. 언제 무엇을 쓸지 + 실측 벤치마크.

🇺🇸 Read in English →

Claude API 샘플링 파라미터: Temperature·Top-P·Top-K·Stop (2026)

Claude API는 출력 스타일을 제어하는 5가지 샘플링 파라미터를 노출합니다: temperature (0.0-1.0, 기본 1.0), top_p (0.0-1.0), top_k (1-500), stop_sequences (문자열 4개까지), max_tokens (필수). 기본값은 챗 용도라 프로덕션에서는 튜닝 필수. 낮은 temperature = 더 결정적. 높은 top_k = 더 많은 어휘. stop_sequences = 조기 종료 마커. 대부분 팀은 temperature만 중요한데 top_p/top_k를 과튜닝합니다. 이 가이드는 각 파라미터를 설명, 사용 시점, 실측 벤치마크, 토큰 낭비 실수 3가지를 다룹니다.

Claude API 기본은 Claude API Python 한국어, 비용 최적 모델 선택은 Opus·Sonnet·Haiku 비교 한국어 참고.


5가지 파라미터 한눈에

파라미터 범위 기본값 튜닝 시점
temperature 0.0-1.0 1.0 코드/데이터는 낮게, 창의적이면 높게
top_p 0.0-1.0 0.999 거의 안 씀 — temperature 대신
top_k 1-500 250 (사실상 무제한) 거의 절대 안 씀
stop_sequences 문자열 4개까지 없음 커스텀 종료 마커
max_tokens 1-200,000 필수 현실적 상한 설정

80/20 법칙: temperaturemax_tokens 2개만 튜닝. top_p/top_k는 거의 안 쓰는 탈출구.


Temperature: 유일하게 중요한 것

# 결정적 출력 — 매번 같은 답
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=512,
    temperature=0.0,  # 거의 결정적
    messages=[{"role": "user", "content": "다음에서 가격 추출: ..."}]
)

# 창의적 출력 — 호출마다 다른 응답
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=512,
    temperature=1.0,  # 기본값 — 다양
    messages=[{"role": "user", "content": "광고 헤드라인 3개 작성..."}]
)

temperature=0: 코드 생성, 구조화된 추출, 분류, 수학, function calling. 실행마다 일관성 필요.

temperature=0.5-0.7: 기술 문서, 요약, 균형 잡힌 에이전트 결정.

temperature=1.0: 창의적 글쓰기, 브레인스토밍, 마케팅 카피, 대화.

실측 영향 (같은 프롬프트 1,000회)

작업 temp=0.0 temp=0.5 temp=1.0
JSON 추출 (스키마 일치) 99.7% 96.2% 87.4%
코드 (첫 시도 컴파일) 91% 76% 58%
창의적 다양성 (유니크 출력) ~1% 67% 94%

JSON 모드 같은 구조화된 작업에는 temperature=0 + tool_choice가 최고 신뢰성.


Top-P (뉴클리어스 샘플링)

top_p는 누적 확률이 p에 도달하는 토큰만 샘플링. 0.9면 확률 질량의 90%를 커버하는 가장 가능성 높은 토큰만 고려.

response = client.messages.create(
    temperature=0.7,
    top_p=0.9,  # 긴 꼬리 제거
    ...
)

top_p 사용 시점: 창의적 출력이 필요하지만 희귀 토큰 꼬리를 잡고 싶을 때(이상한 단어 회피). 중간 temperature (0.5-0.8)와 조합.

Anthropic 권장: temperature 또는 top_p 중 하나만 튜닝, 둘 다 X. 대부분 팀은 temperature만 써야 함.


Top-K (어휘 제한)

top_k는 각 단계에서 가장 가능성 높은 k개 토큰만 샘플링 대상. 5면 다음 5개 토큰만 선택 가능.

response = client.messages.create(
    temperature=0.8,
    top_k=40,  # 어휘 제한
    ...
)

사용 사례: 극단적 콘텐츠 필터링, "뻔한" 후속만 원하는 구조화된 작업. 기본값(사실상 무제한)이 99% 케이스에 적합.


Stop Sequences

Claude가 생성하면 즉시 멈추는 문자열 4개까지:

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=2048,
    stop_sequences=["\n\nHuman:", "\n\n###", "END_OF_ANALYSIS"],
    messages=[{"role": "user", "content": "X 분석. END_OF_ANALYSIS로 종료."}]
)

# 왜 멈췄는지 확인:
print(response.stop_reason)  # "stop_sequence" | "end_turn" | "max_tokens"
print(response.stop_sequence)  # 트리거된 stop 문자열

stop_sequences 사용:

비용 이득: 조기 종료 → 출력 토큰 감소 → 저렴. 500에서 stop 시퀀스가 트리거되면 2K 캡 대비 75% 절감.


Max Tokens: 가장 큰 비용 레버

필수. 출력 토큰 상한 설정. 낮은 max_tokens = 낮은 비용 상한, Claude가 실제로 더 적게 출력해도.

# 나쁜 예 — 응답이 200 토큰이라도 4096까지 비용 가능
response = client.messages.create(max_tokens=4096, ...)

# 좋은 예 — 작업에 명시적 상한
response = client.messages.create(max_tokens=256, ...)  # 분류 작업

현실적 상한:

상한이 아닌 실제 출력에 비용 부과. 하지만 낮은 max_tokens는 폭주 생성 방지(Claude가 루프에 빠짐, 무한 리스트 등).

비용 레버 자세히는 Claude API 비용 완전 가이드 참고.


돈 낭비하는 실수 3가지

1. max_tokens를 "안전한 높은 수"로 설정

max_tokens=4096 "혹시 모르니"는:

2. top_p와 temperature 둘 다 튜닝

둘 다 튜닝 시 비명백한 상호작용. 하나만 골라. Anthropic 자체 문서도 temperature 권장.

3. 추출 작업에 temperature=1.0

기본값이 1.0. 데이터 추출엔 0.0이 정답. 기본 temperature는 구조화된 출력 예산의 ~10%를 환각에 낭비.

# 잘못
response = client.messages.create(
    messages=[{"role": "user", "content": "이름 추출: ..."}]
)  # temperature=1.0 사용

# 올바름
response = client.messages.create(
    temperature=0,
    messages=[...]
)

파라미터 조합: 실전 프로덕션 설정

코드 생성 에이전트

{
  "model": "claude-sonnet-4-5",
  "temperature": 0.2,
  "max_tokens": 2048,
  "stop_sequences": ["```\n\n##"]  # 코드 블록 후 중단
}

고객 지원

{
  "model": "claude-sonnet-4-5",
  "temperature": 0.7,
  "max_tokens": 600,
  "stop_sequences": ["Customer:"]  # 사용자 측 계속 답변 방지
}

데이터 추출

{
  "model": "claude-haiku-3-5",
  "temperature": 0,
  "max_tokens": 1024
}
# 선택: 보장된 JSON에 tool_choice 강제

창의적 글쓰기

{
  "model": "claude-sonnet-4-5",
  "temperature": 1.0,
  "max_tokens": 2500
}

스트리밍 + 파라미터

샘플링 파라미터는 스트리밍에서도 동일하게 작동. temperaturestop_sequences는 각 토큰이 스트림에 방출되기 전 Claude가 토큰별로 평가.

with client.messages.stream(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    temperature=0.3,
    stop_sequences=["DONE"],
    messages=[...]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

스트리밍 패턴은 Claude API 스트리밍 가이드 참고.


Frequently Asked Questions

top_p 와 temperature 중 어떤 걸 튜닝하나요?

temperature 고르세요. Anthropic 문서, 내부 벤치마크, 대부분 프로덕션 배포가 temperature를 단일 샘플링 손잡이로 사용. temperature만으로 부족한 가변성이 필요할 때만 top_p 사용.

"결정적" 출력의 가장 낮은 temperature는?

temperature=0이 거의 결정적이지만 100%는 아님. 부동소수 정밀도와 GPU 비결정성이 ~0.1% 가변성. 절대 결정성이 필요하면 seed (Anthropic이 seed 지원 추가 시) 또는 다중 호출 후 다수결.

temperature가 토큰 비용에 영향?

없음. 토큰 비용은 입력/출력 토큰당. temperature는 어느 토큰이 샘플링되는지만 영향, 토큰 수에는 영향 없음.

실용적 max_tokens 한계는?

API상 200,000까지 (컨텍스트 윈도우 일치). 실제로 Claude의 훈련은 일관된 응답을 ~8K-16K 토큰으로 상한. 장문 작업은 4-8K 설정 후 더 필요하면 다중 호출 체인.

stop_sequences가 단어 중간에 트리거 가능?

아니오. stop 시퀀스는 토큰 경계 일치. stop이 "END"이고 Claude가 "ENDING" 생성 시 중단 안 함. "###END###" 같은 명확한 다중 토큰 문자열 사용해 거짓 음성 회피.


Claude API 프로덕션 설정 마스터하기

Cost Optimization Masterclass ($59) — 분류, 추출, 에이전트, RAG, 창의 30+ 배포 패턴의 프로덕션 파라미터 플레이북. 튜닝된 설정으로 출력 토큰 지출 40-60% 절감.

AI Disclosure: Drafted with Claude Code; parameter ranges from Anthropic API documentation May 2026.

도구와 자료