Top-p sampling (VI)

From Systems analysis Wiki
Jump to navigation Jump to search

Lấy mẫu Top‑p, còn được gọi là lấy mẫu nhân (tiếng Anh: Nucleus Sampling), là phương pháp giải mã ngẫu nhiên dành cho các mô hình ngôn ngữ tự hồi quy, được ứng dụng rộng rãi trong các mô hình ngôn ngữ lớn (LLM). Phương pháp được đề xuất năm 2019 bởi Ari Holtzman và các cộng sự (bản preprint trên arXiv — tháng 4 năm 2019; công bố tại ICLR 2020) như một giải pháp thay thế cải tiến cho lấy mẫu Top‑k cố định. Ý tưởng cốt lõi là tự động xác định tập hợp ứng viên tại mỗi bước sinh văn bản theo ngưỡng xác suất tích lũy p.[1]

Bối cảnh lịch sử: vấn đề suy thoái văn bản trong mạng nơ-ron

Trước khi Top‑p ra đời, các chiến lược giải mã chủ đạo là tìm kiếm tham lam (greedy search) và tìm kiếm chùm tia (beam search), dựa trên mô hình tối đa hóa khả năng — tức là chọn chuỗi token có xác suất tổng hợp cao nhất. Tìm kiếm tham lam tại mỗi bước chọn cục bộ token có xác suất cao nhất, còn tìm kiếm chùm tia theo dõi song song nhiều giả thuyết sinh văn bản.[1]

Mặc dù các phương pháp này hiệu quả trong các tác vụ đóng (dịch máy, trích xuất thông tin), khi chuyển sang các tác vụ sinh văn bản mở (viết truyện, hệ thống đối thoại), chúng thường dẫn đến suy thoái văn bản trong mạng nơ-ron — một hiện tượng suy giảm đầu ra khiến văn bản trở nên khuôn mẫu, mất tính mạch lạc hoặc lặp đi lặp lại. Hiện tượng này được Holtzman và các cộng sự mô tả chi tiết trong công trình The Curious Case of Neural Text Degeneration.[1]

Meister và các cộng sự liên kết vấn đề suy thoái với thực tế rằng văn bản của con người có xu hướng duy trì hàm lượng thông tin gần với entropy có điều kiện kỳ vọng, thay vì chỉ tối đa hóa xác suất cục bộ của từng token tiếp theo.[2]

Giải pháp thay thế là lấy mẫu ngẫu nhiên thuần túy (sampling without truncation), trong đó token được chọn ngẫu nhiên theo xác suất của nó. Tuy nhiên, phương pháp này lại tạo ra vấn đề ngược lại: hàm Softmax không bao giờ gán cho một token xác suất bằng đúng không, vì vậy trong một từ vựng hàng chục nghìn từ, luôn tồn tại một vùng rộng lớn các token nhiễu. Lấy mẫu thuần túy làm tăng nguy cơ rơi vào phần đuôi không đáng tin cậy của phân phối, có thể làm giảm tính mạch lạc của văn bản được sinh ra.[1][3] Sự cần thiết kết hợp sự phong phú của lựa chọn ngẫu nhiên với độ tin cậy của các ràng buộc tất định đã dẫn đến sự phát triển của các phương pháp cắt ngắn phân phối, trong đó lấy mẫu nhân (Top‑p) là phương pháp tiêu biểu.[1][4]

Giải thích đơn giản

Lấy mẫu Top-p là cách giới hạn việc chọn token tiếp theo chỉ trong số các phương án có khả năng cao nhất, mà không cố định số lượng phương án trước.

Khi sinh văn bản, mô hình ngôn ngữ tại mỗi bước đánh giá nhiều phần tiếp theo có thể có và gán cho mỗi phương án một xác suất nhất định. Một số token có xác suất rất cao, một số có xác suất vừa phải, còn phần lớn từ vựng tạo thành cái gọi là "đuôi" của phân phối: các phương án có xác suất rất thấp, tuy hợp lệ về mặt hình thức nhưng thường ngẫu nhiên, không phù hợp hoặc làm giảm tính mạch lạc của văn bản.

Lấy mẫu Top-p cắt bỏ phần đuôi ít có khả năng này không theo số lượng token cố định, mà theo tổng xác suất. Đầu tiên, tất cả các ứng viên được sắp xếp từ có xác suất cao nhất đến thấp nhất. Sau đó, chọn tập hợp tối thiểu các token hàng đầu có tổng xác suất đạt ngưỡng p — ví dụ 0.9 hoặc 0.95. Tiếp theo, token tiếp theo được chọn ngẫu nhiên chỉ từ tập hợp này, còn tất cả các phương án khác bị loại bỏ.

