temperature와 top-p(또는 nucleus sampling)는 자연어 생성 모델이 출력할 단어를 선택할 때의 랜덤성 조절 파라미터입니다. 두 개념은 유사한 역할을 하지만 작동 방식이 다릅니다. 아래에 각 개념에 대한 자세한 설명과 예제를 제공하겠습니다.
🔥 Temperature: “선택의 확률을 부드럽게 조정”
개념
temperature는 모델이 다음 단어를 선택할 때의 확률 분포를 얼마나 평탄하게 만들지를 결정합니다.- 기본값은
1.0이며, 이 값을 낮추면 더 결정론적(deterministic), **높이면 더 창의적(random)**이 됩니다.
작동 방식
-
모델이 생성 가능한 단어에 대해 logit(점수)을 부여한 후 softmax 함수를 통해 확률을 만듭니다.
-
이때 softmax에 들어가기 전 logit을
temperature로 나눕니다.- 낮은
temperature→ 큰 logit 격차 → 확률이 한쪽으로 치우침 → 정해진 단어만 출력 - 높은
temperature→ logit 격차 축소 → 확률 분산 → 다양한 단어 가능성
- 낮은
값에 따른 특성
| Temperature 값 | 생성 특성 |
|---|---|
| 0.1 ~ 0.3 | 매우 보수적, 반복적일 수 있음 |
| 0.7 | 일반적으로 적절한 창의성 |
| 1.0 | 균형 있는 창의성 |
| > 1.0 | 매우 창의적, 논리 무너질 수 있음 |
예제
입력 문장: “AI is going to”
temperature = 0.2: “AI is going to change the world.”temperature = 1.0: “AI is going to reshape the way humans interact with machines.”temperature = 1.5: “AI is going to dance in the digital symphony of consciousness.”
🎯 Top-p (Nucleus Sampling): “확률 누적값 기반으로 자르기”
개념
- 모델이 예측한 다음 단어 후보들 중 상위 누적 확률이
p이하인 단어들만 후보로 사용하고, 이 중 하나를 샘플링합니다. - 즉, 전체 단어 중 일부만 남기고 나머지는 잘라내는 방식입니다.
작동 방식
- 예측된 단어들의 확률을 내림차순 정렬 → 누적 확률이
p를 넘기 전까지 단어들을 모음 → 이 집합 안에서 랜덤 선택
값에 따른 특성
| Top-p 값 | 생성 특성 |
|---|---|
| 0.1 | 상위 10% 단어만 선택 → 보수적 |
| 0.8 | 확률 분포 상위 80% 단어 → 창의적 |
| 1.0 | 전체 단어 사용 (즉, greedy sampling) |
예제
top-p = 0.1: “AI is going to revolutionize technology.”top-p = 0.9: “AI is going to learn, adapt, and even imagine possibilities.”
🎛️ Temperature vs Top-P
| 항목 | Temperature | Top-P |
|---|---|---|
| 방식 | 확률 분포 전체에 영향 | 누적 확률 기준 상위 n% 단어만 사용 |
| 조정 효과 | 전체 분포를 부드럽게 만들거나 날카롭게 만듦 | 샘플링 후보의 범위를 잘라냄 |
| 일반적인 사용 | 0.7 ~ 1.0 |
0.8 ~ 0.95 |
| 같이 사용할 수 있나? | ✔️ 둘 다 조합 가능 |
🧠 실전 팁
- 둘 다 높이면 → 더 창의적이고 예측 불가능한 결과
- 둘 다 낮추면 → 더 보수적이고 일관성 있는 결과
- 일반적으로
temperature = 0.7,top-p = 0.9조합이 균형이 좋음