Nucleus Sampling
Tìm hiểu cách lấy mẫu nucleus (top-p) chọn các token cho việc tạo văn bản AI, và so sánh phương pháp này với top-k, giải mã tham lam (greedy decoding), và nhiệt độ (temperature) để tinh chỉnh độ đa dạng của đầu ra.
Lấy mẫu nucleus, còn gọi là lấy mẫu top-p, là một cách chọn token tiếp theo trong quá trình sinh văn bản bằng AI. Thay vì luôn chọn token có xác suất cao nhất, model xây dựng một danh sách rút gọn có tổng xác suất đạt ít sau đó chọn ngẫu nhiên từ danh sách rút gọn đó. Danh sách rút gọn này thay đổi theo mỗi dự đoán: nó có thể nhỏ khi một câu tiếp theo là hiển nhiên và lớn hơn khi có nhiều câu tiếp theo hợp lý.
Cách hoạt động của Lấy mẫu Nucleus#
Một language model gán một xác suất cho mọi token tiếp theo có thể. Các xác suất này thường được tính toán từ các điểm số đầu ra của model bằng cách sử dụng softmax, giúp các giá trị có tổng bằng một. Lấy mẫu nucleus sắp xếp các token từ xác suất cao nhất đến thấp nhất, đưa chúng vào cho đến khi xác suất tích lũy của chúng đạt đến ngưỡng p, loại bỏ phần còn lại và lấy mẫu từ các token được bao gồm. Ở đây, p đại diện cho khối lượng xác suất, chứ không phải xác suất của một token riêng lẻ. Tài liệu softmax của PyTorch giải thích việc chuyển đổi xác suất, trong khi hướng dẫn giải mã của IBM mô tả điểm ngắt tích lũy. (docs.pytorch.org)
Giả sử bốn token tiếp theo có thể có các xác suất là 0,50, 0,25, 0,15 và 0,10. Với top_p=0.80, hai token đầu tiên chỉ có tổng là 0,75, vì vậy token thứ ba cũng được đưa vào, nâng danh sách rút gọn lên 0,90. Token thứ tư bị loại bỏ. Model sau đó lấy mẫu trong số ba token đầu tiên tương ứng với xác suất của chúng sau khi chuẩn hóa; nó không cấp cho mỗi token một cơ hội bằng nhau. Điểm ngắt có thể vượt quá p vì token vượt qua nó vẫn nằm trong danh sách rút gọn. Giải thích của Google Cloud về top-p mô tả cùng quy tắc chọn token. (cloud.google.com)
Quá trình lựa chọn này diễn ra lại sau mỗi token được tạo ra. Khi câu phát triển, model tính toán một phân phối mới và do đó tạo ra một nucleus mới.
Top-p so với Top-k, Giải mã Tham lam và Nhiệt độ#
Các cài đặt này ảnh hưởng đến các phần khác nhau của quá trình tạo:
- Lấy mẫu Top-k giữ lại một số lượng ứng viên cố định, chẳng hạn như năm token có khả năng xảy ra cao nhất. Top-p giữ lại đủ ứng viên để đạt đến ngưỡng xác suất, do đó danh sách rút gọn của nó không có kích thước cố định.
- Giải mã tham lam luôn chọn token có khả năng xảy ra cao nhất. Nó có thể dự đoán được nhưng không mang lại sự biến đổi nào mà việc lấy mẫu cho phép.
- Nhiệt độ thay đổi mức độ mạnh mẽ mà model ưu tiên các token có xác suất cao trước khi lựa chọn. Nhiệt độ thấp hơn tập trung xác suất vào các lựa chọn hàng đầu; nhiệt độ cao hơn phân bổ nó rộng hơn. Top-p thay vào đó thiết lập một điểm ngắt tích lũy trên phân phối kết quả.
Các cài đặt có thể kết hợp các điều khiển này, nhưng sự tương tác của chúng làm cho kết quả khó giải thích hơn. Khi thử nghiệm, hãy thay đổi một cài đặt tại một thời điểm. Tài liệu tham khảo tham số Chat Completions của OpenAI mô tả top_p và khuyên bạn nên điều chỉnh cài đặt đó hoặc nhiệt độ thay vì cả hai cùng lúc. (platform.openai.com)
Nơi nó quan trọng trong thực tế#
Trong một chatbot hỗ trợ khách hàng, lấy mẫu nucleus có thể cho phép một số cách diễn đạt tự nhiên cho một câu trả lời thông thường mà không cần rút ra từ mọi phần tiếp theo khó xảy ra. Ví dụ, một trợ lý giải thích chính sách đổi trả có thể thay đổi câu mở đầu của mình trong khi vẫn giữ nguyên các chi tiết chính sách được cung cấp trong prompt của trợ lý. Việc lấy mẫu không xác minh các chi tiết đó: một câu trả lời lưu loát vẫn có thể sai, vì vậy việc kiểm tra thực tế và cơ sở thích hợp vẫn là cần thiết.
Trong chú thích hình ảnh, một vision-language model có thể có một số cách hợp lý để mô tả cùng một khung cảnh đường phố. Top-p có thể thay đổi cách diễn đạt của chú thích trong khi lọc bỏ các lựa chọn token có xác suất thấp. Một pipeline trực quan có thể sử dụng trước Ultralytics YOLO26 để phát hiện đối tượng, sau đó cung cấp các đối tượng được phát hiện làm bối cảnh cho bộ tạo chú thích. Bước phát hiện của YOLO không sử dụng lấy mẫu nucleus để chọn nhãn đối tượng của nó; cài đặt này áp dụng cho bước tạo ngôn ngữ hạ nguồn. Hướng dẫn chú thích hình ảnh TensorFlow minh họa cách đầu vào trực quan và bộ giải mã văn bản kết hợp với nhau. (ibm.com)
Thử nghiệm Top-p trong một Workflow được tài liệu hóa#
Ultralytics LLM interface chấp nhận các đối số yêu cầu cho một điểm cuối language-model tương thích. Sau khi cài đặt ultralytics[llm] và thiết lập OPENAI_API_KEY, ví dụ này yêu cầu một phản hồi ngắn với top_p=0.9:
from ultralytics import LLM
# Use an endpoint that supports the top_p request argument.
llm = LLM("gpt-4.1-mini", api="chat.completions")
prompt = "Describe a city bus in one friendly sentence."
response = llm(prompt, top_p=0.9)
message = response.choices[0].message
print(message.content)Mã nguồn để việc lựa chọn token cho nhà cung cấp language-model. Chạy lại có thể tạo ra cách diễn đạt khác, nhưng top_p=0.9 không phải là cam kết rằng mọi phản hồi sẽ khác nhau. Kiểm tra các tham số được hỗ trợ của model đã chọn trước khi áp dụng cùng một cài đặt ở nơi khác.
Chọn một cài đặt hữu ích#
Bắt đầu với mặc định của model, sau đó so sánh các đầu ra trên các prompt đại diện. Giảm top_p nếu phản hồi đi lệch vào các từ ngữ khó xảy ra; hãy cân nhắc giá trị cao hơn nếu chúng lặp lại một cách không cần thiết. Đánh giá kết quả theo tác vụ—chứ không chỉ bằng sự đa dạng. Đối với câu trả lời hoặc chú thích của khách hàng, hãy xem xét độ chính xác về mặt thực tế và liệu các chi tiết quan trọng có hiện diện hay không. Danh sách rút gọn hẹp hơn có thể làm giảm một số phần tiếp theo bất thường, nhưng nó không thể làm cho các tuyên bố không có căn cứ trở thành sự thật. Hướng dẫn của IBM về việc tạo ra đầu ra chính xác cũng coi các lựa chọn giải mã chỉ là một phần của workflow tạo dựa trên cơ sở. (ibm.com)









