Câu “Ứng dụng chạy mô hình ngôn ngữ trên máy của bạn” khiến người ta hình dung quạt máy tính quay vù vù và chiếc máy tính xách tay nóng lên dù chẳng làm gì. Hình dung như vậy cũng hợp lý, bởi nó mô tả điều xảy ra khi bạn chạy một mô hình trò chuyện theo cách không hiệu quả.
Gợi ý khi gõ có khối lượng công việc khác. Sau đây là chi phí thực tế để bạn có thể chọn mô hình phù hợp với máy mình đang dùng.
Bốn loại chi phí, nhưng chỉ một loại là liên tục
Ổ đĩa. Tệp mô hình, chỉ tải một lần. Từ vài trăm megabyte đến vài gigabyte, dung lượng này chỉ tốn khi tải xuống.
Bộ nhớ. Các trọng số phải được giữ trong bộ nhớ khi mô hình được tải: xấp xỉ bằng kích thước tệp, cộng thêm một lượng bộ nhớ phụ vừa phải. Đây là chi phí liên tục và là yếu tố quyết định kích thước mô hình nào phù hợp với máy bạn. Trên máy tính xách tay 16 GB, mô hình chiếm một gigabyte bộ nhớ thường trú là điều bình thường. Trên máy 8 GB đang mở trình duyệt, mô hình chiếm ba gigabyte thì không.
Năng lực tính toán. Chỉ cần dùng khi tạo gợi ý. Với việc hoàn thành câu, quá trình này diễn ra thành từng đợt vài trăm mili giây, vài lần mỗi phút; thời gian nghỉ giữa những lần bạn tự nhấn phím chiếm phần lớn. Hãy so sánh với trợ lý trò chuyện tạo sáu trăm từ, vốn chạy bộ xử lý hết công suất trong vài giây.
Pin. Mức tiêu thụ pin đi theo mức sử dụng năng lực tính toán. Những đợt xử lý ngắn tốn ít điện; nói chính xác thì máy không bao giờ chuyển sang trạng thái tiết kiệm điện sâu sẽ tốn nhiều điện hơn máy có thể chuyển sang trạng thái đó, vì vậy tác động không hoàn toàn bằng không.
Điều cần nhớ: tính năng dự đoán khi gõ hầu như luôn ở trạng thái chờ. Bộ nhớ thường trú mới là chi phí thực sự; mọi thứ khác không đáng kể trừ khi mô hình quá lớn so với máy.
Vì sao tệp nhỏ hơn bạn nghĩ
Mô hình được quảng cáo là có dung lượng vài trăm megabyte không có nghĩa là mô hình chỉ có vài trăm triệu tham số. Mô hình được phân phối dưới dạng lượng tử hóa, với các trọng số được lưu ở độ chính xác thấp hơn — thường là bốn hoặc năm bit thay vì mười sáu bit. Cách này giảm kích thước và mức dùng bộ nhớ khoảng bốn lần, đổi lại là chất lượng giảm nhẹ nhưng có thể đo lường được.
Đối với suy luận mở, sự mất mát đó có ý nghĩa. Còn với việc hoàn thành một câu mà bạn đã bắt đầu, phần lớn nó không quan trọng, vì các ràng buộc đến từ chính văn bản của bạn chứ không phải từ độ sâu của mô hình. Đó là lý do kỹ thuật khiến một mô hình nhỏ chạy cục bộ phù hợp với tác vụ này nhưng không phù hợp với những tác vụ khác.
Độ trễ mới là giới hạn thực sự, chứ không phải chất lượng
Có một thời hạn rất ngặt. Gợi ý xuất hiện sau khi bạn đã tự gõ xong những từ đó còn tệ hơn là không có gợi ý: nó hiện ra đúng lúc bạn vừa gõ xong, khiến bạn đọc nó một cách vô ích.
Thời hạn đó giới hạn kích thước mô hình bất kể bạn có bao nhiêu bộ nhớ. Vượt quá một mức nhất định, mô hình tốt hơn cũng đồng nghĩa với mô hình chậm hơn, mà chậm hơn thì sẽ không được dùng. Mục tiêu thực tế là gợi ý xuất hiện khi ngón tay bạn vẫn đang ở khoảng nghỉ giữa hai từ — cỡ vài trăm mili giây, chứ không phải một giây rưỡi.
Điều này đảo ngược trực giác thông thường. Ở đây, mô hình lớn hơn không tốt hơn khi nó đã trễ. Kích thước phù hợp là kích thước lớn nhất vẫn có thể trả lời trong khoảng nghỉ trên phần cứng của bạn; câu trả lời sẽ khác nhau giữa một chiếc ultrabook năm 2019 và một máy tính để bàn có card đồ họa rời.
Chọn kích thước
Typeahead cung cấp ba lựa chọn, tương ứng trực tiếp với sự đánh đổi này.
| Kích thước | Dung lượng trên đĩa | Yêu cầu được nêu | Dành cho ai |
|---|---|---|---|
| Nhanh (mặc định) | ~600 MB | — | Mọi máy được hỗ trợ, và là lựa chọn phù hợp để bắt đầu |
| Cân bằng | ~1.2 GB | Bộ nhớ hệ thống 8 GB | Máy còn dư tài nguyên: gợi ý tốt hơn mà vẫn nhanh thoải mái |
| Chất lượng tối đa | ~2.5 GB | Card đồ họa rời có 8 GB bộ nhớ riêng, bộ nhớ hệ thống 16 GB | Máy tính để bàn và máy trạm có GPU thực thụ |
Có hai điều cần lưu ý về bảng này.
Hãy bắt đầu với Nhanh, ngay cả khi máy của bạn có thể chạy mức cao hơn. Dùng trong một tuần. Nếu các gợi ý chính xác hữu ích, mô hình lớn hơn sẽ không mang lại điều gì bạn nhận thấy khi đang gõ tin nhắn trò chuyện. Nếu gợi ý sai lệch rõ rệt, hãy nâng lên một mức — khi đó bạn đã biết mình đang đánh đổi độ trễ để lấy điều gì.
Mức tối đa yêu cầu card rời có 8 GB bộ nhớ riêng, chứ không phải 8 GB bộ nhớ hệ thống dùng chung. Đồ họa tích hợp trên laptop không đáp ứng yêu cầu này; ép mô hình chạy trên phần cứng phải liên tục chuyển dữ liệu ra vào bộ nhớ phụ chính là cách khiến quạt quay vù vù như trải nghiệm được nhắc đến ở đầu bài viết.
Máy thực sự thiếu tài nguyên
- RAM 8 GB, đang mở trình duyệt, Teams và Office. Bạn đã gần chạm giới hạn trước khi tải thêm bất cứ thứ gì. Hãy dùng mô hình nhỏ nhất và dự liệu rằng bạn sẽ nhận thấy ảnh hưởng rõ hơn người có 16 GB. Nếu máy của bạn đã phải dùng bộ nhớ ảo trong một ngày làm việc bình thường, mô hình thường trú trong bộ nhớ sẽ khiến tình trạng đó tệ hơn.
- Bộ xử lý đời cũ không có AVX2. Các thư viện suy luận tận dụng những chỉ thị vector. Bộ xử lý trước năm 2013 sẽ chậm hơn mọi con số được trích dẫn, và giới hạn độ trễ nói trên chính là điểm gây ảnh hưởng.
- Laptop mỏng bị giới hạn nhiệt. Các đợt xử lý ngắn đến mức riêng khối lượng công việc này khó gây giảm hiệu năng kéo dài do nhiệt, nhưng máy vốn đã giảm hiệu năng khi chạy tác vụ khác thì không còn dư tài nguyên.
- Dùng pin, không cắm nguồn. Gợi ý vẫn hoạt động vì chúng chạy cục bộ và không cần kết nối. Nếu bạn muốn tối ưu cho một chuyến bay dài, hãy dùng mô hình nhỏ hơn.
Cách tự kiểm tra trên máy của bạn
Các con số đo trên laptop của người khác cho bạn biết rất ít. Hai lần đo, mười phút.
- 1. Trước khi cài đặt bất cứ thứ gì, mở Trình quản lý Tác vụ → Hiệu suất và ghi lại mức sử dụng bộ nhớ trong cấu hình làm việc bình thường: các thẻ trình duyệt thường dùng, email và ứng dụng trò chuyện.
- 2. Sau khi cài đặt và tải một mô hình, xem lại con số đó, đồng thời xem mức sử dụng bộ nhớ của ứng dụng trong thẻ Tiến trình.
Nếu mức chênh lệch vẫn để bạn ở cách xa giới hạn tổng, bạn không sao. Nếu nó khiến bạn chạm ngưỡng, hãy giảm xuống một kích thước.
Độ trễ mang tính chủ quan, và điều đó lại có lợi: hãy gõ một câu bạn thường gõ rồi để ý xem gợi ý đã hiện ra lúc ngón tay bạn dừng lại hay chỉ xuất hiện sau đó. Thời gian dùng thử là cách phù hợp để trả lời câu hỏi này — thời gian dùng thử của Typeahead là bảy ngày, mở khóa mọi kích thước mô hình.
Bạn nhận được gì với mức chi phí đó
- Không có nội dung nào bạn gõ rời khỏi máy. Đây không phải chính sách về cách máy chủ xử lý văn bản của bạn, mà là đặc tính bắt nguồn từ nơi văn bản được xử lý.
- Ứng dụng hoạt động khi không có kết nối. Trên máy bay, trên tàu, hay khi Wi-Fi khách sạn ngừng phân giải DNS.
- Không đăng ký theo từng chỗ ngồi và không cần tài khoản, vì không có máy chủ nào cần trả phí.
- Không có độ trễ biến động. Mô hình cục bộ chạy nhanh như nhau lúc 9 giờ sáng và 5 giờ chiều, điều không đúng với một dịch vụ dùng chung.
Liệu điều đó có đáng để dành một gigabyte bộ nhớ thường trú hay không là câu hỏi thực sự, và câu trả lời khác nhau tùy người. Câu hỏi này không phức tạp như nghe có vẻ, và bạn có thể tìm ra câu trả lời trong một tuần.