Ví dụ, nếu mô hình tiếp tục câu «Hôm nay ngoài trời có một cơn…», trong số các phương án có xác suất cao nhất có thể là «mưa» (0.45), «mưa lớn» (0.25), «tuyết» (0.15) và «gió» (0.10). Với ngưỡng p=0.90, thuật toán cộng dồn các token theo thứ tự giảm dần xác suất: 0.45 + 0.25 = 0.70 (nhỏ hơn 0.90), thêm «tuyết»: 0.70 + 0.15 = 0.85 (vẫn nhỏ hơn 0.90), thêm «gió»: 0.85 + 0.10 = 0.95 (vượt ngưỡng). Nhân được hình thành từ bốn token. Tất cả các phương án ít phổ biến hơn bị loại bỏ, và xác suất của các phương án còn lại được chuẩn hóa lại: chẳng hạn, xác suất của token «mưa» sau khi chuẩn hóa lại sẽ là 0.45/0.9547.4%, và bộ sinh sẽ chọn token tiếp theo từ phân phối cập nhật này.

Điểm khác biệt chính so với Top‑k là Top‑k luôn lấy số lượng cố định các từ tốt nhất (ví dụ 50), trong khi Top‑p không cố định số lượng phương án trước: đôi khi có thể là 3 từ, đôi khi là 20 — tất cả phụ thuộc vào cách xác suất phân bổ ở bước đó. Nhờ vậy, phương pháp thích nghi với ngữ cảnh và giúp loại bỏ "đuôi" các token ít có khả năng, làm cho văn bản tự nhiên hơn.

Một ví dụ khác. Ví dụ, mô hình tiếp tục câu «Vào bữa sáng, anh ấy uống một ly… nóng». Trong số các phần tiếp theo có xác suất cao nhất có thể là: «trà» (0.50), «cà phê» (0.30), «sôcôla» (0.08), «nước hầm» (0.04), «kefir» (0.03). Nếu ngưỡng p=0.80 được đặt, thuật toán bắt đầu cộng dồn xác suất từ trên xuống: 0.50 cho «trà», sau đó 0.50 + 0.30 = 0.80. Ngưỡng đã đạt, do đó nhân chỉ gồm hai token: «trà» và «cà phê». Tất cả các phương án khác bị loại bỏ. Sau khi chuẩn hóa lại, xác suất của «trà» trong nhân trở thành 0.50/0.80=62.5%, còn xác suất của «cà phê» — 0.30/0.80=37.5%. Token tiếp theo chỉ được chọn giữa hai phương án này.

Nói cách khác, mô hình trước tiên loại bỏ các phần tiếp theo ít có khả năng và không phù hợp, sau đó chọn từ các phần còn lại. Điều này giúp mô hình viết rõ ràng, tự nhiên hơn và không có «nhiễu» thừa.

Khái niệm

Ý tưởng cốt lõi của Top‑p là tại mỗi bước chọn tập hợp nhỏ nhất gồm các token có xác suất cao nhất, sao cho tổng xác suất của chúng không nhỏ hơn ngưỡng p (nhân, tiếng Anh: nucleus).

Chính thức, giả sử x(1),x(2), là các token của từ vựng V, được sắp xếp theo thứ tự giảm dần của xác suất có điều kiện P(xx1:i1). Khi đó nhân V(p) được định nghĩa là tiền tố ngắn nhất của chuỗi đã sắp xếp này mà khối lượng tích lũy đạt ngưỡng:

m=min{n:j=1nP(x(j)x1:i1)p},V(p)={x(1),,x(m)}.

Nói cách khác, đây là tập hợp nhỏ nhất theo quan hệ bao hàm gồm các token có xác suất cao nhất mà tổng xác suất của chúng không nhỏ hơn p.[1]

Sau khi xác định nhân, xác suất của các token ngoài V(p) được đặt về không, còn trong nhân — được chuẩn hóa lại (chia cho khối lượng tích lũy thực tế p=xV(p)P(xx1:i1), sao cho tổng bằng 1). Token tiếp theo được lấy mẫu từ phân phối đã cắt ngắn và chuẩn hóa lại này.

Thích nghi động

  • Khi phân phối «nhọn» (mô hình tự tin), nhân nhỏ: một vài token đã cho khối lượng ≥ p, điều này tăng cường tính mạch lạc. Trong trường hợp giới hạn, nếu xác suất của token có xác suất cao nhất đã vượt p (ví dụ P(x(1))=0.96 khi p=0.95), nhân thu hẹp xuống còn một token duy nhất và Top‑p thực chất trở thành giải mã tham lam (greedy search).
  • Khi phân phối «phẳng» (nhiều phần tiếp theo hợp lý), nhân lớn: sự lựa chọn mở rộng, tính đa dạng tăng lên.[1]

