Top-k sampling (KO)
Top-k 샘플링은 텍스트 생성을 위해 자기회귀 언어 모델(대형 언어 모델(LLM) 포함)에서 사용되는 확률적 디코딩 방법입니다. 이 방법의 주요 목적은 다음 token 선택을 고정된 수()의 가장 가능성 높은 후보로 제한하여 확률이 낮고 종종 부적절한 단어가 생성되는 것을 방지하는 것입니다. 이 방법은 단순 무작위 샘플링의 초기 개선책 중 하나였으며, 오랫동안 생성 텍스트의 일관성을 향상시키는 인기 있는 방법이었습니다.
간단한 설명
Top-k 샘플링은 다음 단어를 모든 가능한 선택지가 아니라 가장 가능성 높은 제한된 목록에서만 고르는 것으로 이해할 수 있습니다.
예를 들어, 모델이 "오늘 거리에는 강한…"이라는 문장을 이어 쓴다고 가정합니다. 모델의 어휘에는 수천 가지 이어지는 단어가 있습니다: "비", "바람", "눈", "폭우" — 그리고 어딘가 멀리 "양자" 또는 무작위 기호도 있습니다. 제한 없이는 텍스트 생성이 다양한 형태의 퇴화(text degeneration)에 취약합니다. 최대화 방법(탐욕적 디코딩, beam search)은 지루하고 반복적인 텍스트를 생성하는 반면, 잘라내기 없는 순수 샘플링은 분포의 "신뢰할 수 없는 꼬리"에서 확률이 낮은 token을 선택하여 비일관적인 내용을 생성할 위험이 있습니다. Top-k는 주로 두 번째 문제를 해결합니다. 꼬리를 잘라냄으로써 의미 없는 이어지는 내용의 위험을 줄이지만, 반복성 자체를 제거하지는 않습니다. Top-k는 이렇게 말합니다: "가장 가능성 높은 개의 단어만 취하고, 나머지는 잊어버리고, 그 중에서 확률을 재계산한 다음 무작위로 하나를 선택하라".
간단히 말해:
- 모델이 가장 가능성 높은 이어지는 단어들의 목록을 작성하고;
- 처음 개의 선택지만 취하며;
- 그 중에서 무작위로 하나를 선택합니다.
가 작을수록 결과는 더 신중하고 예측 가능합니다. 가 클수록 생성이 더 자유롭고 다양해집니다.
비유:
- 레스토랑 메뉴: 5,000가지 항목 중 무작위로 선택(먹을 수 없는 것을 받을 위험)하거나 항상 가장 인기 있는 한 가지 요리(지루함)를 선택하는 대신, 웨이터가 추천 40가지 요리만 가져옵니다 — 합리적인 목록에서 선택하세요. 물론, 때로는 잘라낸 메뉴 부분에 마음에 들었을 특별한 요리가 있을 수도 있습니다 — 이것이 예측 가능성의 대가입니다.
- 최종 후보 단기 목록: 1,000명의 입사 지원자 중 40개의 최고 이력서를 추려낸 다음 면접을 진행합니다.
개념과 수학
텍스트 생성의 각 단계에서 표준 언어 모델은 전체 어휘 에 대한 확률 분포 를 출력합니다. Top-k 샘플링은 이 과정을 다음과 같이 수정합니다:
- 후보 선택: 전체 어휘에서 가장 높은 확률을 가진 개의 token으로 구성된 부분 집합 이 선택됩니다.
- 잘라내기: 에 포함되지 않은 모든 token의 로짓(Softmax 적용 전 모델의 원시 예측값)에는 값이 할당되어, 정규화 후 확률이 정확히 0이 됩니다.
- 재분배(정규화): 나머지 개 token의 확률이 새로운 합계가 1이 되도록 조정됩니다.
- 샘플링: 다음 token이 이 새로운 잘라낸 분포에서 무작위로 선택됩니다.
따라서 Top-k는 후보 수에 대한 엄격한 임계값을 도입합니다: 확률 순위가 이하인 단어는 절대 선택되지 않습니다.
매개변수 의 영향
- 작은 (예: – ): 생성을 더 보수적이고 예측 가능하게 만듭니다. 모델은 매우 제한된 가장 가능성 높은 단어 집합에서만 선택합니다. 이는 일관성을 높이지만 반복적이고 지루한 텍스트로 이어질 수 있습니다.
- 큰 (예: – ): 더 많은 선택지가 샘플링에 포함되므로 텍스트의 다양성과 창의성이 증가합니다. 그러나 이는 관련성이 낮거나 부적절한 token이 포함될 위험도 높입니다.
- 경계 경우:
- : 탐욕적 디코딩(greedy decoding)과 동일합니다. 모델은 항상 가장 가능성 높은 token을 선택합니다.
- = 어휘 크기: 잘라내기 없이 전체 분포에서 표준 샘플링과 동일합니다.
역사적 의의
디코딩 방법으로서의 Top-k 샘플링은 Angela Fan과 동료들(2018)의 논문 "Hierarchical Neural Story Generation"에서 초기에 성공적으로 적용된 방법 중 하나였습니다. 저자들은 계층적 이야기 생성 시스템에서 top-k random sampling( 사용)을 활용하여, 이 전략이 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의 주요 단점은 비적응성입니다. 고정된 값은 확률 분포의 형태를 고려하지 않습니다:
- 분포가 뾰족할 때(모델이 몇 가지 token에 대해 확신이 있을 때), Top-k는 확률이 낮은 후보를 포함하여 샘플링을 인위적으로 확장할 수 있습니다.
- 분포가 평평할 때(모델이 확신이 없고 많은 token이 유사한 확률을 가질 때), Top-k는 많은 적절한 선택지를 조기에 잘라낼 수 있습니다.
- 또한 Top-k는 분포의 "꼬리"를 엄격하게 잘라내어(tail truncation), 문맥상 적절하지만 드문 token이 손실될 수 있습니다 — 이 방법은 연결성을 위해 잠재적인 창의성을 희생합니다.
- Top-p는 반대로, 누적 확률을 기반으로 token을 선택하여 샘플링 크기를 동적으로 적응시킵니다. 이를 통해 더 유연하고 신뢰할 수 있습니다.
- 실제로 두 방법은 순차적 필터로 함께 사용되는 경우가 많습니다: 하나는 후보 수를 대략적으로 제한하고, 다른 하나는 모델의 확신에 따라 샘플링을 동적으로 좁힙니다. 적용 순서는 특정 프레임워크의 구현에 따라 다릅니다.
Top-k vs. 온도
- 온도는 전체 확률 분포의 형태를 변경하지만 token을 잘라내지는 않습니다. 모든 후보의 상대적 확률에 영향을 미칩니다.
- Top-k는 상위 밖의 token을 완전히 제외하는 엄격한 잘라내기를 도입합니다.
실제로 Top-k는 온도 및 Top-p와 함께 사용할 수 있습니다. 필터 적용 순서는 프레임워크에 따라 다릅니다: 예를 들어, Hugging Face Transformers에서 파이프라인은 온도 → Top-k → Top-p로 구성됩니다. 즉, 온도가 먼저 로짓()을 조정하고, 그다음 Top-k가 불필요한 token의 긴 "꼬리"를 잘라내며, 그 후 Top-p가 모델의 확신에 따라 샘플링을 동적으로 좁힙니다. 이때 설정에 따라 개별 단계가 건너뛰어질 수 있습니다: 이면 Top-k 단계가 적용되지 않고, 이면 Top-p 단계가 적용되지 않습니다.
실제 적용
Top-p가 더 적응적인 방법이며 개방형 텍스트 생성의 기본값으로 자주 사용되지만, 보편적으로 최선인 디코딩 방법은 존재하지 않습니다 — 최적의 선택은 작업, 모델, 우선순위(품질, 속도, 안정성)에 따라 다릅니다. Top-k는 모든 주요 프레임워크(Hugging Face Transformers, vLLM 등)에서 널리 지원되는 매개변수로 남아 있으며, 단독으로 또는 다른 방법과 결합하여 활발히 사용됩니다.
- 일반적인 값: 실제로 는 수십 개의 token 정도(예: 10, 40, 50)가 자주 사용되지만, 최적값은 모델과 작업에 따라 다릅니다.
- 권장 사항: 개방형 텍스트 생성에는 Top-p를 선호하는 경우가 많습니다. Top-k를 사용하는 경우, 적절한 온도와 함께 사용하고 특정 작업에 맞게 값을 신중하게 선택해야 합니다. Top-k는 높은 온도에서 추가적인 "안전 장치"로도 유용합니다.
- 참고: 프레임워크에서 Top-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.
같이 보기
- 대형 언어 모델