LLM이 다음 단어를 고를 때 1등 후보만 고집할지, 다른 후보에도 기회를 줄지 정하는 설정값으로, 낮추면 매번 비슷한 답이, 높이면 다양한 답이 나온다. 분류·추출·코드처럼 정답이 정해진 작업은 낮게, 아이디어를 여러 개 뽑을 때는 높게 둔다.
| 온도 | 답의 성격 | 이럴 때 쓴다 |
|---|---|---|
| 0에 가까움 | 거의 늘 1등 후보만 고른다 | 분류, 정보 추출, 코드 생성 |
| 1 (기본값) | 모델이 계산한 확률 그대로 | 일반 대화 |
| 1보다 높음 | 후보가 고르게 뽑힌다 | 브레인스토밍, 문구 후보 여러 개 |
같은 질문에 챗봇의 답이 매번 조금씩 다른 것도 이 확률적 뽑기 때문이다.
"아침에 마시는" 다음에 올 단어의 확률이 아래처럼 나왔다고 하자. 온도를 낮추면 1등이 압도적이 되고, 높이면 후보 사이 차이가 줄어든다.
| 후보 | 온도 0.5 | 온도 1 | 온도 2 |
|---|---|---|---|
| 커피 | 78% | 60% | 47% |
| 차 | 20% | 30% | 33% |
| 주스 | 2% | 10% | 19% |
옆에 자주 보이는 top_p와 top_k는 확률이 낮은 엉뚱한 후보를 아예 잘라내는 설정이다. 둘 다 결과를 흔드는 장치라서 온도와 top-p 중 하나만 조정하는 것이 일반적인 권장이다.
요청에 temperature 값을 넣는다. 받는 범위는 서비스마다 다르다.
| API | 범위 | 기본값 |
|---|---|---|
| OpenAI Chat Completions | 0~2 | 1 |
| Anthropic API | 0~1 | 1 |
문서에서 날짜·금액을 뽑아 JSON으로 만들거나 문의를 분류할 때는 0.2 안팎으로 낮춘다. 상품 소개 문구를 열 개 뽑을 때는 0.8~1로 올리고, OpenAI의 n 파라미터로 한 번에 여러 후보를 받아 비교하면 된다. 같은 문제를 여러 번 풀게 한 뒤 다수결로 답을 고를 때도 일부러 온도를 높인다.
온도를 낮추면 모델이 가장 그럴듯하다고 믿는 답을 더 자주 고를 뿐이다. 그 믿음이 틀렸다면 틀린 답을 더 일관되게 반복한다. 사실 정확도는 RAG로 근거를 넣어 주거나 출력을 검증하는 단계에서 챙겨야 한다.
온도 0도 매번 같은 답을 보장하지 않는다. 서버가 여러 요청을 묶어 처리하면서 계산 순서가 조금씩 바뀌기 때문이다. LLM 기능을 테스트할 때는 출력 문장을 그대로 비교하지 말고 형식과 핵심 값만 검사한다.
OpenAI의 o 시리즈와 GPT-5 계열 추론 모델 대부분은 기본값이 아닌 temperature를 넣으면 오류를 낸다. Anthropic도 Claude Opus 4.6 이후 모델부터 온도·top-p·top-k 조정을 지원하지 않는다. 이런 모델은 추론 강도(effort) 설정, 분명한 지시, 구조화된 출력으로 결과를 다듬는다. vLLM이나 Ollama로 오픈 웨이트 모델을 직접 돌린다면 온도는 여전히 출력 품질을 좌우하는 핵심 설정이다.
실제로는 작업 성격에 맞춰 온도를 한 번 정해 두고 쓰는 경우가 대부분이다. 답이 흔들리면 안 되는 자동화는 낮게, 사람이 여러 안 중에서 고르는 작업은 높게 둔다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 데이터 추출·분류 자동화 | 0~0.2로 낮춰 JSON 형식과 분류 결과가 요청마다 흔들리지 않게 한다 |
| 카피·글쓰기 도우미 | 0.8~1로 올리고 후보를 여러 개 받아 사람이 고른다 |
| 여러 번 풀고 다수결 | 온도를 일부러 높여 서로 다른 풀이를 받은 뒤 가장 많이 나온 답을 고른다 |
| 로컬 오픈 웨이트 모델 | Ollama·vLLM 설정에서 모델 제작사가 권장하는 값부터 시작해 결과를 보며 조정한다 |