llama.cpp phát hành bản b11440 sửa lỗi cấp phát lại bộ điều phối trong speculative decoding
Phiên bản b11440 của llama.cpp khắc phục lỗi cấp phát lại bộ điều phối đồ thị tính toán xảy ra khi khởi tạo speculative decoding lúc các cờ trích xuất NextN thay đổi. Bản cập nhật này vô hiệu hóa lịch trình bộ nhớ đã đặt trước khi các cờ thay đổi, buộc hệ thống tái cấp phát bộ nhớ phù hợp với hình dạng đồ thị tính toán mới. Sửa lỗi này giúp ngăn ngừa các lỗi runtime (cụ thể là GGML_SCHED_DEBUG_REALLOC) khi chạy thuật toán speculative decoding với tính năng Dự đoán Nhiều Token (MTP). Điều này đảm bảo tính ổn định bộ nhớ và khả năng thực thi chính xác cho các cấu hình suy luận LLM nâng cao. Nguyên nhân do quá trình trích xuất NextN không che (unmasked) giữ lại tất cả token cho đến lớp cuối cùng thay vì cắt bớt theo các dòng đầu ra, khiến bước giải mã đầu tiên phải cấp phát lại bộ nhớ. Khi các batch rộng hơn tiếp theo được xử lý, nó vi phạm kiểm tra bộ điều phối, vấn đề này hiện đã được khắc phục bằng cách chủ động kích hoạt tái cấp phát lịch trình tính toán.
## KIẾN THỨC NỀN
llama.cpp là một khung mã nguồn mở C/C++ phổ biến dùng để chạy các mô hình ngôn ngữ lớn (LLM) cục bộ trên nhiều phần cứng khác nhau. Phân tách suy luận theo cơ chế speculative decoding giúp tăng tốc bằng cách tạo nhanh các token nháp và xác minh chúng theo lô, trong đó công nghệ Dự đoán Nhiều Token (MTP) cho phép mô hình tự dự đoán nhiều token tiếp theo. Thư viện GGML bên dưới sử dụng một bộ điều phối bộ nhớ để cấp phát trước đồ thị tính toán nhằm đạt hiệu năng tối đa, đòi hỏi việc theo dõi chính xác kích thước tensor qua từng chu kỳ tính toán.