
90번 Softmax with Temperature 는 전체 분포의 모양만 조절. LLM 샘플링에서는 하위 확률의 긴 꼬리 를 잘라내 엉뚱한 단어가 튀지 않게 하려고 top-k filtering 을 씁니다:
함수 top_k_softmax-v1(x, k) 를 완성하세요.
x 1D 로짓 배열, 정수 k.idx = np.argsort(-x)[:k]
mask = np.zeros_like(x, dtype=bool); mask[idx] = True
x_safe = np.where(mask, x, -np.inf)
e = np.exp(x_safe - x_safe.max())
return e / e.sum()
| # | 이름 | 검증 |
|---|---|---|
| 1 | 합 = 1 | |
| 2 | 하위 원소 = 0 | 정확히 k 개만 >0 |
| 3 | k >= len(x) → 일반 softmax-v1 | |
| 4 | k=1 → one-hot argmax | |
| 5 | 상위 k 확률 합 = 1 |
코드를 작성하고 Run 을 눌러보세요.