본문으로 건너뛰기

샘플링 제어: 온도와 그 친구들

중급
What you'll learn
  • temperature, top-p, top-k, stop sequence가 실제로 다음 토큰 선택에 무엇을 하는지
  • 언제 차갑게 vs 뜨겁게 실행할지를 위한 한눈에 보는 결정표
  • 왜 temperature=0을 설정해도 동일한 출력이 보장되지 않는지
  • 다이얼을 숨기는 최신 Claude 모델에서 샘플링을 어떻게 사고할지

모델이 텍스트를 생성할 때, 확률 분포에서 다음 토큰을 선택합니다. 샘플링 제어는 어떻게 선택하는지를 조율합니다 — 출력이 얼마나 집중되어 있는지 vs 얼마나 다양한지.

주요 다이얼​

Guided walkthrough1 of 4
  1. 전체 분포를 스케일링합니다. 낮음(≈0) = 집중적, 거의 결정적, 반복 가능; 모델이 가장 가능성 높은 경로를 취합니다. 높음 = 더 다양하고 창의적이지만, 방황하거나 오류에 더 취약합니다.
Pro tip
  • temperature 또는 top-p 중 하나만 조정하고 둘 다 하지 마세요 — 상호작용하며 결합된 동작은 추론하기 어렵습니다.
  • 기본적으로 top-k는 그대로 두세요. 대부분 방해가 되는 무거운 망치입니다.
  • stop sequence는 구조화된 출력에 훌륭한 안전벨트입니다 — JSON 뒤에 남는 산문이 사라집니다.

언제 차갑게 vs 뜨겁게 실행할지​

차갑게 실행 (낮은 temp)뜨겁게 실행 (높은 temp)
추출, 분류, 코드브레인스토밍, 이름, 창의적 카피
재현 가능성을 원하는 모든 것다양한 옵션 탐색
사실 / 구조화된 출력어조 다양성, 아이디에이션
채점 / LLM-as-judgeA/B 카피를 위한 아이디에이션

대부분의 작업에 좋은 기본값은 중간~낮음 (대략 0–0.4)입니다. 놀라움을 원할 때만 올리세요.

실제 예시​

같은 프롬프트, 세 가지 온도. 예시 패턴이며 벤치마크가 아닙니다:

Prompt

Give me one clever name for a productivity app that helps writers.
  • temp 0 → WordFlow 같은 안전하고 반복 가능한 선택. 다시 물으면 다시 WordFlow.
  • temp 0.5 → 여전히 일관성 있고, 실행마다 더 다양함: Draftly, Inkline, Composera.
  • temp 1.0 → 창의적이지만 잡음이 더 많음: Quillspark, Verbatimo, 가끔 리듬이 맞지 않는 이상한 단어.

교훈: 다양성이 작업의 목적인 곳에서만 temperature를 올리세요.

최신 Claude 모델은 이를 숨깁니다​

여러 최신 Claude 모델은 자체 디코딩을 적응시키고 temperature를 덜 강조합니다 (또는 생략). 다이얼이 사용 불가능하다면, 그것은 의도된 것입니다 — 대신 프롬프트와 (제공되는 경우) effort/thinking 설정을 통해 동작을 만드세요. 최신 모델에서는 프롬프트의 명확성과 역할 프레이밍이 샘플링 다이얼보다 더 많은 일을 합니다.

결정론적 주의사항​

temperature 0에서도 출력은 실행, 모델 버전, 제공자 간에 비트 단위로 동일하다고 보장되지 않습니다. 이유:

  • 서버 측의 배칭과 부동소수점 비결정성.
  • 별칭 뒤의 조용한 모델 업데이트.
  • 약간의 입력 차이 (떠도는 공백, 다른 토크나이저).

정확한 재현성에 의존하지 마세요. 중요할 때 드리프트를 잡기 위해 평가에 의존하세요.

흔한 실수​

Pro tip
  • 나쁜 출력을 고치려고 temperature를 올리기 — 수정은 거의 항상 샘플러가 아닌 프롬프트에 있습니다.
  • top-p와 temperature를 섞기 — 하나의 다이얼을 고르고 다른 하나는 기본값에 두어 변경 사항을 추론할 수 있게 하세요.
  • temp=0이 결정론적이라고 가정하기 — 그렇지 않습니다. 회귀를 감지하려면 동등성 검사가 아닌 평가를 사용하세요.
  • 산문에 stop sequence 사용하기 — JSON 구분자에는 훌륭하지만, 모델이 정당하게 그 문자열을 생성할 수 있는 자유 형식 텍스트에는 어색합니다.

스스로 확인하기​

Check yourself

0/4
  1. 송장에서 필드를 안정적으로 추출해야 합니다. 어떤 temperature 설정?
  2. 일반적으로 함께 조정하면 안 되는 다이얼 쌍은?
  3. temperature=0을 설정하고 두 실행에서 약간 다른 출력을 얻습니다. 가장 가능성 높은 원인은?
  4. temperature 다이얼이 노출되지 않은 최신 Claude 모델에서 동작을 어떻게 형성합니까?
Key takeaways
  • Temperature가 주요 다이얼; top-p는 대안; top-k와 stop sequence는 상황에 따라 다름.
  • 추출, 코드, 채점에는 차갑게; 브레인스토밍과 창의적 카피에는 뜨겁게.
  • 한 번에 하나의 무작위성 다이얼을 조정하세요 — temperature 또는 top-p.
  • Temp 0 ≠ 결정론적. 동작 드리프트를 잡기 위해 동등성이 아닌 평가에 의존하세요.
  • 최신 Claude 모델에서는 프롬프트 + effort/thinking이 샘플링 다이얼을 대체합니다.

다음​