microGPT-C: Huấn luyện và suy luận GPT bằng C thuần, đạt 10 triệu token/giây trên Apple M5
Dự án mã nguồn mở microGPT-C mang đến một mô hình transformer cấp ký tự được viết hoàn toàn bằng C, không phụ thuộc vào bất kỳ thư viện ngoài nào. Với chỉ một tệp tin duy nhất, mã nguồn này cho phép huấn luyện trên khoảng 32.000 tên chỉ trong vài giây và đạt tốc độ suy luận ấn tượng 10,1 triệu token mỗi giây trên chip Apple M5 Pro. Dự án không chỉ tối ưu cho hiệu năng mà còn là tài liệu học tập tuyệt vời về cơ chế hoạt động của GPT.

microGPT-C vừa gây chú ý trong cộng đồng lập trình viên khi chứng minh rằng một mô hình GPT có thể được xây dựng theo cách "nguyên tử" nhất: chỉ với một tệp C duy nhất, không dùng bất kỳ thư viện nào ngoài libc. Dự án trên GitHub không chỉ là một bản demo kỹ thuật mà còn là một công cụ giáo dục mạnh mẽ, giúp người đọc thấy rõ từng bước từ forward pass, backprop đến Adam optimizer trong một mô hình ngôn ngữ.
Mô hình nhỏ nhưng hiệu quả đáng ngạc nhiên
Điểm đặc biệt của microGPT-C nằm ở kích thước: mô hình chỉ có 4.192 tham số nhưng vẫn thể hiện khả năng khái quát hóa tốt, thay vì chỉ học vẹt dữ liệu. Khi huấn luyện trên 20.000 trong tổng số 32.033 tên người, mô hình đạt mức lỗi 2,2054 nats mỗi ký tự trên tập huấn luyện và 2,2039 trên 12.033 tên chưa từng thấy — kết quả này thậm chí vượt qua một mô hình trigram nội suy có số tham số gần gấp 5 lần.
Hiệu năng suy luận vượt trội
Phần thú vị nhất của dự án nằm ở bảng đo hiệu năng. Nhờ tận dụng tối đa tập lệnh SIMD (NEON trên ARM64 và AVX2 trên x86-64), microGPT-C đạt tốc độ suy luận đáng kinh ngạc:
- Apple M5 Pro — NEON: 10.168.430 token/giây
- AMD Ryzen 5 5600H — AVX2: 6.927.775 token/giây
Con số 10 triệu token mỗi giây trên M5 Pro cho thấy quá trình tối ưu hóa đặc biệt hiệu quả khi chỉ sử dụng một nhánh suy luận chuyên dụng (gpt_forward_infer) thay vì nhánh huấn luyện thông thường. Các tác giả cũng ghi chú trong tài liệu PERFORMANCE.md rằng logits từ nhánh này khớp với forward pass tiêu chuẩn trong phạm vi sai số của fp32.
Ứng dụng và giá trị học thuật
Với người học machine learning, microGPT-C là một mỏ vàng. Thay vì phải dò dẫm trong hàng nghìn dòng code của PyTorch, bạn có thể đọc trực tiếp toàn bộ vòng đời của một transformer trong một tệp C duy nhất. Mã nguồn cũng hỗ trợ tốt trên macOS, Linux và Windows (MSYS2), giúp bất kỳ ai cũng có thể chạy thử trên máy của mình.
"Đây là cách tối giản nhất để hiểu GPT hoạt động ra sao, từ huấn luyện đến sinh văn bản, mà không cần bất kỳ lớp trừu tượng nào."
Với tốc độ suy luận ấn tượng và thiết kế gọn gàng, dự án này xứng đáng là điểm đến cho những ai đam mê tối ưu hiệu năng và muốn nhìn thấy "bên trong" của các mô hình ngôn ngữ lớn hiện đại.