Top-k sampling (VI)
Lấy mẫu Top-k — là một phương pháp giải mã ngẫu nhiên (stochastic decoding) được sử dụng trong các mô hình ngôn ngữ tự hồi quy, bao gồm các mô hình ngôn ngữ lớn (LLM), để sinh văn bản. Mục tiêu chính của phương pháp này là giới hạn việc lấy mẫu token tiếp theo trong một số lượng cố định () các ứng viên có xác suất cao nhất, giúp tránh sinh ra những từ ít có khả năng xuất hiện và thường không phù hợp với ngữ cảnh. Phương pháp này là một trong những cải tiến đầu tiên so với lấy mẫu ngẫu nhiên đơn giản và trong một thời gian dài là cách phổ biến để cải thiện tính mạch lạc của văn bản được tạo ra.
Giải thích đơn giản
Lấy mẫu Top-k có thể được hình dung như việc chọn từ tiếp theo không phải từ tất cả các phương án có thể, mà chỉ từ danh sách giới hạn các lựa chọn có xác suất cao nhất.
Ví dụ, mô hình đang hoàn thiện câu «Hôm nay ngoài đường có một cơn…». Trong từ điển của nó có hàng nghìn phần tiếp theo: «mưa», «gió», «tuyết», «bão» — và đâu đó rất xa là «lượng tử» hay một ký tự ngẫu nhiên. Nếu không có giới hạn, việc sinh văn bản dễ xảy ra các dạng suy thoái (text degeneration) khác nhau. Các phương pháp cực đại hóa (greedy decoding, beam search) tạo ra văn bản nhàm chán, lặp đi lặp lại, trong khi lấy mẫu thuần túy không cắt bớt có nguy cơ trở nên vô nghĩa do chọn các token ít xác suất từ «đuôi không đáng tin cậy» của phân phối. Top-k trước hết giải quyết chính vấn đề thứ hai — bằng cách cắt bỏ đuôi, nó giảm nguy cơ sinh ra các phần tiếp theo vô nghĩa, mặc dù bản thân nó không loại bỏ được tính lặp lại. Top-k nói: «Chỉ lấy từ có xác suất cao nhất, bỏ qua phần còn lại, tính lại xác suất trong số đó và chọn ngẫu nhiên một từ».
Nói đơn giản hơn:
- mô hình lập danh sách các phần tiếp theo có xác suất cao nhất;
- chỉ lấy phương án đầu tiên;
- chọn ngẫu nhiên một trong số đó.
Giá trị càng nhỏ thì kết quả càng thận trọng và dễ đoán. Giá trị càng lớn thì việc sinh văn bản càng tự do và đa dạng.
Các ví dụ tương tự:
- Thực đơn nhà hàng: thay vì chọn ngẫu nhiên từ 5.000 món (nguy cơ chọn phải món không ăn được) hoặc luôn chọn một món phổ biến nhất (nhàm chán), người phục vụ chỉ mang ra top-40 món được đề xuất — hãy chọn từ danh sách hợp lý. Tuy nhiên, đôi khi chính trong phần thực đơn bị cắt bỏ lại có món đặc biệt mà bạn có thể thích — đó là cái giá của sự dễ đoán.
- Danh sách rút gọn các ứng viên vòng chung kết: từ 1.000 ứng viên xin việc, người ta giữ lại 40 hồ sơ tốt nhất, rồi mới tiến hành phỏng vấn.
Khái niệm và toán học
Tại mỗi bước sinh văn bản, mô hình ngôn ngữ chuẩn xuất ra phân phối xác suất trên toàn bộ từ điển . Lấy mẫu Top-k điều chỉnh quá trình này như sau:
- Lựa chọn ứng viên: Từ toàn bộ từ điển, chọn ra tập con gồm token có xác suất cao nhất.
- Cắt bỏ: Các logit (dự đoán thô của mô hình trước khi áp dụng Softmax) của tất cả các token không nằm trong được gán giá trị , sau khi chuẩn hóa sẽ cho xác suất bằng đúng 0.
- Phân phối lại (chuẩn hóa): Xác suất của token còn lại được điều chỉnh tỷ lệ sao cho tổng mới của chúng bằng 1.
- Lấy mẫu: Token tiếp theo được chọn ngẫu nhiên từ phân phối mới, đã được cắt bớt này.
Như vậy, Top-k đưa vào một ngưỡng cứng theo số lượng ứng viên: các từ có hạng xác suất thấp hơn sẽ không bao giờ được chọn.
Ảnh hưởng của tham số
- nhỏ (ví dụ, – ): Làm cho việc sinh văn bản thận trọng và dễ đoán hơn. Mô hình chỉ chọn từ tập rất giới hạn các từ có xác suất cao nhất. Điều này tăng tính mạch lạc, nhưng có thể dẫn đến văn bản lặp lại và nhàm chán.
- lớn (ví dụ, – ): Tăng sự đa dạng và tính sáng tạo của văn bản, vì nhiều phương án hơn được đưa vào lấy mẫu. Tuy nhiên, điều này cũng làm tăng nguy cơ đưa vào các token ít liên quan hoặc không phù hợp.
- Các trường hợp biên:
- : Tương đương với giải mã tham lam (greedy decoding). Mô hình luôn chọn token có xác suất cao nhất.
- = kích thước từ điển: Tương đương với lấy mẫu chuẩn từ phân phối đầy đủ, không cắt bỏ.
Ý nghĩa lịch sử
Lấy mẫu Top-k với tư cách là phương pháp giải mã là một trong những ứng dụng sớm thành công trong công trình của Angela Fan và các đồng nghiệp (2018) «Hierarchical Neural Story Generation», trong đó các tác giả sử dụng top-k random sampling (với ) trong hệ thống sinh câu chuyện phân cấp và chứng minh rằng chiến lược này hiệu quả hơn đáng kể so với beam search và lấy mẫu ngẫu nhiên đầy đủ — vốn có nguy cơ đưa vào các từ ít xác suất.
Tuy nhiên, công trình quan trọng đã phân tích hệ thống vấn đề suy thoái văn bản và chứng minh rằng các phương pháp cắt bỏ (truncation), bao gồm top-k, cải thiện đáng kể chất lượng sinh văn bản, là bài báo của Holtzman et al. (2019) «The Curious Case of Neural Text Degeneration». Đồng thời, các tác giả đề xuất top-p (nucleus sampling) như một giải pháp thay thế thích nghi hơn so với top-k, cho thấy qua chỉ số HUSE của họ rằng nucleus sampling cho kết quả tốt hơn trong số các chiến lược được so sánh.
Ví dụ, trong các bản demo và khuyến nghị ban đầu cho GPT-2, giá trị `top_k=40` được sử dụng rộng rãi (được đề cập trong mã của OpenAI như «generally a good value»), giúp tạo ra các văn bản dài và mạch lạc.
So sánh với các phương pháp giải mã khác
Top-k và Top-p
Top-k phần lớn đã được bổ sung, và trong một số tác vụ được thay thế bởi phương pháp tiên tiến hơn — lấy mẫu Top-p (nucleus).
- Nhược điểm chính của Top-k là tính không thích nghi của nó. Giá trị cố định không tính đến hình dạng của phân phối xác suất:
- Khi phân phối nhọn (mô hình tự tin về một số token), Top-k có thể mở rộng nhân tạo tập lấy mẫu bằng cách đưa vào các ứng viên ít xác suất.
- Khi phân phối phẳng (mô hình không chắc chắn và nhiều token có xác suất tương tự), Top-k có thể loại bỏ sớm nhiều phương án phù hợp.
- Ngoài ra, Top-k cắt cứng «đuôi» của phân phối (tail truncation), do đó các token phù hợp với ngữ cảnh nhưng hiếm gặp có thể bị mất — phương pháp này hi sinh tính sáng tạo tiềm năng vì tính mạch lạc.
- Top-p, ngược lại, thích nghi động kích thước tập lấy mẫu bằng cách chọn các token dựa trên xác suất tích lũy của chúng. Điều này làm cho nó linh hoạt và đáng tin cậy hơn.
- Trên thực tế, cả hai phương pháp thường được sử dụng kết hợp như các bộ lọc tuần tự: một phương pháp giới hạn thô số lượng ứng viên, phương pháp kia thu hẹp động tập lấy mẫu theo độ tự tin của mô hình. Thứ tự áp dụng chính xác phụ thuộc vào cách triển khai của từng framework cụ thể.
Top-k và Nhiệt độ (Temperature)
- Nhiệt độ (Temperature) thay đổi hình dạng của toàn bộ phân phối xác suất, nhưng không cắt bỏ các token. Nó ảnh hưởng đến xác suất tương đối của tất cả các ứng viên.
- Top-k đưa vào cắt bỏ cứng, loại hoàn toàn các token nằm ngoài top-.
Trên thực tế, Top-k có thể được sử dụng kết hợp với nhiệt độ và Top-p. Thứ tự áp dụng các bộ lọc phụ thuộc vào framework: ví dụ, trong Hugging Face Transformers, quy trình là Nhiệt độ → Top-k → Top-p, tức là nhiệt độ trước tiên điều chỉnh tỷ lệ logit (), sau đó Top-k cắt bỏ «đuôi» dài của các token nhiễu, và sau đó Top-p thu hẹp động tập lấy mẫu tùy thuộc vào độ tự tin của mô hình. Đồng thời, các bước riêng lẻ có thể được bỏ qua tùy theo cài đặt: nếu , bước Top-k không được áp dụng; nếu , bước Top-p không được áp dụng.
Ứng dụng thực tiễn
Mặc dù Top-p là phương pháp thích nghi hơn và thường được sử dụng làm phương pháp cơ sở cho việc sinh văn bản mở, không có phương pháp giải mã nào tốt hơn mọi trường hợp — lựa chọn tối ưu phụ thuộc vào tác vụ, mô hình và các ưu tiên (chất lượng, tốc độ, độ ổn định). Top-k vẫn là tham số được hỗ trợ rộng rãi trong tất cả các framework chính (Hugging Face Transformers, vLLM và các framework khác) và được áp dụng tích cực cả độc lập lẫn kết hợp với các phương pháp khác.
- Giá trị điển hình: Trên thực tế, các giá trị thường là vài chục token (ví dụ, 10, 40, 50), nhưng giá trị tối ưu phụ thuộc vào mô hình và tác vụ.
- Khuyến nghị: Đối với sinh văn bản mở, thường người ta ưu tiên Top-p. Nếu sử dụng Top-k, nên kết hợp với nhiệt độ vừa phải và lựa chọn cẩn thận giá trị cho tác vụ cụ thể. Top-k cũng tiện lợi như một «cầu chì bổ sung» khi nhiệt độ cao.
- Lưu ý: Trong các framework, Top-k có thể được kết hợp với Repetition Penalty (phạt vì lặp lại) và tham số
no_repeat_ngram_sizeđể ngăn mô hình lặp đi lặp lại cùng những từ trong danh sách top-.
Tài liệu tham khảo
Các công trình nền tảng
- 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).
Đọc thêm
- 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.
Xem thêm
- Mô hình ngôn ngữ lớn