OpenAI: temperature

calico·2025년 5월 22일

Artificial Intelligence

목록 보기
30/144

temperature 란?


temperature는 텍스트 생성 모델의 출력 다양성을 조절하는 하이퍼파라미터야. 쉽게 말해, "모험을 얼마나 할지" 결정하는 스위치라고 생각하면 돼.

  • 낮은 temperature (예: 0.2)

    결정적이고 보수적인 출력: 가장 가능성 높은 단어만 골라서 말함

    예측 가능하고 일관된 답변

  • 높은 temperature (예: 0.8~1.0 이상)

    창의적이고 다양성 있는 출력: 덜 가능성 있는 단어도 선택될 수 있음

    의외성, 창의성, 심지어 일관성 저하도 발생할 수 있음



📌 예시


  • 프롬프트

"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기..."

✅ Temperature = 0.2 (낮음, 안정적)

"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기 비가 내리기 시작했다. 고양이는 근처 나무 아래로 달려가 비를 피했다."

🔄 Temperature = 0.7 (중간, 균형감)

"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기 나뭇잎 사이에서 다람쥐가 튀어나와 고양이와 장난을 치기 시작했다."

🎨 Temperature = 1.0 (높음, 창의적)

"한 마리 고양이가 공원에서 산책하고 있었는데, 갑자기 하늘에서 커다란 물고기 풍선이 내려와 고양이 위에 앉았다. 고양이는 그것을 타고 구름 위로 올라갔다."


  • 원하는 스타일에 따라 temperature 값을 조절

    • 논리적 글쓰기, 정답 중심 → 0.0 ~ 0.3

    • 자연스러운 대화체, 창작 스토리 → 0.6 ~ 0.8

    • 예술적 창작, 시적 문장 → 0.9 이상



🔍 Temperature의 원리


모델은 다음에 올 단어의 확률 분포를 계산

"고양이가 공원에서 산책을 하다가 갑자기" 다음에 나올 단어는?

  • 모델은 이렇게 판단 가능

    • 비가 (0.45)

    • 달려갔다 (0.20)

    • 춤을 (0.05)

    • 외계인이 (0.01)

    • …(그 외 수많은 단어)

  • 이때 temperature는 이 확률 분포를 다음처럼 "조정"



수학적 설명


  1. 모델이 예측한 각 단어의 로짓 (logit) → 확률화 (softmax)

  2. 이때 softmax 계산 시, temperature가 개입


Pi=exp(logiti/T)jexp(logitj/T)P_i = \frac{\exp(logit_i / T)}{\sum_j \exp(logit_j / T)}

요소설명
logiti\text{logit}_i모델이 출력한 로짓 값 (비정규화된 점수)
TT온도(Temperature) 파라미터, 확률 분포의 **샤프함(Sharpness)**를 조절
exp()\exp \left( \cdot \right)지수 함수. 점수를 양의 실수로 변환
PiP_i클래스 ii에 대한 예측 확률



  • T가 1.0이면 그대로

  • T가 < 1.0이면 → 확률 차이 극대화고확률 단어만 선택됨

  • T가 > 1.0이면 → 확률 차이 완화낮은 확률 단어도 뽑힐 가능성 증가



요약


Temperature효과결과 스타일
낮음 (0.2)고확률 단어만 선택정답 중심, 반복 가능성 높음
높음 (0.8~1.2)낮은 확률 단어도 종종 선택창의적, 예측 불가, 가끔은 비논리적

  • 즉, "기준"은 확률 분포를 얼마나 평평하게 만들지(=다양성 허용)에 있어.

    • temperature가 높을수록 모델은 더 많은 단어를 "가능성 있는 후보"로 간주하게 돼.



profile
https://velog.io/@corone_hi/posts

0개의 댓글