Thủ thuật
ByteByteGo: Bí quyết nén mô hình ngôn ngữ lớn mà không làm giảm trí thông minh
(giờ Việt Nam)
Tóm tắt AI
Bài viết giải quyết bài toán nan giải khi chạy các mô hình 70B tham số trên phần cứng tiêu dùng, hướng dẫn kỹ thuật tối ưu hóa dung lượng mà vẫn giữ vững hiệu năng xử lý.
Bản dịch AI


Hướng dẫn miễn phí của Datadog chỉ ra cách kết nối chi phí AI, cơ sở hạ tầng và hiệu suất mô hình vào một chế độ xem duy nhất, giúp bạn tương quan sự gia tăng chi phí với các thay đổi kiến trúc gây ra chúng trước khi chúng xuất hiện trên hóa đơn đám mây của bạn.
Tìm hiểu cách:
Phân tách chi phí AI theo token, mô hình, nhà cung cấp và nhóm
Nhận cảnh báo ngay lập tức khi lưu lượng suy luận tăng đột biến hoặc chi phí API vượt quá ngân sách
Tương quan trực tiếp sự gia tăng chi phí với các thay đổi kiến trúc để phân tích nguyên nhân gốc rễ chỉ trong vài phút
Nhận hướng dẫn
Một mô hình với 70 tỷ tham số có thể chiếm tới 140 GB dung lượng. Một card đồ họa tốt có 24 GB. Một chiếc rất tốt có thể có 48 GB.
Như bạn có thể thấy, khoảng cách này khá đáng kể. Dung lượng ổ cứng thì khá rẻ, nhưng bộ nhớ tốc độ cao lại khan hiếm và đắt đỏ. Hơn nữa, các mô hình đã tăng quy mô khoảng 100 lần trong vài năm qua, trong khi bộ nhớ đồ họa dành cho người tiêu dùng chỉ tăng gấp đôi. Đây không chỉ là vấn đề tối ưu hóa để chúng vừa vặn.
Vậy làm thế nào để chạy một mô hình như vậy?
Lựa chọn đơn giản nhất là mua phần cứng có khả năng chạy mô hình. Nhưng nó rất đắt đỏ và không hoạt động tốt với phần cứng phổ thông.
Lựa chọn khác là thu nhỏ mô hình. Nhưng chúng ta không muốn làm điều đó bằng cách đánh đổi trí thông minh của mô hình. Đây là lúc một số kỹ thuật có thể giúp chúng ta làm cho mô hình nhỏ hơn về nguyên tắc mà không làm giảm chất lượng đầu ra.
Trong bài viết này, chúng ta sẽ đề cập đến:
Điều gì tạo nên trí thông minh của một mô hình ngôn ngữ?
Ba kỹ thuật để thu nhỏ mô hình
Làm thế nào để thu nhỏ mô hình bằng cách đóng gói ít chi tiết hơn?
Làm thế nào để thu nhỏ mô hình bằng cách cắt tỉa các đường dẫn không sử dụng?
Làm thế nào để thu nhỏ mô hình bằng cách bắt chước hành vi?
Việc thu nhỏ có làm hỏng trí thông minh của mô hình không?

