Lập trình là một quá trình lặp đi lặp lại: bạn viết mã, chạy nó, đánh giá kết quả và cải tiến dựa trên phản hồi. Các tiến bộ gần đây trong mô hình ngôn ngữ lớn (LLM) cho việc tạo mã đã cố gắng tích hợp quá trình này vào thời gian suy luận bằng các phương pháp như lấy mẫu song song. Tuy nhiên, các phương pháp này dựa vào tìm kiếm mà không có sự học hỏi thực sự — trọng số mô hình được đóng băng.
Chúng tôi khám phá học tăng cường (Reinforcement Learning – RL) trong cài đặt đa luồng, sử dụng phản hồi trung gian từ môi trường và che giấu suy nghĩ của mô hình để tránh bùng nổ ngữ cảnh qua nhiều lượt. Mô hình của chúng tôi, Kevin-32B (hay còn gọi là K(ernel D)evin), vượt trội so với các mô hình lý luận tiên tiến trong việc tạo kernel. Hơn nữa, kết quả cho thấy rằng đào tạo đa luồng giúp mô hình tự cải tiến hiệu quả hơn so với đào tạo đơn luồng.
Mục lục
Phương Pháp Đào Tạo Đa Luồng
Chúng tôi sử dụng KernelBench, một bộ dữ liệu gồm 250 tác vụ học sâu cổ điển dựa trên PyTorch. Nó đo lường khả năng của mô hình trong việc thay thế các toán tử PyTorch bằng các kernel CUDA tối ưu hóa. Chúng tôi tập trung vào hai cấp độ đầu tiên, mỗi cấp độ chứa 100 tác vụ. Cấp độ 1 bao gồm các tác vụ cơ bản như nhân ma trận, tích chập và hàm mất mát, trong khi cấp độ 2 gồm các toán tử hợp nhất. Chúng tôi đào tạo trên 180 tác vụ của hai cấp độ này, với một tập hợp kiểm tra gồm 20 tác vụ.
Trong quá trình đào tạo, mô hình đi qua một vòng lặp phản hồi lặp đi lặp lại: chúng tôi trích xuất phản hồi từ một kernel được tạo ra và yêu cầu mô hình cải tiến nó. Nếu kernel không biên dịch được, chúng tôi chuyển cho mô hình lỗi và yêu cầu sửa chữa. Nếu đúng, chúng tôi đo thời gian chạy và yêu cầu mô hình cải thiện thêm.
Kết Quả
Với 8 bước cải tiến, Kevin-32B đạt tỷ lệ chính xác trung bình 65% trên toàn bộ tập dữ liệu, vượt trội so với QwQ-32B và các mô hình tiên tiến khác. Nó giải quyết 89% tập dữ liệu, trong khi o4-mini và o3 chỉ giải quyết được 53% và 51% tương ứng. Kevin-32B cũng đạt tốc độ tăng tốc lên đến 1.41x, tốt hơn các mô hình hàng đầu.
Đào Tạo Đa Luồng So Với Đơn Luồng
Kevin-32B thể hiện sự cải thiện đáng kể so với QwQ-32B và mô hình được đào tạo đơn luồng. Với 4 bước cải tiến, Kevin-32B vượt trội hơn một chút so với mô hình đơn luồng, nhưng khoảng cách này mở rộng khi tăng lên 8 bước. Điều này cho thấy đào tạo đa luồng có khả năng mở rộng tốt hơn theo trục tuần tự bằng cách khuyến khích các tối ưu hóa mạnh mẽ hơn.
Tương Lai Của Công Nghệ
Chúng tôi tin rằng đây chỉ là bước đầu tiên trong việc khám phá các phương pháp đào tạo tác nhân lập trình. Với nhiều thời gian và tài nguyên hơn, chúng tôi mong muốn thử nghiệm các phương pháp học sâu hơn và tích hợp các kỹ thuật tìm kiếm phức tạp hơn vào quá trình đào tạo.
Để tìm hiểu thêm về Kevin-32B và phương pháp đào tạo đa luồng, bạn có thể truy cập HuggingFace.