llama.cpp Phát Hành Bản b11368 Thêm Lấy Mẫu Xác Suất Và Lấy Mẫu Loại Trừ Cho Giải Mã Dự Đoán
Phiên bản b11368 của llama.cpp bổ sung tính năng lấy mẫu nháp theo xác suất (probabilistic draft sampling) và lấy mẫu loại trừ (rejection sampling) ở mô hình đích cho giải mã dự đoán (speculative decoding) và dự đoán đa token (MTP). Cập nhật này cho phép mô hình nháp lấy mẫu các token ứng viên theo xác suất trong khi mô hình chính xác nhận các token đó thông qua lấy mẫu loại trừ. Giải mã dự đoán giúp tăng tốc độ suy luận của LLM bằng cách tạo trước nhiều token, nhưng phương pháp lấy mẫu tham lam (greedy) truyền thống có thể làm giảm chất lượng hoặc độ đa dạng của văn bản. Việc hỗ trợ lấy mẫu xác suất và lấy mẫu loại trừ giúp đảm bảo người dùng đạt được tốc độ suy luận nhanh hơn mà vẫn duy trì phân phối xác suất chuẩn xác ở đầu ra. Bản phát hành bổ sung cờ bật lấy mẫu nháp theo xác suất (mặc định là giải mã tham lam) và tự động chuyển về lấy mẫu argmax cho các yêu cầu ràng buộc ngữ pháp. Các sửa lỗi kỹ thuật bao gồm việc tách biệt luồng tạo số ngẫu nhiên (RNG) giữa bộ lấy mẫu nháp và mô hình đích, chuẩn hóa lại phân phối xác suất sau khi áp dụng mặt nạ, và chuyển logic phát lại (replay) sang phía máy chủ.
## KIẾN THỨC NỀN
Giải mã dự đoán (speculative decoding) là một kỹ thuật tối ưu hóa suy luận cho các mô hình ngôn ngữ lớn, sử dụng một mô hình nháp nhỏ gọn hoặc phần mở rộng kiến trúc để đề xuất nhiều token, sau đó mô hình chính sẽ xác nhận song song. Dự đoán đa token (Multi-Token Prediction - MTP) mở rộng phương pháp này bằng cách huấn luyện hoặc điều chỉnh mô hình để dự đoán đồng thời nhiều token tương lai thay vì chỉ từng token một.