AI trên máy · đọc 8 phút
Làm sao một mô hình ngôn ngữ vừa với điện thoại
Các ứng dụng AI cục bộ đòi một lượng dung lượng đáng ngạc nhiên, và lý do không phải là phình to vô ích. Hiểu những gigabyte ấy đi đâu cũng giải thích vì sao mô hình nhanh trên điện thoại mới và ì ạch trên máy cũ — và cái tên tệp
Q3_K_S thật ra đang nói gì với bạn.
Một mô hình là một đống số khổng lồ
Mô hình ngôn ngữ là một tập tham số đã học — các trọng số. Mỗi trọng số là một con số, và có hàng tỉ con số như vậy. Chữ “2B” trong tên một mô hình nghĩa là khoảng hai tỉ tham số.
Lưu ở độ chính xác đầy đủ, mỗi trọng số chiếm 4 byte. Hai tỉ trọng số, mỗi cái 4 byte, là khoảng 8 GB, và đó là cho một trong những mô hình nhỏ hơn . Vấn đề gói gọn trong một dòng: tệp lớn vì các con số thì nhiều và mỗi con số được lưu một cách chính xác.
Lượng tử hoá: ít bit hơn cho mỗi con số
Lượng tử hoá lưu mỗi trọng số bằng ít bit hơn. Thay vì 32 bit mỗi trọng số, bạn dùng 8, hoặc 4, hoặc 3 — kèm hệ số tỉ lệ cho từng khối trọng số để phép xấp xỉ vẫn bám sát bản gốc.
Mức giảm kích thước gần như tuyến tính:
- 32 bit — ~8 GB cho một mô hình 2B. Độ chính xác đầy đủ, không hợp với điện thoại.
- 8 bit — ~2 GB. Rất sát chất lượng gốc.
- 4 bit — ~1,1 GB. Điểm cân bằng thường gặp.
- 3 bit — ~800 MB. Mất mát thấy rõ hơn, nhưng vẫn dùng được.
- 2 bit — nhỏ hơn nữa, và chất lượng tụt mạnh.
Đây là nén có mất mát, như ảnh JPEG. Đẩy đủ xa thì bạn thấy các vết nhiễu — ở một mô hình ngôn ngữ, chúng hiện ra thành câu trả lời mơ hồ, lặp lại, hoặc trôi khỏi câu hỏi.
Lượng tử hoá không làm mô hình ngu đi một cách đồng đều. Nó làm mô hình kém chính xác hơn, và sự thiếu chính xác lộ ra trước tiên ở những đầu vào khó nhất.
Đọc tên tệp
Một cái tên như Q4_K_M hay Q3_K_S là một công thức, không phải số phiên bản:
- Q4 / Q3 — đại khái là bao nhiêu bit cho mỗi trọng số.
- _K — một lược đồ “k-quant”, tiêu ngân sách bit không đều nhau, giữ nhiều độ chính xác hơn ở nơi mô hình nhạy cảm nhất.
- _S, _M, _L — nhỏ, vừa hay lớn trong lược đồ ấy. Lớn hơn thì giữ được nhiều chất lượng hơn và nhiều byte hơn.
Vậy Q3_K_S là một k-quant 3 bit cỡ nhỏ: nén rất mạnh, được chọn khi việc vừa với thiết bị quan trọng hơn vài phần trăm chất lượng cuối cùng.
GGUF: cái vỏ chứa
GGUF là định dạng tệp chứa các trọng số đã lượng tử hoá cùng phần siêu dữ liệu mà môi trường chạy cần — bộ tách token, kiến trúc, mẫu câu lệnh. Một tệp duy nhất, không kèm cả thư mục cấu hình.
Nó quan trọng với điện thoại vì GGUF được thiết kế để ánh xạ vào bộ nhớ. Thay vì đọc 1,7 GB vào RAM, môi trường chạy ánh xạ tệp vào không gian địa chỉ của nó và hệ điều hành nạp dần những phần thật sự đang dùng. Vì thế một mô hình lớn hơn RAM trống của máy vẫn chạy được, và vì thế câu trả lời đầu tiên sau khi mở ứng dụng chậm hơn những câu sau — các trang vẫn đang được nạp.
Vì sao nó làm nóng máy
Sinh ra một từ — một token — nghĩa là đẩy đầu vào qua hàng tỉ tham số ấy. Rồi lại làm thế cho token kế tiếp. Một câu trả lời trăm từ là một trăm lượt.
Đó là phép tính liên tục trên CPU hay bộ tăng tốc thần kinh, đúng là loại tải mà điện thoại kém nhất về mặt nhiệt. Máy sẽ giảm xung khi nóng, nên một lượt sinh dài không ngắt sẽ chậm dần khi chạy. Ứng dụng cục bộ làm tốt sẽ giãn nhịp công việc — tách các tác vụ ra để con chip nguội bớt — thay vì xếp mọi thứ sát nhau.
Vì sao điện thoại cũ chật vật
Ba ràng buộc, và đều khó:
- Băng thông bộ nhớ. Mỗi token nghĩa là truyền một phần lớn các trọng số. Tốc độ sinh thường bị giới hạn bởi việc đọc bộ nhớ nhanh tới đâu, chứ không phải bởi sức tính toán thô.
- RAM. Ánh xạ bộ nhớ có giúp, nhưng một thiết bị vốn đã chật sẽ phải hoán trang liên tục, và hệ điều hành có thể đơn giản là tắt ứng dụng.
- Bộ tăng tốc. Chip mới có phần cứng hợp với loại phép tính này. Chip cũ phải quay về các nhân đa dụng và chạy chậm hơn vài lần.
Đó là lý do các ứng dụng AI cục bộ nêu một thiết bị tối thiểu thay vì cố hỗ trợ mọi thứ. Dưới một ngưỡng nhất định, trải nghiệm không phải là kém đi, mà là không dùng được.
Cuộc đánh đổi bạn đang chấp nhận
Một mô hình lượng tử hoá cỡ điện thoại sẽ không sánh được với mô hình đám mây lớn ở những suy luận khó. Với một tác vụ có giới hạn — từ này nghĩa là gì trong câu này, dịch cụm này — nó hoàn toàn đủ, và nó đi kèm ba tính chất mà mô hình đám mây không thể có: chạy được khi không có kết nối, không tốn gì cho mỗi lần dùng, và văn bản không bao giờ rời khỏi máy.
Đó là toàn bộ cuộc mặc cả của AI trên máy. Bạn từ bỏ mô hình lớn nhất có thể, và bạn nhận lại quyền riêng tư, khả năng ngoại tuyến và không bị tính lượt.
ClickBook làm điều đó thế nào
ClickBook đóng gói một mô hình GGUF đã lượng tử hoá và chạy nó qua llama.cpp ngay trên máy bạn. Trên iOS, mô hình nằm sẵn trong ứng dụng nên không phải tải gì. Đọc thêm về trình đọc sách điện tử có AI cục bộ, hoặc xem ClickBook hoạt động thế nào.