Consistency LLM: Chuyển LLM thành bộ giải mã song song để tăng tốc suy luận lên 3,5 lần
(hao-ai-lab.github.io)Consistency Large Language Models (CLLM)
- Các LLM từ trước đến nay thường được xem là bộ giải mã tuần tự, hoạt động bằng cách giải mã liên tiếp từng token một
- Bài blog này cho thấy các LLM đã được tiền huấn luyện có thể dễ dàng được chuyển đổi thành các bộ giải mã song song hiệu quả
- Consistency Large Language Models (CLLM) là một họ bộ giải mã song song mới có thể giải mã hiệu quả chuỗi gồm n token ở mỗi bước suy luận để giảm độ trễ suy luận
- CLLM mô phỏng quá trình nhận thức khi con người hình thành cả câu hoàn chỉnh trong đầu trước khi nói từng từ, và có thể được huấn luyện hiệu quả chỉ bằng cách tinh chỉnh (fine-tuning) một LLM đã tiền huấn luyện
- CLLM được huấn luyện theo cách thực hiện giải mã song song sao cho ánh xạ một chuỗi n token được khởi tạo ngẫu nhiên thành cùng kết quả với giải mã tự hồi quy (autoregressive, AR) trong ít bước nhất có thể
- Theo kết quả thực nghiệm, CLLM cho thấy tốc độ sinh tăng từ 2,4 đến 3,4 lần so với bộ giải mã AR truyền thống, với hiệu năng tương đương hoặc tốt hơn các kỹ thuật suy luận nhanh như Medusa2 hay Eagle
- CLLM có thể đạt được mức cải thiện hiệu năng này mà không cần thêm chi phí bộ nhớ
Bối cảnh và giới hạn của giải mã Jacobi
- LLM tạo token theo từng bước một bằng cách giải mã AR, nên khi tạo câu trả lời dài sẽ phát sinh độ trễ cao
- Giải mã Jacobi bắt nguồn từ các phương pháp giải phương trình phi tuyến Jacobi và Gauss-Seidel, và đã được chứng minh là tương đương với sinh AR dùng greedy sampling
- Giải mã Jacobi tái cấu trúc quá trình sinh tuần tự thành một hệ gồm n phương trình phi tuyến với n biến dựa trên lặp Jacobi, từ đó cho phép xử lý song song
- Ở mỗi bước lặp, nó có thể dự đoán một hoặc nhiều token đúng, nhờ đó có khả năng tăng tốc giải mã AR
- Tuy nhiên trên thực tế, vì LLM được huấn luyện theo kiểu AR gần như không thể sinh đúng token khi các token trước đó bị sai, nên trong phần lớn các vòng lặp Jacobi chỉ thu được một sửa đổi cho chuỗi n token, dẫn đến quỹ đạo Jacobi dài hơn
- Các phương pháp như lookahead decoding hay speculative decoding cố gắng giảm sự kém hiệu quả này của giải mã Jacobi nhưng phát sinh thêm chi phí bộ nhớ khi suy luận, trong khi CLLM thì không
Phương pháp huấn luyện CLLM
- Huấn luyện CLLM chủ yếu gồm hai phần: chuẩn bị quỹ đạo Jacobi và tối ưu hóa tổn thất consistency cùng tổn thất AR
- Ở giai đoạn chuẩn bị quỹ đạo Jacobi, khi tạo toàn bộ chuỗi phản hồi gồm l token, hệ thống cắt theo từng đoạn n token và thực hiện giải mã Jacobi tuần tự cho đến khi sinh xong; chuỗi được tạo ở mỗi quỹ đạo được xem như một mục dữ liệu
- Trong quá trình huấn luyện, tổn thất consistency và tổn thất AR được tối ưu cùng nhau; tổn thất consistency đảm bảo mô hình dự đoán nhiều token trong một lần, còn tổn thất AR giúp CLLM không lệch khỏi LLM đích để duy trì chất lượng sinh
- Tổn thất global consistency (GC) giảm thiểu khoảng cách giữa một điểm bất kỳ trên quỹ đạo Jacobi và điểm cố định, từ đó khuyến khích CLLM dự đoán điểm cố định tại bất kỳ vị trí nào trên quỹ đạo Jacobi
- Tổn thất local consistency (LC) thúc đẩy các trạng thái lân cận trên quỹ đạo Jacobi tạo ra cùng một đầu ra
- Tổn thất AR bao gồm tổn thất AR truyền thống dựa trên kết quả sinh của LLM đích; mục tiêu là giữ cho CLLM không lệch khỏi phân phối của LLM đích
Kết quả thực nghiệm
- Thực nghiệm bao gồm các tác vụ miền chuyên biệt như Spider (text-to-SQL), Human-Eval (hoàn thiện mã Python), GSM8k (toán học) và các bài kiểm tra hội thoại mở rộng như MT-bench
- CLLM cho thấy mức tăng tốc lớn nhất so với mô hình đích, và đạt mức tăng tốc tương đương hoặc tốt hơn Medusa2 mà không có chi phí bổ sung khi suy luận
- Trên MT-bench, CLLM đạt mức tăng tốc gần như tương đương khi kết hợp với Medusa2, đồng thời mang lại khả năng thích nghi và hiệu quả bộ nhớ cao hơn
- Chi phí tinh chỉnh của CLLM ở mức vừa phải; ngay cả khi kích thước tập dữ liệu lớn, chỉ cần dùng khoảng 10% tập dữ liệu để tạo quỹ đạo Jacobi cũng có thể đạt mức tăng tốc khoảng 2,5 lần
- CLLM có thể dự đoán đúng nhiều token liên tiếp trong một vòng lặp Jacobi thông qua hiện tượng fast forwarding
- CLLM cho thấy khả năng stationary token: ngay cả khi token trước đó bị sai, nó vẫn có thể dự đoán trước token đúng và giữ nguyên chúng không thay đổi
- Thông qua huấn luyện, CLLM học được các khái niệm ngôn ngữ cốt lõi như collocation, nhờ đó có thể suy ra cấu trúc ở bất kỳ điểm nào trên quỹ đạo Jacobi và dự đoán đồng thời nhiều từ để giảm số bước lặp xuống mức tối thiểu
Ý kiến của GN⁺
-
CLLM có vẻ đã giải quyết hiệu quả vấn đề độ trễ dài của cơ chế giải mã AR trong LLM bằng cách tận dụng giải mã Jacobi. Đặc biệt, việc đạt được tăng tốc thông qua giải mã song song mà không cần thêm chi phí bộ nhớ là rất ấn tượng
-
Phương pháp huấn luyện của CLLM có vẻ tương đối đơn giản khi chỉ tinh chỉnh LLM hiện có bằng tổn thất consistency, nhưng điểm đáng chú ý là thông qua đó mô hình học được một đặc tính ngôn ngữ quan trọng là collocation, từ đó cải thiện mạnh hiệu năng giải mã song song
-
Tuy vậy, vì CLLM giả định greedy sampling, nên vẫn cần thêm nghiên cứu để xác minh liệu nó có hoạt động tốt với các chiến lược decoding đa dạng hơn hay không. Ngoài ra, hiện tại kết quả thực nghiệm mới chỉ giới hạn ở tiếng Anh, nên khả năng khái quát sang nhiều ngôn ngữ khác cũng cần được kiểm chứng
-
CLLM có vẻ là một cách tiếp cận thực tiễn để tăng tốc độ phản hồi của LLM. Nó có thể phù hợp để áp dụng vào các tác vụ đòi hỏi tính thời gian thực như tìm kiếm web hay chatbot
-
Cá nhân tôi kỳ vọng cách huấn luyện consistency của CLLM có thể được áp dụng không chỉ cho các LLM như GPT mà còn cho những mô hình sinh khác như mô hình tạo ảnh hoặc mô hình tổng hợp giọng nói. Hy vọng ý tưởng của CLLM sẽ góp phần cải thiện hiệu quả cho nhiều mô hình sinh khác trong tương lai
1 bình luận
Ý kiến trên Hacker News