So sánh với các phương pháp giải mã khác

Top‑p vs. Top‑k

  • Top‑k luôn chọn từ số lượng cố định k token có xác suất cao nhất. Trong các phân phối «nhọn», điều này có thể thêm vào các phương án ít có khả năng thừa «để đủ số lượng», còn trong các phân phối «phẳng» — ngược lại, loại bỏ các phần tiếp theo hợp lý không lọt vào top‑k.
  • Top‑p điều chỉnh kích thước tập hợp ứng viên theo dữ liệu từng bước, làm cho hành vi linh hoạt và ổn định hơn trên các kiểu phân phối khác nhau.[1]
  • Trong thực tế, Top‑k và Top‑p có thể được áp dụng đồng thời. Trong trường hợp này, trước tiên chọn top‑k token, sau đó trong tập hợp giới hạn này tìm nhân với ngưỡng p. Thứ tự chính xác và lý do phụ thuộc vào cài đặt cụ thể, nhưng sự kết hợp như vậy được ghi nhận là một kỹ thuật phổ biến.[5]

Nói đơn giản hơn, Top-k quyết định trước số lượng phương án cần giữ, còn Top-p nhìn vào tình huống cụ thể và giữ lại bao nhiêu phương án cần thiết trong ngữ cảnh đó. Vì vậy, Top-p thường linh hoạt hơn, còn Top-k đơn giản và dễ dự đoán hơn.

Top‑p vs. Nhiệt độ

  • Nhiệt độ (temperature) định hình lại toàn bộ dạng phân phối (làm cho nó nhọn hơn hoặc phẳng hơn), nhưng không cắt bỏ các token: ngay cả các phương án ít có khả năng vẫn giữ cơ hội khác không.[5]
  • Top‑p áp đặt cắt ngắn cứng phần đuôi của phân phối — các token ít có khả năng bị loại hoàn toàn khỏi quá trình lấy mẫu, giúp ngăn chặn các phần tiếp theo rõ ràng không phù hợp.[1]
  • Thứ tự áp dụng. Trong các pipeline tiêu chuẩn (ví dụ trong Hugging Face Transformers), đầu tiên nhiệt độ được áp dụng lên logit (thay đổi dạng phân phối), sau đó có thể áp dụng Top‑k, và chỉ sau đó là Top‑p (cắt ngắn phần đuôi). Điều này giải thích tại sao «tác động kép» khó kiểm soát: thay đổi nhiệt độ làm thay đổi chính khối lượng tích lũy mà Top‑p sau đó xử lý.[5]

Nói đơn giản hơn, nhiệt độ thay đổi mức độ tự do của mô hình trong việc chọn từ, còn Top-p quyết định những phương án nào được phép chọn. Vì vậy, nhiệt độ ảnh hưởng đến mức độ ngẫu nhiên, còn Top-p — đến việc mô hình có thể đi xa đến đâu vào các phần tiếp theo ít có khả năng hơn.

Thứ tự các phép toán trong cài đặt Hugging Face Transformers

Thứ tự áp dụng các bộ xử lý lấy mẫu phụ thuộc vào thư viện cụ thể. Trong Hugging Face Transformers (từ phiên bản v4.x trở đi), đối với bộ ba tham số được thảo luận, các bộ xử lý logit mặc định được thêm vào theo thứ tự sau:[5][6]

  1. Chia tỷ lệ logit theo nhiệt độ. Logit của mỗi token được chia cho giá trị nhiệt độ trước khi lũy thừa hàm Softmax. Nhiệt độ điều chỉnh dạng phân phối, chuẩn bị cho việc lọc tiếp theo.
  2. Bộ lọc Top‑k (nếu được cấu hình): cắt ngắn từ vựng xuống số lượng cố định ứng viên.
  3. Bộ lọc Top‑p: cắt ngắn tích lũy được áp dụng cho tập token đã được thu hẹp.
  4. Chuẩn hóa lại xác suất còn lại và lấy mẫu ngẫu nhiên.

Trong thực tế, sự kết hợp phổ biến là nhiệt độ vừa phải (0.7) với nhân Top‑p rộng (0.95) và giới hạn Top‑k (50): nhiệt độ cung cấp tính biến thiên cơ bản, Top‑k hoạt động như một cơ chế bảo vệ thô, còn Top‑p thực hiện điều chỉnh vi tế phụ thuộc vào ngữ cảnh.[5]