Tuyên bố miễn trừ trách nhiệm: Bài viết này dựa trên các chi tiết được chia sẻ công khai từ nhiều nguồn khác nhau. Tài liệu tham khảo ở cuối bài. Vui lòng bình luận nếu bạn nhận thấy bất kỳ điểm không chính xác nào.
Các mô hình ngôn ngữ lớn như ChatGPT khá khác biệt so với các chương trình phần mềm thông thường. Chúng không phụ thuộc vào các câu lệnh if-else điển hình để quyết định điều gì sẽ xảy ra tiếp theo.
Một mô hình ngôn ngữ lớn về cơ bản là một tập hợp rất lớn các con số được gọi là tham số hoặc trọng số. Những trọng số này là nền tảng cho trí thông minh của mô hình ngôn ngữ. Để tham khảo, một mô hình với 70 tỷ tham số có nghĩa là 70 tỷ con số hoặc trọng số. Mỗi trọng số thường được lưu trữ dưới dạng 16 bit, tức là hai byte. Hai byte nhân với 70 tỷ sẽ ra 140 GB, về cơ bản được coi là kích thước của mô hình.
Các trọng số được sắp xếp thành các ma trận. Một ma trận trọng số đơn lẻ là một lưới, thường có kích thước khoảng 4096 x 4096. Điều này tạo ra khoảng 16,7 triệu con số trong một ma trận. Một mô hình 70 tỷ tham số có hàng trăm ma trận như vậy xếp chồng lên nhau qua khoảng 80 lớp.
Tất nhiên, bản thân các trọng số không phải là toàn bộ câu chuyện đằng sau khả năng của một mô hình. Nhiều thành phần phối hợp với nhau để làm cho mô hình trở nên thông minh. Ví dụ, mô hình cần một kiến trúc như Transformer để định tuyến dữ liệu và thực hiện cơ chế chú ý (attention). Nó cũng cần một cửa sổ ngữ cảnh (context window) để lưu trữ câu lệnh (prompt) và mọi thứ được tạo ra trong suốt cuộc trò chuyện.
Tuy nhiên, kiến trúc chỉ được tạo thành từ vài trăm dòng mã. Câu lệnh có thể chỉ vài kilobyte. Ngược lại, các trọng số tạo nên phần lớn khối lượng của mô hình ngôn ngữ. Nếu không có các trọng số phù hợp, mô hình ngôn ngữ không thể hoạt động như dự định. Các trọng số thực hiện một loạt các tác vụ:
Chúng lưu trữ các mẫu như ngữ pháp, sự kiện và các lối tắt suy luận.
Sau khi quá trình huấn luyện kết thúc, các trọng số đóng băng thành một mạng lưới các giá trị số không thể thay đổi.
Các trọng số quyết định mức độ ảnh hưởng của một nơ-ron mô phỏng này lên nơ-ron tiếp theo.
Chạy mô hình có nghĩa là đẩy dữ liệu đầu vào qua các ma trận trọng số này cho đến khi từ tiếp theo xuất hiện ở đầu ra.
Một điều cần lưu ý ở đây là không có trọng số đơn lẻ nào tự nó mang ý nghĩa gì cả. Nếu bạn mở một tệp mô hình và nhìn vào trọng số thứ N, bạn có thể thấy một con số như 0.0293. Bên cạnh con số này có thể là các con số khác như -0.0117, 0.004, -0.0862. Bản thân mỗi con số này hầu như không có ý nghĩa. Khả năng của mô hình ẩn giấu trong mối quan hệ giữa các trọng số khác nhau. Hãy nghĩ về nó như một bức ảnh, nơi mọi pixel kết hợp lại để hiển thị một thứ gì đó dễ nhận biết. Ngay cả khi chúng ta thay đổi độ sáng của từng pixel một chút, chúng ta vẫn có thể nhận ra các vật thể trong ảnh. Điều này là do thông tin không nằm ở một vị trí duy nhất.
Từ tất cả những thông tin trên, rất dễ để nhận ra rằng để thu nhỏ một mô hình, chúng ta phải tìm cách xử lý các trọng số này. Và đây chính là nơi các kỹ thuật phát huy tác dụng. Tuy nhiên, một vài điểm sau đây có thể giúp chúng ta hiểu rõ hơn về các kỹ thuật thu nhỏ mô hình:
Thứ nhất, không phải tất cả các trọng số đều quan trọng như nhau. Hầu hết các giá trị trọng số đều gần bằng 0 và hầu như không ảnh hưởng đến kết quả cuối cùng. Tuy nhiên, một số ít các trọng số có giá trị lớn và tạo ra tác động lớn hơn.
Thứ hai, chúng ta chỉ có thể đánh giá một mô hình dựa trên hành vi của nó, không phải dựa trên cấu trúc bên trong.
Bây giờ chúng ta hãy xem xét các kỹ thuật này.

Đưa các tác nhân (agents) vào môi trường sản xuất là phần dễ dàng. Giữ cho chúng đáng tin cậy, có thể kiểm soát và cải thiện theo thời gian mới là nơi hầu hết các chương trình AI doanh nghiệp bị đình trệ.
Các đội ngũ hàng đầu làm điều đó như thế nào? Họ sử dụng Mô hình Vận hành Tác nhân (Agentic Operating Model - AOM), một khung làm việc từng bước để căn chỉnh con người, quy trình và công nghệ nhằm giúp các tác nhân doanh nghiệp cải thiện khi mở rộng quy mô.
Trong hướng dẫn mới nhất của LangChain, bạn sẽ tìm hiểu:
Bài viết được AI dịch và tổng hợp tự động từ ByteByteGo. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.