Test-Time Compute là một kỹ thuật vận hành tại thời điểm inference (suy luận), giúp nâng cao hiệu suất mà không cần thay đổi mô hình cơ bản.
Bối cảnh
Khi thực hiện suy luận với các mô hình ngôn ngữ lớn (LLMs), ta có thể cải thiện hiệu suất bằng cách sử dụng tính toán động trong quá trình inference. Phương pháp Repeated Sampling cho phép thực hiện nhiều lượt sinh (generation) và chọn kết quả tốt nhất. Điều này tối ưu chi phí so với chỉ sử dụng mô hình lớn và đắt đỏ trong một lần sinh duy nhất.
Bước 1: Sinh nhiều mẫu độc lập
-
Cách thực hiện:Đưa cùng một prompt vào mô hình nhiều lần (tạo ra kkk mẫu).
-
Dùng high temperature để đảm bảo các câu trả lời đa dạng.
Nhiều lần sinh sẽ tạo ra một loạt đáp án khác nhau, từ đó tăng cơ hội có đáp án đúng hoặc chất lượng cao trong tập.
Bước 2: Chọn đáp án tốt nhất
-
Phương pháp lựa chọn:Voting (bỏ phiếu đa số): Nếu có câu trả lời giống nhau từ nhiều mẫu, thì chọn câu đó.
Reward Model (mô hình thưởng): Một mô hình hoặc bộ quy tắc để đánh giá và chấm điểm từng đáp án.
LLM as a Judge: Một LLM khác được sử dụng để đánh giá các đáp án và quyết định đâu là đáp án tốt nhất.
Tập trung vào đáp án “tốt nhất” thay vì chỉ dựa vào một lần sinh có thể sai lệch.
Bước 3: Đánh giá hiệu quả chi phí
-
Thử nghiệm với các giá trị k khác nhau (ví dụ: 5, 10, 50, 100).
-
Tìm điểm cân bằng giữa hiệu suất đạt được (performance) và chi phí tính toán (cost).
Việc tăng k quá cao sẽ làm chi phí tăng nhanh mà không cải thiện đáng kể hiệu suất.
Những Insights Quan Trọng
-
Mô hình nhỏ + nhiều mẫu > Mô hình lớn với 1 mẫu:Một mô hình nhỏ chạy nhiều lần có thể hiệu quả hơn việc chạy một mô hình lớn chỉ một lần.
-
Hiệu suất tăng tuyến tính logarit với số lượng mẫu kkk:Ban đầu, hiệu suất tăng mạnh, nhưng khi kkk lớn, lợi ích giảm dần.
-
Công cụ kiểm tra tự động vượt trội:Các bộ kiểm tra (như unit tests trong coding) đánh giá mẫu chính xác hơn con người hoặc các phương pháp khác.
-
Giới hạn của phương pháp xác minh:Hiệu quả của voting hoặc reward models bắt đầu giảm sau ~100 mẫu.
-
Ứng dụng mạnh nhất:Coding và các bài toán toán học vì chúng có tiêu chí rõ ràng để xác minh đáp án đúng.
Áp dụng thực tế
-
Với các bài toán lập trình: Sinh k lời giải cho một đoạn mã.
-
Chạy unit tests trên từng lời giải.
-
Chọn lời giải vượt qua được nhiều test nhất.
-
Với các bài toán suy luận ngôn ngữ:Sinh kkk văn bản.
-
Sử dụng một LLM khác để chấm điểm.
-
Chọn văn bản có điểm cao nhất.
Kết luận
Test-Time Compute với Repeated Sampling cho thấy rằng chúng ta có thể hy sinh chi phí inference để đạt hiệu suất cao hơn mà không cần huấn luyện lại mô hình.
Đây là giải pháp hiệu quả cho các bài toán cần hiệu suất cao mà không có đủ tài nguyên để sử dụng mô hình với tham số lớn nhất.
Contents