Nói đơn giản hơn, mô hình trước tiên làm cho việc lựa chọn ít nhiều «tự do» hơn bằng nhiệt độ, sau đó nếu cần thiết giới hạn số lượng ứng viên qua Top-k, và sau đó loại bỏ các phương án quá yếu qua Top-p. Thứ tự như vậy giúp trước tiên thiết lập tính chất chung của việc lựa chọn, sau đó cắt bỏ những gì thừa.

Khuyến nghị: điều chỉnh từng tham số một

Các nhà cung cấp mô hình khuyến nghị khi điều chỉnh phong cách sinh văn bản, nên thay đổi hoặc là temperature, hoặc là top_p, nhưng không thay đổi cả hai đồng thời. Khuyến nghị này được ghi trong tài liệu chính thức của OpenAI, Azure OpenAI và Anthropic.[7][8][9]

Lý do thực tiễn: cả hai tham số đều ảnh hưởng đến dạng phân phối xác suất (nhiệt độ thay đổi độ dốc của đường cong, còn Top‑p thiết lập điểm cắt ngắn), vì vậy việc thay đổi đồng thời cả hai gây khó khăn trong chẩn đoán — không thể xác định tham số nào dẫn đến cải thiện hay xấu đi của đầu ra. Ngoài ra, với các giá trị cực thấp của cả hai tham số (ví dụ Temperature ≈ 0Top‑p ≈ 0.01), nhân trong thực tế thu hẹp xuống còn một token, thực chất biến lấy mẫu thành tìm kiếm tham lam.[7]

Một số mô hình reasoning bổ sung hạn chế điều chỉnh các tham số này ở cấp độ API, điều này làm cho vấn đề thay đổi đồng thời chúng không còn liên quan đối với các mô hình như vậy (xem phần «Tính tương thích với thư viện và API»).[7]

Heuristic kỹ thuật phổ biến: đối với các tác vụ yêu cầu khả năng tái tạo cao — sử dụng nhiệt độ thấp (thậm chí bằng không); đối với các tác vụ sáng tạo — giữ nhiệt độ ở mức cơ bản (1.0) và điều chỉnh tính biến thiên bằng tham số Top‑p, hoặc cố định Top‑p ở 1.0 và thay đổi nhiệt độ. Các khuyến nghị cụ thể có thể khác nhau tùy nhà cung cấp.[7][9]

Ảnh hưởng đến tính thực tế và ảo giác

Việc lựa chọn chiến lược giải mã có thể ảnh hưởng không chỉ đến văn phong của văn bản được sinh ra, mà còn đến tần suất và loại lỗi thực tế. Hiện tượng ảo giác — việc tự tin sinh ra thông tin sai lệch hoặc mâu thuẫn với ngữ cảnh — là một trong những vấn đề trung tâm của AI tạo sinh. Các nghiên cứu thực nghiệm cho thấy ảnh hưởng của các chiến lược lấy mẫu đến ảo giác phụ thuộc vào tác vụ, mô hình và cài đặt tham số cụ thể.[3][10]

Cơ chế xuất hiện lỗi trong lấy mẫu ngẫu nhiên

Với các giá trị Top‑p cao (ví dụ 0.95), mô hình tạo ra nhân bao phủ 95% khối lượng xác suất. Trong các trạng thái entropy cao (ví dụ khi cố gắng trả lời một sự kiện ít được biết đến), nhân này có thể bao gồm hàng trăm token có xác suất thấp. Lấy mẫu ngẫu nhiên trong điều kiện như vậy có thể trích xuất một token đúng về mặt ngữ pháp nhưng không liên quan về mặt ngữ nghĩa đến sự thật thực tế. Một khi xuất hiện trong ngữ cảnh, token như vậy có thể ảnh hưởng đến các bước sinh tiếp theo, vì mô hình tiếp tục sinh dựa trên tất cả các token trước đó, bao gồm cả các token sai.[3][1]

Phân đôi giữa tác vụ mở và đóng

Các thí nghiệm quy mô lớn cho thấy sự phụ thuộc của chất lượng sinh vào loại tác vụ. Trong các tác vụ viết luận hoặc hệ thống đối thoại, các phương pháp ngẫu nhiên (Top‑p, Temperature) vẫn dẫn đầu, trong khi trong các lĩnh vực tất định nghiêm ngặt, chúng có thể thua kém đáng kể so với các phương pháp tất định.[10]

