Hành Trình Giúp AI Về Gần Hơn: Câu Chuyện Về BitNet Và Khát Vọng Giảm Chi Phí

Không hiểu sao, dạo này tôi cứ trăn trở mãi về một câu đố nhỏ: “Có thứ gì bạn nhìn thấy, sao chép được, và sở hữu được, nhưng lại chẳng thể dùng?” Nghe có vẻ lạ lùng, nhưng khi nghĩ về những mô hình AI ngôn ngữ lớn (LLM) tiên tiến nhất hiện nay, câu trả lời chợt hiện ra: đó là chúng.

Một mô hình mạnh mẽ như Deep Seek V3 chẳng hạn, người ta nói rằng nó đòi hỏi ít nhất 400.000 đô la tiền phần cứng mới có thể chạy mượt mà. Ngay cả những mô hình nhỏ hơn, hay phiên bản “chưng cất” cũng cần đến những chiếc GPU 20.000 đô la, vẫn là một gánh nặng không nhỏ. Vấn đề là, liệu có cách nào để giảm bớt gánh nặng ấy, để AI không chỉ là sân chơi của những “ông lớn” với ngân sách khổng lồ?

Tôi ngồi đọc, rồi chợt nhận ra, một mô hình AI, suy cho cùng, cũng giống như một cỗ máy xử lý thông tin. Dữ liệu đi vào (X), qua “bộ não” với hàng tỷ “trọng số” (tham số), rồi cho ra kết quả (Y). Mỗi “trọng số” thường được lưu trữ bằng 16 bit (FP16). Một mô hình 7 tỷ tham số sẽ ngốn tới 14GB bộ nhớ. Con số này cần nằm gọn trong VRAM của GPU để xử lý nhanh. Nếu bộ nhớ không đủ, mô hình phải “xoay sở” bằng cách đẩy dữ liệu ra vào, mà sự “xoay sở” ấy thì chậm chạp vô cùng.

Thế rồi, người ta bắt đầu nghĩ đến “lượng tử hóa” (quantization). Nó giống như việc bạn cố gắng gói ghém đồ đạc vào một chiếc hộp nhỏ hơn, từ 16 bit giảm xuống còn 8 bit (FP8) hay thậm chí 4 bit (INT4). Việc này giúp tiết kiệm bộ nhớ đáng kể, từ 14GB giờ chỉ còn 7GB hay 3.5GB. Dĩ nhiên, việc “gói ghém” quá chặt sẽ làm mất đi một phần độ chính xác, khiến mô hình đôi khi hơi “nhầm lẫn” một chút. Nhưng tôi thấy, việc chạy một mô hình lớn hơn ở FP8 thường thông minh và kinh tế hơn một mô hình nhỏ dùng đầy đủ độ chính xác.

Cứ ngỡ câu chuyện chỉ dừng lại ở việc tinh chỉnh sau khi mô hình đã hoàn thiện, nhưng rồi tôi bắt gặp cái tên BitNet, một hướng đi mới lạ và đầy hứa hẹn. Thay vì “lượng tử hóa” một mô hình đã huấn luyện đầy đủ, BitNet được “thai nghén” và huấn luyện ngay từ đầu với các trọng số bit thấp. Cứ như là, họ không “chữa cháy” sau khi đã hoàn chỉnh, mà là xây dựng từ những viên gạch đầu tiên với mục tiêu tiết kiệm.

Tháng 10 năm 2023, BitNet ban đầu ra đời với ý tưởng táo bạo: chỉ dùng 1-bit trọng số (-1 hoặc 1). Nghĩa là tiết kiệm bộ nhớ gấp 16 lần. Các phép nhân ma trận phức tạp giờ đây chỉ còn là phép cộng trừ đơn giản. Tôi thấy người ta nói rằng, nó tiết kiệm năng lượng tới 30 lần so với một mô hình FP16 7 tỷ tham số. Thế nhưng, phiên bản đầu tiên này vẫn có một điểm yếu nhỏ: nó thiếu trạng thái “số 0”, cứ như là mọi kết nối đều phải “hoạt động” liên tục.

Bốn tháng sau, một phiên bản khác mang tên BitNet B1.58 xuất hiện, và nó đã khắc phục được điểm yếu ấy. Họ thêm vào trạng thái “số 0” (giờ đây là -1, 0, 1). Cái sự “im lặng” này, họ gọi là “độ thưa thớt”, giúp mô hình có thể “tắt” đi những kết nối không cần thiết, làm hiệu suất tăng lên đáng kể. Tôi cũng hơi ngạc nhiên, khi thấy một mô hình BitNet B1.58 1.3 tỷ tham số có thể nhanh hơn gấp 66 lần và dùng bộ nhớ ít hơn 3 lần so với Llama 1.3B. Với mô hình 3 tỷ tham số, nó còn nhanh hơn 2.7 lần và tiết kiệm bộ nhớ 3.5 lần, thậm chí còn tốt hơn cả Llama gốc. Vấn đề là, BitNet có vẻ như “càng lớn càng lợi hại” – một mô hình 70 tỷ tham số BitNet B1.58 có thể tiết kiệm bộ nhớ tới 7.16 lần. Một mô hình BitNet 70B còn hiệu quả hơn cả LLM 13B dùng độ chính xác đầy đủ.

Cứ tưởng thế là xong, nhưng hành trình khám phá đâu có dừng lại. Tám tháng sau, BitNet A4.8 ra đời, tập trung giải quyết những “nút thắt cổ chai” còn lại, đó là các “kích hoạt” (activations) và “bộ nhớ đệm KV” (KV cache) – những thứ quan trọng cho việc xử lý ngữ cảnh dài. Phiên bản này dùng kích hoạt 4-bit cho đầu vào và 8-bit cho các trạng thái trung gian, cùng với bộ nhớ đệm KV 3-bit. Nhờ bộ nhớ đệm 3-bit này, mô hình có thể xử lý ngữ cảnh dài gấp 5 lần mà vẫn dùng cùng lượng bộ nhớ. Thật là một điều kỳ diệu! BitNet A4.8 giờ đây còn là một “mô hình không dày đặc” (non-dense model), chỉ dùng 55% tham số mỗi khi xử lý, gần giống như các mô hình Mixture-of-Experts.

Và cuối cùng, điều khiến tôi thực sự ấm lòng là câu chuyện về chi phí đào tạo. Một mô hình BitNet 2 tỷ tham số được huấn luyện trên 4 nghìn tỷ token, người ta ước tính chỉ tốn khoảng 1.300 đô la cho một lần chạy. Nếu không có BitNet, con số này có thể lên tới 26.000 đô la! Nó không chỉ tiết kiệm năng lượng gấp 12.4 lần mà còn giảm 5 đến 12 lần dung lượng bộ nhớ. Một mô hình BitNet 2B chỉ tốn 0.44GB bộ nhớ, ngang bằng với một mô hình lớn hơn nhiều lần.

Đi qua từng bước một, từng cột mốc nhỏ bé của BitNet, tôi thấy rõ hơn khát vọng làm cho AI trở nên gần gũi hơn với tất cả chúng ta. Dù vẫn còn đó những thách thức về việc tối ưu hóa phần cứng hay mở rộng ngữ cảnh dài hơn nữa, nhưng tôi tin rằng, với những gì BitNet đã làm được, kỷ nguyên của AI hiệu quả và dễ tiếp cận hơn đang thực sự đến rất gần. Thế thôi. Một câu chuyện nhỏ về việc làm sao để những “bộ não” thông minh ấy không còn quá xa vời với chúng ta nữa.