---
title: "Top-k sampling (KO)"
source: "https://systems-analysis.info/int/Top-k_sampling_(KO)"
wiki: "systems-analysis.info/int"
article: "Top-k_sampling_(KO)"
language: "ko"
categories:
  - "Category:Core LLM concepts"
  - "Category:Korean"
  - "Category:Large language models"
  - "Category:Machine learning"
revision_id: 8192
wiki_created_at: 2026-09-07T01:13:39Z
wiki_modified_at: 2026-09-07T01:13:39Z
downloaded_at: 2026-09-07T23:23:51Z
---

# Top-k sampling (KO)

**Top-k 샘플링**은 텍스트 생성을 위해 자기회귀 언어 모델(대형 언어 모델(LLM) 포함)에서 사용되는 확률적 디코딩 방법입니다. 이 방법의 주요 목적은 다음 token 선택을 고정된 수($k$)의 가장 가능성 높은 후보로 제한하여 확률이 낮고 종종 부적절한 단어가 생성되는 것을 방지하는 것입니다. 이 방법은 단순 무작위 샘플링의 초기 개선책 중 하나였으며, 오랫동안 생성 텍스트의 일관성을 향상시키는 인기 있는 방법이었습니다.

## 간단한 설명

Top-k 샘플링은 다음 단어를 **모든** 가능한 선택지가 아니라 **가장 가능성 높은 제한된 목록**에서만 고르는 것으로 이해할 수 있습니다.

예를 들어, 모델이 "오늘 거리에는 강한…"이라는 문장을 이어 쓴다고 가정합니다. 모델의 어휘에는 수천 가지 이어지는 단어가 있습니다: "비", "바람", "눈", "폭우" — 그리고 어딘가 멀리 "양자" 또는 무작위 기호도 있습니다. 제한 없이는 텍스트 생성이 다양한 형태의 **퇴화**(text degeneration)에 취약합니다. 최대화 방법(탐욕적 디코딩, beam search)은 지루하고 반복적인 텍스트를 생성하는 반면, 잘라내기 없는 순수 샘플링은 분포의 "신뢰할 수 없는 꼬리"에서 확률이 낮은 token을 선택하여 비일관적인 내용을 생성할 위험이 있습니다. Top-k는 주로 두 번째 문제를 해결합니다. 꼬리를 잘라냄으로써 의미 없는 이어지는 내용의 위험을 줄이지만, 반복성 자체를 제거하지는 않습니다. Top-k는 이렇게 말합니다: "가장 가능성 높은 $k$개의 단어만 취하고, 나머지는 잊어버리고, 그 중에서 확률을 재계산한 다음 무작위로 하나를 선택하라".

간단히 말해:

- 모델이 가장 가능성 높은 이어지는 단어들의 목록을 작성하고;
- 처음 $k$개의 선택지만 취하며;
- 그 중에서 무작위로 하나를 선택합니다.

$k$가 작을수록 결과는 더 신중하고 예측 가능합니다. $k$가 클수록 생성이 더 자유롭고 다양해집니다.

**비유:**

- **레스토랑 메뉴:** 5,000가지 항목 중 무작위로 선택(먹을 수 없는 것을 받을 위험)하거나 항상 가장 인기 있는 한 가지 요리(지루함)를 선택하는 대신, 웨이터가 추천 40가지 요리만 가져옵니다 — 합리적인 목록에서 선택하세요. 물론, 때로는 잘라낸 메뉴 부분에 마음에 들었을 특별한 요리가 있을 수도 있습니다 — 이것이 예측 가능성의 대가입니다.
- **최종 후보 단기 목록:** 1,000명의 입사 지원자 중 40개의 최고 이력서를 추려낸 다음 면접을 진행합니다.

## 개념과 수학

텍스트 생성의 각 단계에서 표준 언어 모델은 전체 어휘 $V$에 대한 확률 분포 $P(x|x_{1:i - 1})$를 출력합니다. Top-k 샘플링은 이 과정을 다음과 같이 수정합니다:

- **후보 선택:** 전체 어휘에서 가장 높은 확률을 가진 $k$개의 token으로 구성된 부분 집합 $V^{(k)}$이 선택됩니다.
- **잘라내기:** $V^{(k)}$에 포함되지 않은 모든 token의 로짓(Softmax 적용 전 모델의 원시 예측값)에는 $- \infty$ 값이 할당되어, 정규화 후 확률이 정확히 0이 됩니다.
- **재분배(정규화):** 나머지 $k$개 token의 확률이 새로운 합계가 1이 되도록 조정됩니다.
- **샘플링:** 다음 token이 이 새로운 잘라낸 분포에서 무작위로 선택됩니다.