Trên các benchmark tổng hợp mã lập trình (HumanEval, MBPP) và giải quyết bài toán toán học (GSM8K), các phương pháp tất định (Beam Search, Greedy Decoding) cho kết quả tốt hơn so với các phương pháp dựa trên Top‑p. Dataset GSM8K, bao gồm 8,5 nghìn bài toán toán học yêu cầu từ 2 đến 8 bước tính toán, minh họa tính dễ bị tổn thương của lựa chọn ngẫu nhiên trong các tác vụ như vậy: việc đưa ngẫu nhiên vào thông qua phân phối cắt ngắn Top‑p có thể phá vỡ chuỗi lập luận của mô hình (Chain‑of‑Thought) ở bất kỳ bước trung gian nào. Tan và các cộng sự nhấn mạnh rằng hiệu quả của phương pháp giải mã phụ thuộc rất nhiều vào tác vụ cụ thể (task‑dependent).[10]

Các phương pháp chống ảo giác ở cấp độ giải mã

Để chống lại các hiệu ứng ảo giác do lấy mẫu ngẫu nhiên gây ra, các phương pháp tăng cường giải mã tiên tiến đã được phát triển:

  • Giải mã tương phản (Contrastive Decoding, DoLa) — tối ưu hóa khoảng cách trong log-likelihood giữa mô hình chính và mô hình phụ nhỏ hơn, đóng vai trò như một bộ lọc độ tin cậy.[10]
  • SH2 (Self‑Highlighted Hesitation) — nhân tạo khiến bộ giải mã «do dự» khi làm việc với các token độ tin cậy thấp.[11]
  • Chiếu kích hoạt có hướng (SEA) — triệt tiêu các tín hiệu ảo giác ở cấp độ biểu diễn vector.[11]

Đồng thời, các mô hình hiện đại với alignment chất lượng cao sở hữu sự hiểu biết sâu hơn về thực tế, điều này làm giảm entropy của các phân phối nội tại của chúng và khiến chúng ít bị suy giảm thực tế hơn ngay cả với các giá trị Top‑p cao.[10][12]

Ứng dụng thực tiễn và khuyến nghị

Top‑p được sử dụng rộng rãi trong các LLM hiện đại nhờ sự kết hợp giữa tính linh hoạt và khả năng kiểm soát.

  • Khoảng giá trị thông thường. Trong thực tế, thường áp dụng p0.900.95. Giá trị mặc định khác nhau tùy nhà cung cấp: OpenAI đặt `top_p` = 1.0 (cắt ngắn thực tế bị tắt), Anthropic — 0.99, nhiều mô hình Google Gemini — 0.95.[13] Trong thư viện Hugging Face Transformers, giá trị mặc định của framework cũng bằng 1.0, mặc dù các mô hình riêng lẻ có thể ghi đè giá trị này trong `generation_config.json` của chúng.[14] Vì vậy, 0.9–0.95 là khoảng thực tiễn được khuyến nghị phổ biến, nhưng không phải tiêu chuẩn mặc định phổ quát.[5][15]
    • Các giá trị gần 1.0 (ví dụ 0.98–0.99) tăng tính đa dạng: nhiều token hơn vào nhân.
    • Các giá trị nhỏ (ví dụ 0.80–0.90) tăng tính tất định và «kín đáo» của đầu ra.
    • Khi p=1, cắt ngắn theo Top‑p biến mất: lựa chọn được thực hiện trên toàn bộ từ vựng (tính đến nhiệt độ và các bộ lọc giải mã khác nếu chúng được bật).[5]
  • Tính tương thích với thư viện và API.
    • Trong Hugging Face Transformers, TopPLogitsWarper được cài đặt với ngưỡng bổ sung `min_tokens_to_keep` (mặc định là 1). Đây là chi tiết bảo vệ trong cài đặt: với các giá trị tiêu chuẩn p(0,1], nhân rỗng vốn không xuất hiện từ định nghĩa, nhưng tham số này đảm bảo hoạt động đúng trong các trường hợp biên.[16]
    • Trong một số API, tham số `top_p` có sẵn, trong khi `top_k` có thể vắng mặt; hỗ trợ tham số và ngữ nghĩa của chúng phụ thuộc vào mô hình cụ thể và chế độ hoạt động. Các mô hình reasoning, theo quy tắc, hạn chế cài đặt ngẫu nhiên ở cấp độ API. Ví dụ, trong tài liệu OpenAI hiện tại, các tham số `temperature` và `top_p` chỉ được hỗ trợ rõ ràng cho GPT‑5.2 khi `reasoning.effort = none`; các yêu cầu đến GPT‑5.2 hoặc GPT‑5.1 với các giá trị `reasoning` khác, cũng như đến các mô hình GPT‑5 cũ hơn (`gpt‑5`, `gpt‑5‑mini`, `gpt‑5‑nano`) khi truyền các trường này sẽ gây ra lỗi. Các mô hình reasoning thế hệ trước (o1, o3) cũng hạn chế hoặc cố định chúng.[7][17][18] Tại Anthropic, trong Claude API khi bật chế độ suy nghĩ mở rộng (extended thinking), việc thay đổi `temperature` và `top_k` bị cấm, nhưng `top_p` được cho phép trong khoảng 0.95–1.0; trên các nền tảng bên thứ ba (ví dụ Amazon Bedrock), các hạn chế có thể khác nhau.[19] Các hạn chế của nhà cung cấp thường thay đổi từ phiên bản này sang phiên bản khác; nên kiểm tra tài liệu hiện tại.[8][20]
  • Văn bản dài và khả năng lặp lại. Trong một loạt thí nghiệm, nucleus sampling được cho thấy giảm thiên hướng suy thoái (lặp lại, cụm từ khuôn mẫu) so với greedy/beam và Top‑k cố định, đặc biệt trên các chuỗi dài.[1][10]

