← 문제 목록/Nucleus (Top-p) Sampling + Temperature [medium]
문제 해설

Nucleus (Top-p) Sampling + Temperature [medium]

신경망 · medium

preview

Nucleus (Top-p) Sampling [medium]

v1 temperature softmax 는 전체 어휘에 확률을 부여. LLM 생성 실무에선 top-p (nucleus) sampling (Holtzman et al. 2020) 이 표준 — 누적 확률이 pp 를 넘는 가장 작은 토큰 집합만 남기고 나머지는 0.

알고리즘

  1. z=logits/Tz = \text{logits} / T
  2. probs=softmax(z)\text{probs} = \text{softmax}(z)
  3. 확률을 내림차순으로 정렬.
  4. 누적합 p\leq p 까지 → 거기에 하나 더 포함 (cumsum 이 처음 p\geq p 가 되는 인덱스까지 유지).
  5. 나머지 토큰 → 0.
  6. 남은 확률 합으로 재정규화 (합 = 1).

왜 이게 중요한가

  • Greedy/top-k 의 단점 보완: 어휘 크기를 확률에 맞춰 동적으로 조절.
  • p=0.9p=0.9: top 90% 에 있는 토큰만 고려 → 꼬리 노이즈 제거.
  • 온도와 조합: TT \uparrow → 분포 넓어짐 → nucleus 크기 커짐.

과제

함수 nucleus_probs(logits, p=0.9, T=1.0) 를 완성하세요.

  • logits shape (V,).
  • 반환 shape (V,), 합 = 1, 유지되지 않는 토큰은 정확히 0.

테스트 케이스

#이름검증
1합 = 1재정규화 확인
2모든 값 ≥ 0
3p=1.0 → 모든 토큰 유지softmax 와 동일
4p 매우 작음 → argmax one-hot
5제외된 토큰 = 정확히 0strict 0
6p 단조: p↑ → nonzero 개수 ≥
7T 효과: T↑ → nucleus 커짐
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.