따라서 Top-k는 후보 수에 대한 **엄격한 임계값**을 도입합니다: 확률 순위가 $k$ 이하인 단어는 절대 선택되지 않습니다.

### 매개변수 $k$의 영향

- **작은 $k$ (예: $k = 5$ – $10$):** 생성을 더 **보수적**이고 **예측 가능**하게 만듭니다. 모델은 매우 제한된 가장 가능성 높은 단어 집합에서만 선택합니다. 이는 일관성을 높이지만 반복적이고 지루한 텍스트로 이어질 수 있습니다.
- **큰 $k$ (예: $k = 50$ – $100$):** 더 많은 선택지가 샘플링에 포함되므로 텍스트의 **다양성**과 **창의성**이 증가합니다. 그러나 이는 관련성이 낮거나 부적절한 token이 포함될 위험도 높입니다.
- **경계 경우:**
  - **$k = 1$:** **탐욕적 디코딩(greedy decoding)**과 동일합니다. 모델은 항상 가장 가능성 높은 token을 선택합니다.
  - **$k$ = 어휘 크기:** 잘라내기 없이 전체 분포에서 표준 샘플링과 동일합니다.

## 역사적 의의

디코딩 방법으로서의 Top-k 샘플링은 Angela Fan과 동료들(2018)의 논문 "Hierarchical Neural Story Generation"에서 초기에 성공적으로 적용된 방법 중 하나였습니다. 저자들은 계층적 이야기 생성 시스템에서 top-k random sampling($k = 10$ 사용)을 활용하여, 이 전략이 beam search와 확률이 낮은 단어를 포함할 위험이 있는 완전한 무작위 샘플링보다 훨씬 효과적임을 보여주었습니다.

그러나 **텍스트 퇴화** 문제를 체계적으로 분석하고 top-k를 포함한 truncation 방법이 생성 품질을 크게 향상시킨다는 것을 보여준 핵심 논문은 Holtzman et al. (2019)의 "The Curious Case of Neural Text Degeneration"이었습니다. 이 논문에서 저자들은 자체 HUSE 메트릭에 따르면 nucleus sampling이 비교된 전략 중 더 나은 결과를 제공한다는 것을 보여주면서, top-k에 대한 더 적응적인 대안으로 **top-p (nucleus sampling)**을 제안했습니다.