Các phương án thay thế hiện đại

Sau khi nucleus sampling được công bố vào năm 2019, một số phương pháp lấy mẫu ngẫu nhiên thay thế đã được đề xuất, phát triển hoặc bổ sung cho ý tưởng của Top‑p:

Lấy mẫu Min‑p

Lấy mẫu Min‑p (Nguyen et al., 2024) giữ lại các token có xác suất không thấp hơn pmin×P(x(1)), tức là thiết lập ngưỡng tương đối so với token có xác suất cao nhất. Được chấp nhận để trình bày miệng tại ICLR 2025; được cài đặt trong một số framework phổ biến, bao gồm Hugging Face Transformers[21] và vLLM[22].[23]

Sự khác biệt chính so với Top‑p nằm ở loại ngưỡng: Top‑p sử dụng ngưỡng tuyệt đối dựa trên tổng tích lũy của xác suất, trong khi Min‑p thiết lập ngưỡng tương đối, được chia tỷ lệ từ xác suất của token có xác suất cao nhất.[23]

Về mặt toán học, thuật toán hoạt động như sau: tại mỗi bước, xác suất tối đa Pmax=P(x(1)x1:i1) được xác định, sau đó ngưỡng được chia tỷ lệ Pthreshold=pmin×Pmax được tính toán. Chỉ các token có xác suất riêng lẻ vượt quá ngưỡng này mới được đưa vào pool cuối cùng.[24]

Điều này đảm bảo tính thích nghi: nếu mô hình tự tin về từ tiếp theo (Pmax=0.9), với giá trị cơ bản pmin=0.1, ngưỡng sẽ là 0.09, loại bỏ nghiêm ngặt các token nhiễu. Nếu mô hình không chắc chắn (Pmax=0.1), ngưỡng giảm xuống 0.01, cho phép nhiều ứng viên đa dạng vào nhân.[23]

Điểm yếu đã biết của Top‑p xuất hiện khi lấy mẫu ở nhiệt độ cao (T>1.0): khi phân phối được làm phẳng nhân tạo, Top‑p buộc phải đưa vào nhân một số lượng lớn token có xác suất thấp để đạt tổng tích lũy đã cho, điều này có thể dẫn đến suy giảm tính mạch lạc.[23] Min‑p xử lý tốt hơn trong các điều kiện như vậy. Trong các thí nghiệm của tác giả trên các benchmark kiến thức khoa học và logic (GPQA) sử dụng mô hình Mistral Large ở nhiệt độ cực cao T=3.0, thuật toán Min‑p đạt độ chính xác 13.84%, trong khi Top‑p 0.9 tiêu chuẩn cho kết quả 0.89% — ở mức nhiễu ngẫu nhiên.[24]

Đồng thời, trong giới học thuật có một cuộc tranh luận: một số công trình phê phán (ví dụ arXiv:2506.13681) đặt câu hỏi về tính phổ quát của ưu thế của Min‑p trên tất cả các thước đo NLP, chỉ ra sự cần thiết phải nghiên cứu thêm.[25]

