샘플링 제어: 온도와 그 친구들
- temperature, top-p, top-k, stop sequence가 실제로 다음 토큰 선택에 무엇을 하는지
- 언제 차갑게 vs 뜨겁게 실행할지를 위한 한눈에 보는 결정표
- 왜 temperature=0을 설정해도 동일한 출력이 보장되지 않는지
- 다이얼을 숨기는 최신 Claude 모델에서 샘플링을 어떻게 사고할지
모델이 텍스트를 생성할 때, 확률 분포에서 다음 토큰을 선택합니다. 샘플링 제어는 어떻게 선택하는지를 조율합니다 — 출력이 얼마나 집중되어 있는지 vs 얼마나 다양한지.
주요 다이얼
Guided walkthrough1 of 4
- 전체 분포를 스케일링합니다. 낮음(≈0) = 집중적, 거의 결정적, 반복 가능; 모델이 가장 가능성 높은 경로를 취합니다. 높음 = 더 다양하고 창의적이지만, 방황하거나 오류에 더 취약합니다.
- 확률의 합이 p가 되는 가장 작은 토큰 집합으로 선택을 제한합니다. 무작위성을 제한하는 다른 방법 — 분포가 얼마나 뾰족한지에 적응합니다.
- 가장 가능성 높은 k개 토큰만 고려합니다. top-p보다 무딘 도구; 매우 짧고 제약된 출력에 가끔 유용합니다.
- 생성되었을 때 즉시 응답을 종료시키는 문자열. 구분자 뒤에서 모델이 멈추기를 원하는 구조화된 출력에 편리합니다.
- temperature 또는 top-p 중 하나만 조정하고 둘 다 하지 마세요 — 상호작용하며 결합된 동작은 추론하기 어렵습니다.
- 기본적으로 top-k는 그대로 두세요. 대부분 방해가 되는 무거운 망치입니다.
- stop sequence는 구조화된 출력에 훌륭한 안전벨트입니다 — JSON 뒤에 남는 산문이 사라집니다.
언제 차갑게 vs 뜨겁게 실행할지
| 차갑게 실행 (낮은 temp) | 뜨겁게 실행 (높은 temp) |
|---|---|
| 추출, 분류, 코드 | 브레인스토밍, 이름, 창의적 카피 |
| 재현 가능성을 원하는 모든 것 | 다양한 옵션 탐색 |
| 사실 / 구조화된 출력 | 어조 다양성, 아이디에이션 |
| 채점 / LLM-as-judge | A/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에서도 출력은 실행, 모델 버전, 제공자 간에 비트 단위로 동일하다고 보장되지 않습니다. 이유:
- 서버 측의 배칭과 부동소수점 비결정성.
- 별칭 뒤의 조용한 모델 업데이트.
- 약간의 입력 차이 (떠도는 공백, 다른 토크나이저).
정확한 재현성에 의존하지 마세요. 중요할 때 드리프트를 잡기 위해 평가에 의존하세요.
흔한 실수
- 나쁜 출력을 고치려고 temperature를 올리기 — 수정은 거의 항상 샘플러가 아닌 프롬프트에 있습니다.
- top-p와 temperature를 섞기 — 하나의 다이얼을 고르고 다른 하나는 기본값에 두어 변경 사항을 추론할 수 있게 하세요.
- temp=0이 결정론적이라고 가정하기 — 그렇지 않습니다. 회귀를 감지하려면 동등성 검사가 아닌 평가를 사용하세요.
- 산문에 stop sequence 사용하기 — JSON 구분자에는 훌륭하지만, 모델이 정당하게 그 문자열을 생성할 수 있는 자유 형식 텍스트에는 어색합니다.
스스로 확인하기
Check yourself
0/4- Temperature가 주요 다이얼; top-p는 대안; top-k와 stop sequence는 상황에 따라 다름.
- 추출, 코드, 채점에는 차갑게; 브레인스토밍과 창의적 카피에는 뜨겁게.
- 한 번에 하나의 무작위성 다이얼을 조정하세요 — temperature 또는 top-p.
- Temp 0 ≠ 결정론적. 동작 드리프트를 잡기 위해 동등성이 아닌 평가에 의존하세요.
- 최신 Claude 모델에서는 프롬프트 + effort/thinking이 샘플링 다이얼을 대체합니다.