Chạy mô hình ngôn ngữ ngay trên máy mình có ba lý do chính đáng: dữ liệu không rời khỏi máy, không tốn phí theo từng lượt gọi, và dùng được cả khi mất mạng. Nhưng trước khi bàn tới ba lợi ích đó, câu hỏi đầu tiên luôn thực tế hơn: máy mình chạy nổi mô hình cỡ nào? May là có thể ước lượng khá chính xác bằng vài phép tính nhẩm.
Ước lượng bộ nhớ
Quy tắc gần đúng: bộ nhớ cần ≈ số tham số × số byte mỗi tham số, cộng thêm 15–25% cho bộ đệm ngữ cảnh và chi phí phụ. Con số "byte mỗi tham số" phụ thuộc vào mức lượng tử hoá — tức nén trọng số xuống ít bit hơn để đổi một chút chất lượng lấy rất nhiều bộ nhớ:
- 16 bit (2 byte/tham số): một mô hình 7 tỉ tham số cần khoảng 15GB — bản đầy đủ, nặng nhất.
- 8 bit (1 byte): khoảng 8GB, và chất lượng gần như không đổi so với bản đầy đủ. Đây thường là điểm cân bằng tốt nhất.
- 4 bit (0,5 byte): khoảng 4,5GB, chất lượng giảm nhẹ nhưng chấp nhận được cho hầu hết công việc thường ngày.
Dưới 4 bit thì chất lượng bắt đầu tụt rõ, đặc biệt ở suy luận nhiều bước và sinh mã — đó là ngưỡng nên dừng lại nếu bạn quan tâm tới độ tin cậy.
Nút thắt là băng thông bộ nhớ, không phải sức tính
Đây là điều phản trực giác nhất và quan trọng nhất để hiểu. Sinh mỗi token đòi hỏi đọc lại toàn bộ trọng số của mô hình một lần. Vì thế tốc độ sinh chữ bị chặn bởi băng thông bộ nhớ — tốc độ đọc dữ liệu từ bộ nhớ ra — chứ không phải bởi số phép tính mỗi giây mà con chip làm được.
Hệ quả rất cụ thể: một card đồ hoạ với bộ nhớ băng thông cao thắng áp đảo một CPU mạnh nhưng bộ nhớ chậm, dù CPU đó có nhiều nhân. Và trên các máy tính xách tay đời mới có bộ nhớ hợp nhất, thường thì dung lượng không phải vấn đề — chúng có nhiều bộ nhớ — mà chính băng thông mới là thứ quyết định bạn đọc được nhanh hay chậm.
Kỳ vọng hợp lý và khi nào nên chạy tại chỗ
Một mô hình cỡ nhỏ chạy trên card đồ hoạ phổ thông cho tốc độ đủ mượt để đọc theo lúc nó sinh chữ. Cùng mô hình đó chạy trên CPU thường chậm hơn nhiều lần — vẫn dùng được cho xử lý theo lô chạy nền, nhưng không dùng được cho hội thoại thời gian thực.
Nguyên tắc chọn việc gọn lại như sau: những việc lặp lại nhiều và có khuôn mẫu rõ — phân loại, trích xuất thông tin, tóm tắt, viết lại — thì một mô hình nhỏ chạy tại chỗ làm tốt, rẻ, và riêng tư. Còn những việc cần suy luận nhiều bước hoặc kiến thức rộng thì một mô hình lớn gọi qua API vẫn vượt trội đáng kể, và cố ép mô hình nhỏ tại chỗ làm thay chỉ đổi lấy sự thất vọng. Biết ranh giới đó giúp bạn dùng máy nhà đúng chỗ nó thật sự mạnh.
Thảo luận