Nói đơn giản hơn, Min-p so sánh tất cả các phương án không phải với tổng xác suất chung, mà với phương án mạnh nhất ở bước hiện tại. Vì vậy, nếu mô hình tự tin, nó loại bỏ nghiêm ngặt hơn các phần tiếp theo yếu, còn nếu không chắc — để lại nhiều phương án chấp nhận được hơn. Nhờ điều này, Min-p có thể duy trì tốt hơn sự cân bằng giữa tính mạch lạc và tính đa dạng, đặc biệt ở những nơi mà Top-p bắt đầu để lọt qua quá nhiều từ yếu.

Locally typical sampling

Locally typical sampling (Meister et al., 2023) chọn các token có hàm lượng thông tin (logP) gần với entropy có điều kiện, dựa trên khái niệm tính điển hình trong lý thuyết thông tin.[2]

Khác với Top‑p, nhằm mục đích thu nhỏ kích thước nhân bằng cách chọn các token có xác suất tối đa, Locally Typical Sampling giải quyết bài toán tối ưu hóa dựa trên thước đo khoảng cách thông tin. Thuật toán tính toán hàm lượng thông tin của mỗi token (logP(x)) và đo khoảng cách tuyệt đối của nó đến entropy có điều kiện H của mô hình. Các token được xếp hạng không theo xác suất thô, mà theo mức độ «tính điển hình thông tin» của chúng — sự gần gũi với hàm lượng thông tin kỳ vọng của ngữ cảnh. Các token được thêm vào nhân (theo thứ tự tăng dần của khoảng cách đến entropy) cho đến khi đạt ngưỡng xác suất tích lũy.[2][26]

Hệ quả của cách tiếp cận này: trong các trạng thái entropy cao, thuật toán có mục đích loại trừ không chỉ phần đuôi nhiễu ít có khả năng, mà còn cả các từ có xác suất quá cao mang quá ít thông tin và làm cho văn bản tầm thường. Điều này làm giảm nguy cơ lặp lại suy thoái và đưa các thước đo khả năng lặp lại văn bản lại gần hơn với các chỉ số đặc trưng cho văn bản do con người viết.[26]

Tail Free Sampling (TFS)

Tail Free Sampling (TFS) là một cách tiếp cận ít hình thức hóa hơn nhưng thực tiễn thú vị để xác định phần đuôi nhiễu, dựa trên phân tích vi phân của không gian xác suất. Nếu Top‑p và Min‑p hoạt động với xác suất bậc một (tổng tích lũy và các phân số cơ bản), thì TFS phân tích đạo hàm bậc một và bậc hai của đường cong xác suất đã sắp xếp. Phương pháp được mô tả trên blog của Trenton Bricken và được cài đặt trong một số inference engine, mặc dù không được công bố dưới dạng bài báo có bình duyệt.[27]

Postulate cơ bản của TFS: việc đưa ngay cả một token nhiễu vào mẫu mang mối đe dọa theo cấp số nhân cho toàn bộ quá trình sinh tự hồi quy. Bằng cách tính đạo hàm bậc hai của các giá trị xác suất, thuật toán xác định vị trí «plateau» — các vùng của đường cong nơi sự giảm xác suất chậm lại và chuyển thành phần đuôi dài thoải. Điểm uốn này trở thành ranh giới cắt ngắn động: các token trước nó được coi là an toàn về mặt ngữ nghĩa, và toàn bộ phần đuôi bị loại bỏ.[27]

Mặc dù có tính thanh lịch toán học, TFS đòi hỏi chi phí tính toán cao hơn để tính đạo hàm theo thời gian thực, do đó trong các sản phẩm thương mại đại trà, nó nhường chỗ cho các thuật toán nhẹ hơn.[27]

p‑less sampling

p‑less sampling — phương pháp hoàn toàn giải phóng kỹ sư khỏi việc phải điều chỉnh các siêu tham số cắt ngắn.[28] Vấn đề cơ bản của tất cả các phương pháp trước đó — từ Top‑k và Top‑p đến Min‑p — nằm ở sự phụ thuộc vào các siêu tham số tĩnh, các giá trị của chúng đòi hỏi điều chỉnh của chuyên gia và có thể tối ưu cho một tác vụ (viết sáng tạo) nhưng không phù hợp cho tác vụ khác (lập trình).[29]

Thuật toán p‑less, bắt nguồn từ lý thuyết thông tin, tự động tạo ra ngưỡng cắt ngắn duy nhất tại mỗi bước giải mã, phân tích cấu trúc tôpô nội tại của toàn bộ phân phối xác suất theo thời gian thực. Tác giả báo cáo tính ổn định của phương pháp đối với các biến động nhiệt độ (temperature robustness): khi nhiệt độ tăng, các phương pháp truyền thống có thể suy giảm đáng kể, trong khi p‑less duy trì chất lượng ổn định. Hơn nữa, nhờ từ bỏ logic quét tích lũy và chuẩn hóa lại các nhân lớn, phương pháp này, theo dữ liệu của tác giả, cung cấp hiệu quả tính toán cao hơn ở giai đoạn inference và tạo ra các câu trả lời nhỏ gọn hơn mà không mất độ chính xác trên các dataset về toán học, logic và viết sáng tạo.[29][28]

