
temperature는 텍스트 생성 모델의 출력 다양성을 조절하는 하이퍼파라미터야. 쉽게 말해, "모험을 얼마나 할지" 결정하는 스위치라고 생각하면 돼.
낮은 temperature (예: 0.2)
→ 결정적이고 보수적인 출력: 가장 가능성 높은 단어만 골라서 말함
→ 예측 가능하고 일관된 답변
높은 temperature (예: 0.8~1.0 이상)
→ 창의적이고 다양성 있는 출력: 덜 가능성 있는 단어도 선택될 수 있음
→ 의외성, 창의성, 심지어 일관성 저하도 발생할 수 있음
"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기..."
"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기 비가 내리기 시작했다. 고양이는 근처 나무 아래로 달려가 비를 피했다."
"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기 나뭇잎 사이에서 다람쥐가 튀어나와 고양이와 장난을 치기 시작했다."
"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기 하늘에서 커다란 물고기 풍선이 내려와 고양이 위에 앉았다. 고양이는 그것을 타고 구름 위로 올라갔다."
원하는 스타일에 따라 temperature 값을 조절
논리적 글쓰기, 정답 중심 → 0.0 ~ 0.3
자연스러운 대화체, 창작 스토리 → 0.6 ~ 0.8
예술적 창작, 시적 문장 → 0.9 이상
모델은 다음에 올 단어의 확률 분포를 계산
"고양이가 공원에서 산책을 하다가 갑자기" 다음에 나올 단어는?
모델은 이렇게 판단 가능
비가 (0.45)
달려갔다 (0.20)
춤을 (0.05)
외계인이 (0.01)
…(그 외 수많은 단어)
모델이 예측한 각 단어의 로짓 (logit) → 확률화 (softmax)
이때 softmax 계산 시, temperature가 개입
| 요소 | 설명 |
|---|---|
| 모델이 출력한 로짓 값 (비정규화된 점수) | |
| 온도(Temperature) 파라미터, 확률 분포의 **샤프함(Sharpness)**를 조절 | |
| 지수 함수. 점수를 양의 실수로 변환 | |
| 클래스 에 대한 예측 확률 |
T가 1.0이면 그대로
T가 < 1.0이면 → 확률 차이 극대화 → 고확률 단어만 선택됨
T가 > 1.0이면 → 확률 차이 완화 → 낮은 확률 단어도 뽑힐 가능성 증가
| Temperature | 효과 | 결과 스타일 |
|---|---|---|
| 낮음 (0.2) | 고확률 단어만 선택 | 정답 중심, 반복 가능성 높음 |
| 높음 (0.8~1.2) | 낮은 확률 단어도 종종 선택 | 창의적, 예측 불가, 가끔은 비논리적 |
즉, "기준"은 확률 분포를 얼마나 평평하게 만들지(=다양성 허용)에 있어.