Mặc dù chữ "L" trong Mô hình ngôn ngữ lớn (LLM) cho thấy quy mô khổng lồ, nhưng thực tế lại phức tạp hơn. Một số LLM chứa hàng nghìn tỷ tham số, còn một số khác hoạt động hiệu quả với số lượng tham số ít hơn nhiều.
Hãy xem một vài ví dụ thực tế và những tác động thực tế của các kích thước mô hình khác nhau.
Kích thước LLM và lớp kích thước
Là nhà phát triển web, chúng ta thường nghĩ kích thước của một tài nguyên là kích thước tải xuống của tài nguyên đó. Kích thước được ghi nhận của mô hình đề cập đến số lượng tham số của mô hình đó. Ví dụ: Gemma 2B biểu thị Gemma có 2 tỷ tham số.
LLM có thể có hàng trăm nghìn, hàng triệu, hàng tỷ hoặc thậm chí hàng nghìn tỷ tham số.
LLM lớn có nhiều tham số hơn so với LLM nhỏ, cho phép mô hình này nắm bắt các mối quan hệ ngôn ngữ phức tạp hơn và xử lý các câu lệnh có sắc thái. Các mô hình này cũng thường được huấn luyện trên các tập dữ liệu lớn hơn.
Bạn có thể nhận thấy rằng một số kích thước mô hình nhất định, chẳng hạn như 2 tỷ hoặc 7 tỷ, là phổ biến. Ví dụ: Gemma 2B, Gemma 7B hoặc Mistral 7B. Các lớp kích thước mô hình là các nhóm gần đúng. Ví dụ: Gemma 2B có khoảng 2 tỷ tham số, nhưng không chính xác.
Các lớp kích thước mô hình cung cấp một cách thực tế để đánh giá hiệu suất của LLM. Hãy coi các lớp này giống như các hạng cân trong môn quyền anh: các mô hình trong cùng một lớp kích thước sẽ dễ so sánh hơn. Hai mô hình 2B phải mang lại hiệu suất tương tự nhau.
Tuy nhiên, mô hình nhỏ hơn có thể có hiệu suất tương đương với mô hình lớn hơn cho các tác vụ cụ thể.
Mặc dù kích thước mô hình cho các LLM hiện đại gần đây nhất, chẳng hạn như GPT-4 và Gemini Pro hoặc Ultra, không phải lúc nào cũng được công bố, nhưng chúng được cho là có hàng trăm tỷ hoặc hàng nghìn tỷ tham số.
Không phải mô hình nào cũng cho biết số lượng tham số trong tên. Một số mô hình có hậu tố là số phiên bản. Ví dụ: Gemini 1.5 Pro đề cập đến phiên bản 1.5 của mô hình (sau phiên bản 1).
Có bằng LLM hay không?
Khi nào một mô hình quá nhỏ để trở thành LLM? Định nghĩa về LLM có thể thay đổi trong cộng đồng AI và ML.
Một số người chỉ coi những mô hình lớn nhất có hàng tỷ tham số là LLM thực sự, trong khi các mô hình nhỏ hơn, chẳng hạn như DistilBERT, được coi là mô hình NLP đơn giản. Một số khác bao gồm các mô hình nhỏ hơn nhưng vẫn mạnh mẽ trong định nghĩa về LLM, chẳng hạn như DistilBERT.
LLM nhỏ hơn cho các trường hợp sử dụng trên thiết bị
Các LLM lớn hơn đòi hỏi nhiều không gian lưu trữ và nhiều sức mạnh điện toán để suy luận. Các mô hình này cần chạy trên các máy chủ mạnh mẽ chuyên dụng có phần cứng cụ thể (chẳng hạn như TPU).
Là nhà phát triển web, chúng tôi quan tâm đến việc liệu một mô hình có đủ nhỏ để tải xuống và chạy trên thiết bị của người dùng hay không.
Nhưng đó là một câu hỏi khó trả lời! Tính đến thời điểm hiện tại, bạn không có cách nào dễ dàng để biết "mô hình này có thể chạy trên hầu hết các thiết bị tầm trung" vì một số lý do:
- Khả năng của thiết bị rất khác nhau về bộ nhớ, thông số kỹ thuật GPU/CPU, v.v. Điện thoại Android cấp thấp và máy tính xách tay NVIDIA® RTX có sự khác biệt rất lớn. Bạn có thể có một số điểm dữ liệu về thiết bị mà người dùng sử dụng. Chúng tôi chưa có định nghĩa về thiết bị cơ sở dùng để truy cập vào web.
- Mô hình hoặc khung mà mô hình đó chạy trong đó có thể được tối ưu hoá để chạy trên một số phần cứng nhất định.
- Không có cách lập trình nào để xác định xem có thể tải một LLM cụ thể xuống và chạy trên một thiết bị cụ thể hay không. Khả năng tải xuống của thiết bị phụ thuộc vào dung lượng VRAM trên GPU, cùng với các yếu tố khác.
Tuy nhiên, chúng tôi có một số kiến thức kinh nghiệm: hiện nay, một số mô hình có từ vài triệu đến vài tỷ tham số có thể chạy trong trình duyệt trên các thiết bị cấp tiêu dùng.
Ví dụ:
- Gemma 2B với API suy luận LLM MediaPipe (thậm chí phù hợp với các thiết bị chỉ có CPU). Thử nghiệm.
- DistilBERT bằng Transformers.js.
Đây là một lĩnh vực mới mẻ. Bạn có thể thấy tình hình phát triển như sau:
- Với các cải tiến về WebAssembly và WebGPU, tính năng hỗ trợ WebGPU sẽ xuất hiện trong nhiều thư viện hơn, các thư viện mới và tính năng tối ưu hoá, dự kiến thiết bị của người dùng sẽ ngày càng có thể chạy hiệu quả các LLM có nhiều kích thước.
- Dự kiến các LLM nhỏ hơn, có hiệu suất cao sẽ ngày càng phổ biến, thông qua các kỹ thuật rút gọn mới xuất hiện.
Những điều cần cân nhắc đối với LLM nhỏ
Khi làm việc với các LLM nhỏ hơn, bạn phải luôn cân nhắc hiệu suất và kích thước tải xuống.
Hiệu suất
Khả năng của bất kỳ mô hình nào cũng phụ thuộc rất nhiều vào trường hợp sử dụng của bạn! Một LLM nhỏ hơn được điều chỉnh cho phù hợp với trường hợp sử dụng của bạn có thể hoạt động hiệu quả hơn một LLM chung lớn hơn.
Tuy nhiên, trong cùng một gia đình mô hình, LLM nhỏ hơn sẽ có khả năng kém hơn so với các LLM lớn hơn. Đối với cùng một trường hợp sử dụng, bạn thường cần làm nhiều công việc kỹ thuật nhanh hơn khi sử dụng LLM nhỏ hơn.
Kích thước tải xuống
Càng nhiều thông số thì kích thước tải xuống càng lớn, điều này cũng ảnh hưởng đến việc liệu một mô hình, ngay cả khi được coi là nhỏ, có thể được tải xuống một cách hợp lý cho các trường hợp sử dụng trên thiết bị hay không.
Mặc dù có các kỹ thuật để tính kích thước tải xuống của một mô hình dựa trên số lượng tham số, nhưng việc này có thể phức tạp.
Kể từ đầu năm 2024, kích thước tải mô hình xuống hiếm khi được ghi lại. Vì vậy, đối với các trường hợp sử dụng trên thiết bị và trong trình duyệt, bạn nên xem kích thước tải xuống theo kinh nghiệm trong bảng điều khiển Mạng của Công cụ của Chrome cho nhà phát triển hoặc bằng các công cụ khác dành cho nhà phát triển trình duyệt.
Gemma được dùng với API suy luận LLM MediaPipe. DistilBERT được dùng với Transformers.js.
Kỹ thuật rút gọn mô hình
Có nhiều kỹ thuật giúp giảm đáng kể yêu cầu về bộ nhớ của mô hình:
- LoRA (Thích ứng thứ hạng thấp): Kỹ thuật tinh chỉnh trong đó các trọng số được huấn luyện trước sẽ bị khoá. Đọc thêm về LoRA.
- Cắt tỉa: Xoá các trọng số ít quan trọng hơn khỏi mô hình để giảm kích thước của mô hình.
- Lượng tử hoá: Giảm độ chính xác của trọng số từ số dấu phẩy động (chẳng hạn như 32 bit) xuống các giá trị biểu diễn bit thấp hơn (chẳng hạn như 8 bit).
- Tinh luyện kiến thức: Huấn luyện một mô hình nhỏ hơn để bắt chước hành vi của một mô hình lớn hơn, được huấn luyện trước.
- Chia sẻ tham số: Sử dụng cùng một trọng số cho nhiều phần của mô hình, giảm tổng số tham số riêng biệt.