η‑lấy mẫu

η‑lấy mẫu (Hewitt et al., 2022) sử dụng ngưỡng xác suất phụ thuộc vào entropy, thích nghi với các ngữ cảnh entropy thấp nơi Top‑p có thể cắt ngắn quá mức.[30]

Tài liệu tham khảo

  • Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019; công bố tại ICLR 2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
  • Fan, A., Lewis, M., & Dauphin, Y. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
  • Meister, C., Pimentel, T., Wiher, G., & Cotterell, R. (2023). Locally Typical Sampling. arXiv:2202.00666.
  • Ravfogel, S., Goldberg, Y., & Goldberger, J. (2023). Conformal Nucleus Sampling. ACL Findings 2023.
  • Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of LLMs. arXiv:2402.06925.
  • Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693.
  • Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968.
  • Nguyen, M. et al. (2024). Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs. arXiv:2407.01082.
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
  • Bricken, T. Tail Free Sampling. [32].
  • p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding. arXiv:2509.23234.

Ghi chú

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751. [1]
  2. 2.0 2.1 2.2 Meister, C., Pimentel, T., Wiher, G., & Cotterell, R. (2023). Locally Typical Sampling. TACL, Vol. 11. arXiv:2202.00666. [2]
  3. 3.0 3.1 3.2 Large Language Models Hallucination: A Comprehensive Survey. arXiv:2510.06265. [3]
  4. Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693. [4]
  5. 5.0 5.1 5.2 5.3 5.4 5.5 5.6 Hugging Face Transformers. Generation strategies (top‑k, top‑p, temperature). [5]
  6. Hugging Face Transformers. generation/utils.py (исходный код). [6]
  7. 7.0 7.1 7.2 7.3 7.4 OpenAI API Reference. top_p — рекомендация «We generally recommend altering this or temperature but not both». [7]
  8. 8.0 8.1 Microsoft Learn (Azure OpenAI). Text/Chat Completions — parameters. [8]
  9. 9.0 9.1 Anthropic API Reference. Messages API — top_p. [9]
  10. 10.0 10.1 10.2 10.3 10.4 10.5 Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of LLMs. arXiv:2402.06925. [10]
  11. 11.0 11.1 From Illusion to Insight: A Taxonomic Survey of Hallucination Mitigation Techniques in LLMs. MDPI. [11]
  12. Survey and analysis of hallucinations in large language models: attribution to prompting strategies or model behavior. Frontiers in AI. [12]
  13. Anthropic. API release notes. [13]
  14. Hugging Face. GenerationConfig (top_p default). [14]
  15. Google AI / Vertex AI. Content generation parameters (topP/topK). [15] [16]
  16. Transformers API. TopPLogitsWarper (параметры и поведение, включая `min_tokens_to_keep`). [17]
  17. OpenAI API. Using reasoning models — parameter support. [18]
  18. OpenAI API. Using GPT-5.2. [19]
  19. Anthropic. Building with extended thinking. [20]
  20. Microsoft Learn (Azure AI Foundry). Reasoning models — supported parameters. [21]
  21. Hugging Face Transformers. MinPLogitsWarper. [22]
  22. vLLM. Sampling Parameters — min_p. [23]
  23. 23.0 23.1 23.2 23.3 Nguyen, M. et al. (2024). Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs. arXiv:2407.01082. [24]
  24. 24.0 24.1 Nguyen, M. et al. Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs. [25]
  25. Turning Down the Heat: A Critical Analysis of Min-p Sampling in Language Models. arXiv:2506.13681. [26]
  26. 26.0 26.1 Locally Typical Sampling. Transactions of the ACL, MIT Press. [27]
  27. 27.0 27.1 27.2 Bricken, T. Tail Free Sampling. [28]
  28. 28.0 28.1 p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding. OpenReview. [29]
  29. 29.0 29.1 p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding. arXiv:2509.23234. [30]
  30. Hewitt, J., Manning, C. D., & Liang, P. (2022). Truncation Sampling as Language Model Desmoothing. Findings of EMNLP 2022. arXiv:2210.15191. [31]

Xem thêm

  • Nhiệt độ
  • Mô hình ngôn ngữ lớn