Temperature와 Top-p — AI의 창의성을 조절하는 다이얼

…

한줄 요약

Temperature는 AI의 모험심 조절기다. 낮으면 안전하고 예측 가능한 답, 높으면 다양하고 창의적인 답.

본문

같은 질문에 왜 매번 다른 답이 나올까

ChatGPT에 같은 질문을 두 번 하면 답이 다르다. 버그가 아니라 의도된 설계다.

LLM은 다음 토큰을 예측할 때 확률 분포를 계산한다.

"고혈압 치료의 1차 약제는 ___"

후보 토큰과 확률:
  "ARB"   → 35%
  "ACEi"  → 30%
  "CCB"   → 20%
  "이뇨제" → 10%
  "베타"   → 5%

이 확률 중에서 어떤 토큰을 선택할지를 결정하는 게 Temperature다.

Temperature 이해하기

Temperature동작비유
0항상 확률 가장 높은 토큰 선택교과서만 읽는 모범생
0.3높은 확률 위주, 가끔 변화신중한 전공의
0.7적당히 다양한 선택경험 많은 전문의 (기본값)
1.0확률 분포 그대로 샘플링자유로운 브레인스토밍
1.5+낮은 확률 토큰도 자주 선택취한 상태의 창작자

Temperature = 0일 때:

"고혈압 치료의 1차 약제는 ARB"  (항상 같은 답)

Temperature = 1.0일 때:

1회: "고혈압 치료의 1차 약제는 ARB"
2회: "고혈압 치료의 1차 약제는 CCB"
3회: "고혈압 치료의 1차 약제는 ACEi"
→ 매번 다르지만 모두 합리적

Temperature = 1.8일 때:

"고혈압 치료의 1차 약제는 비타민C"  (환각 위험 증가)

Top-p (Nucleus Sampling)

Temperature와 함께 쓰이는 또 다른 파라미터가 Top-p다.

Top-p = 0.9라면: 확률 상위 90%에 해당하는 토큰들만 후보로 삼는다.

확률 분포:
  ARB(35%) + ACEi(30%) + CCB(20%) = 85%  ← 여기까지 포함
  이뇨제(10%) → 누적 95% ← Top-p=0.9면 제외될 수도
  베타(5%) → 제외

Top-p가 낮을수록 “안전한” 답변, 높을수록 다양한 답변이 나온다.

의료에서 Temperature 설정 가이드

상황추천 Temperature추천 Top-p이유
약물 용량 확인01.0정확성 최우선, 변동 불필요
감별진단 목록0.30.9다양성 약간 필요, 정확성 중요
SOAP 노트 작성0.50.95자연스러운 문장 + 정확성
환자 교육 자료0.70.95읽기 좋은 자연스러운 문체
브레인스토밍0.91.0다양한 아이디어
블로그 글 작성0.80.95창의적이면서 일관된 문체

원칙: 정확성이 중요하면 낮게, 창의성이 중요하면 높게.

API에서 설정하는 법

ChatGPT Plus 사용자는 Temperature를 직접 설정할 수 없다 (기본값 사용). 하지만 API를 통해 사용하면 세밀한 조정이 가능하다.

# OpenAI API 예시
response = openai.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "고혈압 1차 약제는?"}],
    temperature=0,      # 정확성 최우선
    top_p=1.0,
)

# Claude API 예시
response = anthropic.messages.create(
    model="claude-3-5-sonnet",
    messages=[{"role": "user", "content": "고혈압 1차 약제는?"}],
    temperature=0,
)

Seed 파라미터 — 재현성 확보

연구 목적으로 “같은 질문에 항상 같은 답”이 필요하다면, seed 파라미터를 사용한다.

response = openai.chat.completions.create(
    model="gpt-4",
    messages=[...],
    temperature=0.7,
    seed=42,          # 같은 seed → 같은 결과
)

의학 연구에서 AI 분석의 재현성을 보장할 때 필수적이다.

자주 하는 실수

  1. “Temperature 0이면 무조건 정확하다”

아니다. Temperature 0은 “가장 확률이 높은 답”을 선택할 뿐이다. 학습 데이터가 틀리면 Temperature 0이어도 틀린다. 환각은 Temperature와 무관하게 발생한다.

  1. “Temperature를 높이면 더 똑똑해진다”

아니다. Temperature는 “다양성”을 조절하지, “지능”을 조절하지 않는다. 높이면 오히려 엉뚱한 답이 나올 확률이 올라간다.

  1. “Temperature와 Top-p를 동시에 낮추면 안전하다”

보통 둘 중 하나만 조정하는 것을 권장한다. 동시에 극단적으로 설정하면 답변이 지나치게 단조로워진다.

핵심 정리

  • Temperature = 답변의 다양성/예측 불가능성 조절 (02, 기본 0.71.0)
  • Top-p = 후보 토큰의 범위 조절 (01, 기본 0.91.0)
  • 의학 정보 → 낮은 Temperature, 창작/교육 자료 → 높은 Temperature
  • Temperature 0이어도 환각은 발생할 수 있다

임상 적용

작업Temperature코드/도구
약물 정보 질의0API 사용 시 직접 설정
진료 기록 작성0.3~0.5API 사용 시 직접 설정
교육 자료 생성0.7ChatGPT 기본값으로 충분
아이디어 발굴0.9~1.0”다양하게 5가지 제안해 줘” 프롬프트

관련 글