예를 들어, GPT-2의 초기 데모와 권장 사항에서는 \`top_k=40\` 값이 널리 사용되었으며(OpenAI 코드에서 "generally a good value"로 언급됨), 이는 길고 일관성 있는 텍스트를 생성하는 데 도움이 되었습니다.

## 다른 디코딩 방법과의 비교

### Top-k vs. Top-p

Top-k는 많은 부분에서 보완되었으며, 일부 작업에서는 더 발전된 방법인 **Top-p (nucleus) 샘플링**으로 대체되었습니다.

- **Top-k의 주요 단점은 비적응성입니다.** 고정된 $k$ 값은 확률 분포의 형태를 고려하지 않습니다:
  - 분포가 **뾰족할** 때(모델이 몇 가지 token에 대해 확신이 있을 때), Top-k는 확률이 낮은 후보를 포함하여 샘플링을 인위적으로 확장할 수 있습니다.
  - 분포가 **평평할** 때(모델이 확신이 없고 많은 token이 유사한 확률을 가질 때), Top-k는 많은 적절한 선택지를 조기에 잘라낼 수 있습니다.
  - 또한 Top-k는 분포의 "꼬리"를 엄격하게 잘라내어(tail truncation), 문맥상 적절하지만 드문 token이 손실될 수 있습니다 — 이 방법은 연결성을 위해 잠재적인 창의성을 희생합니다.
- **Top-p**는 반대로, 누적 확률을 기반으로 token을 선택하여 샘플링 크기를 **동적으로 적응**시킵니다. 이를 통해 더 유연하고 신뢰할 수 있습니다.
- 실제로 두 방법은 순차적 필터로 **함께** 사용되는 경우가 많습니다: 하나는 후보 수를 대략적으로 제한하고, 다른 하나는 모델의 확신에 따라 샘플링을 동적으로 좁힙니다. 적용 순서는 특정 프레임워크의 구현에 따라 다릅니다.

### Top-k vs. 온도

- **온도**는 전체 확률 분포의 형태를 변경하지만 token을 잘라내지는 않습니다. 모든 후보의 상대적 확률에 영향을 미칩니다.
- **Top-k**는 상위 $k$ 밖의 token을 완전히 제외하는 **엄격한 잘라내기**를 도입합니다.

실제로 Top-k는 온도 및 Top-p와 함께 사용할 수 있습니다. 필터 적용 순서는 프레임워크에 따라 다릅니다: 예를 들어, Hugging Face Transformers에서 파이프라인은 **온도 → Top-k → Top-p**로 구성됩니다. 즉, 온도가 먼저 로짓($l^{\prime} = l/\tau$)을 조정하고, 그다음 Top-k가 불필요한 token의 긴 "꼬리"를 잘라내며, 그 후 Top-p가 모델의 확신에 따라 샘플링을 동적으로 좁힙니다. 이때 설정에 따라 개별 단계가 건너뛰어질 수 있습니다: $top\_ k = 0$이면 Top-k 단계가 적용되지 않고, $top\_ p = 1.0$이면 Top-p 단계가 적용되지 않습니다.

## 실제 적용

Top-p가 더 적응적인 방법이며 개방형 텍스트 생성의 기본값으로 자주 사용되지만, 보편적으로 최선인 디코딩 방법은 존재하지 않습니다 — 최적의 선택은 작업, 모델, 우선순위(품질, 속도, 안정성)에 따라 다릅니다. Top-k는 모든 주요 프레임워크(Hugging Face Transformers, vLLM 등)에서 널리 지원되는 매개변수로 남아 있으며, 단독으로 또는 다른 방법과 결합하여 활발히 사용됩니다.

- **일반적인 값:** 실제로 $k$는 수십 개의 token 정도(예: 10, 40, 50)가 자주 사용되지만, 최적값은 모델과 작업에 따라 다릅니다.
- **권장 사항:** 개방형 텍스트 생성에는 Top-p를 선호하는 경우가 많습니다. Top-k를 사용하는 경우, 적절한 온도와 함께 사용하고 특정 작업에 맞게 $k$ 값을 신중하게 선택해야 합니다. Top-k는 높은 온도에서 추가적인 "안전 장치"로도 유용합니다.
- **참고:** 프레임워크에서 Top-k는 모델이 상위 $k$ 목록의 같은 단어에 반복적으로 고착되는 것을 방지하기 위해 **Repetition Penalty**(반복 패널티) 및 `no_repeat_ngram_size` 매개변수와 결합할 수 있습니다.

## 참고 문헌

### 기초 연구

- Fan, A. et al. (2018). *Hierarchical Neural Story Generation*. ACL Anthology. arXiv:1805.04833.
- Holtzman, A. et al. (2019). *The Curious Case of Neural Text Degeneration*. arXiv:1904.09751 (ICLR 2020).
- Finlayson, M. et al. (2024). *Closing the Curious Case of Neural Text Degeneration*. OpenReview:dONpC9GL1o (ICLR 2024).

### 추가 읽기

- Meister, C. et al. (2022). *Locally Typical Sampling*. arXiv:2202.00666 (TACL 2023).
- Su, Y.; Lan, T.; Wang, Y.; Yogatama, D.; Kong, L.; Collier, N. (2022). *A Contrastive Framework for Neural Text Generation*. arXiv:2202.06417 (NeurIPS 2022).
- O'Brien, S.; Lewis, M. (2023). *Contrastive Decoding Improves Reasoning in Large Language Models*. arXiv:2309.09117.
- Shi, C. et al. (2024). *A Thorough Examination of Decoding Methods in the Era of Large Language Models*. ACL Anthology. arXiv:2402.06925.
- Ravfogel, S.; Goldberg, Y.; Goldberger, J. (2023). *Conformal Nucleus Sampling*. arXiv:2305.02633.
- Chen, S. J. et al. (2024). *Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies*. arXiv:2410.03968 (ICLR 2025).
- Sen, J. et al. (2025). *Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs*. arXiv:2506.05387.

## 같이 보기

- 대형 언어 모델
