Các mô hình ngôn ngữ lớn (LLM)[1] ngày càng phình to, đòi hỏi sức mạnh tính toán khổng lồ. Việc vận hành chúng vô cùng tốn kém và gần như không thể triển khai trên các thiết bị cá nhân. Các kỹ thuật làm nhẹ mô hình chính là giải pháp để giải quyết rào cản này.
Làm nhẹ mô hình AI là quá trình giảm kích thước và yêu cầu tính toán của chúng. Việc này cực kỳ quan trọng để giảm chi phí vận hành, tăng tốc độ suy luận và cho phép AI chạy trên các thiết bị tài nguyên hạn chế như điện thoại thông minh, ô tô, robot.

Hãy tưởng tượng các mô hình AI tiên tiến nhất hiện nay như GPT-4 hay Claude 3 Opus là những “gã khổng lồ” trí tuệ. Chúng sở hữu hàng trăm tỷ, thậm chí hàng nghìn tỷ tham số[2]. Để vận hành một gã khổng lồ như vậy, chúng ta cần những trung tâm dữ liệu khổng lồ với hàng ngàn GPU cao cấp như NVIDIA H100, mỗi chiếc có giá hàng chục ngàn đô la. Chi phí không chỉ dừng lại ở phần cứng mà còn bao gồm cả chi phí năng lượng và chi phí cho mỗi lần người dùng đặt câu hỏi (chi phí suy luận[3]).
Đây chính là rào cản lớn nhất. Một mô hình cần hàng terabyte bộ nhớ không thể nào “chui vừa” một chiếc điện thoại chỉ có vài gigabyte RAM. Vì vậy, việc “giảm cân” hay làm nhẹ mô hình không còn là một lựa chọn, mà là con đường bắt buộc để AI thực sự trở nên phổ biến, len lỏi vào cuộc sống hàng ngày qua điện thoại, ô tô tự lái, thiết bị IoT và robot thông minh.
Kỹ thuật 1: Chưng cất (Distillation) – Khi “thầy” giỏi dạy “trò” nhỏ
Bạn muốn có một mô hình nhỏ gọn nhưng vẫn giữ được sự thông minh của mô hình lớn? Việc huấn luyện mô hình nhỏ từ đầu thường không hiệu quả. Kỹ thuật chưng cất ra đời để giải quyết vấn đề này, cho phép mô hình “trò” học lại sự tinh túy từ mô hình “thầy”.
Chưng cất kiến thức (Knowledge Distillation)[4] là kỹ thuật mà một mô hình “học sinh” nhỏ gọn học hỏi từ một mô hình “giáo viên” lớn và phức tạp. Thay vì chỉ học kết quả đúng/sai, mô hình học sinh học cả quá trình và logic suy luận của giáo viên, giúp nó đạt hiệu suất cao với kích thước nhỏ hơn nhiều.
Cơ chế hoạt động của chưng cất rất thú vị. Hãy tưởng tượng bạn đang dạy một mô hình nhận diện hình ảnh. Với phương pháp thông thường, bạn đưa ảnh một con hổ và nói “Đây là con hổ” – đây gọi là nhãn cứng (hard labels).
Tuy nhiên, một mô hình “giáo viên” lớn, sau khi được huấn luyện, sẽ không chỉ biết đó là con hổ. Đầu ra của nó có thể là: “95% là hổ, 4% là mèo, 1% là chó”. Đây chính là nhãn mềm (soft labels). Nhãn mềm này chứa đựng thông tin quý giá hơn rất nhiều: nó cho mô hình “học sinh” biết rằng hổ có nhiều điểm tương đồng với mèo hơn là với chó. Bằng cách học theo phân phối xác suất này (thường thông qua một hàm mất mát như KL-Divergence[5]), mô hình học sinh có thể kế thừa được “trực giác” tinh vi của mô hình giáo viên.
Một ví dụ thực tế ấn tượng là nghiên cứu về DeepSeek-R1. Các nhà nghiên cứu đã sử dụng kỹ thuật chưng cất để truyền tải kiến thức từ mô hình lớn này sang các mô hình nhỏ hơn như Llama3, giúp chúng cải thiện đáng kể khả năng suy luận và giải quyết vấn đề.
Kỹ thuật 2: Cắt tỉa (Pruning) – Dọn dẹp những kết nối thần kinh thừa thãi
Các mô hình AI sau khi huấn luyện thường chứa rất nhiều tham số thừa. Những tham số này chiếm dung lượng lưu trữ và làm chậm tốc độ xử lý mà không đóng góp nhiều vào kết quả. Kỹ thuật cắt tỉa chính là giải pháp để dọn dẹp và tối ưu hóa mạng nơ-ron.
Cắt tỉa là quá trình loại bỏ các kết nối hoặc tham số không quan trọng (thường là các trọng số có giá trị gần bằng không) khỏi mạng nơ-ron. Tương tự như việc tỉa cành cho cây, kỹ thuật này giúp giảm kích thước mô hình và tăng tốc độ xử lý mà ít ảnh hưởng đến độ chính xác.
Kỹ thuật này lấy cảm hứng từ chính bộ não con người. Khi chúng ta lớn lên, não bộ sẽ tự động loại bỏ những kết nối synap ít được sử dụng để tăng hiệu quả hoạt động. Trong AI, cắt tỉa cũng hoạt động theo nguyên lý tương tự và có hai phương pháp chính:
Cắt tỉa phi cấu trúc (Unstructured Pruning)
Phương pháp này loại bỏ các trọng số riêng lẻ trong ma trận tham số nếu giá trị của chúng nhỏ hơn một ngưỡng nhất định.
- Ưu điểm: Có thể đạt được tỷ lệ nén rất cao, loại bỏ được nhiều tham số thừa nhất có thể.
- Nhược điểm: Tạo ra các ma trận thưa (sparse matrices)[6], đòi hỏi phần cứng hoặc thư viện phần mềm chuyên dụng để tăng tốc hiệu quả. Nếu không, dù mô hình nhỏ hơn nhưng tốc độ có thể không cải thiện.
Cắt tỉa có cấu trúc (Structured Pruning)
Thay vì loại bỏ các trọng số riêng lẻ, phương pháp này loại bỏ toàn bộ các khối cấu trúc như các kênh (channels) trong mạng CNN hoặc các đầu chú ý (attention heads) trong mô hình Transformer.
- Ưu điểm: Ma trận trọng số sau khi cắt tỉa vẫn giữ được cấu trúc dày đặc, giúp tăng tốc độ xử lý hiệu quả trên các phần cứng thông thường (GPU, CPU) mà không cần hỗ trợ đặc biệt.
- Nhược điểm: Tỷ lệ nén thường thấp hơn và có nguy cơ loại bỏ nhầm một cấu trúc quan trọng, gây ảnh hưởng lớn đến độ chính xác của mô hình.
Vậy khi nào nên dùng loại nào? Cắt tỉa phi cấu trúc thường phù hợp với các hệ thống lớn tại trung tâm dữ liệu nơi có phần cứng chuyên dụng. Trong khi đó, cắt tỉa có cấu trúc là lựa chọn lý tưởng cho các thiết bị biên với phần cứng phổ thông.
Kỹ thuật 3: Phân rã bậc thấp (Low-Rank Factorization) – Đơn giản hóa ma trận phức tạp
Các lớp trọng số trong mạng nơ-ron thực chất là những ma trận số khổng lồ. Việc lưu trữ và thực hiện phép tính trên các ma trận này cực kỳ tốn tài nguyên. Phân rã bậc thấp là một kỹ thuật toán học thông minh để giải quyết vấn đề này.
Phân rã bậc thấp là một kỹ thuật thay thế một ma trận trọng số lớn và dày đặc bằng tích của hai hoặc nhiều ma trận nhỏ hơn, có “bậc” (rank) thấp hơn. Cách tiếp cận này giúp giảm đáng kể tổng số tham số trong khi vẫn cố gắng bảo toàn thông tin quan trọng nhất của ma trận gốc.
Ý tưởng cốt lõi là một ma trận lớn thường chứa thông tin dư thừa. Chúng ta có thể “nén” thông tin đó lại bằng cách xấp xỉ nó. Ví dụ, một ma trận trọng số W có kích thước (m x n) có thể được phân rã thành tích của hai ma trận nhỏ hơn là U (m x r) và V (r x n), trong đó r nhỏ hơn rất nhiều so với m và n.
Lợi ích ở đây là gì? Số lượng tham số ban đầu là m * n. Sau khi phân rã, tổng số tham số chỉ còn là (m * r) + (r * n). Khi r rất nhỏ, sự sụt giảm này là cực kỳ đáng kể. Về cơ bản, đây là một phương pháp nén thông minh, giúp giảm kích thước của các lớp trọng số trong mô hình mà không cần phải loại bỏ hoàn toàn bất kỳ kết nối nào như kỹ thuật cắt tỉa.
Kỹ thuật 4: Lượng tử hóa (Quantization) – Giúp AI nói ngôn ngữ của phần cứng
Các mô hình AI thường làm việc với những con số có độ chính xác rất cao, gọi là số thực dấu phẩy động. Tuy nhiên, phần cứng máy tính lại xử lý các con số nguyên đơn giản nhanh hơn nhiều. Lượng tử hóa chính là cây cầu nối giúp AI “nói” thứ ngôn ngữ mà phần cứng yêu thích.
Lượng tử hóa[7] là quá trình giảm độ chính xác của các số biểu diễn trọng số và các giá trị kích hoạt trong mô hình. Phổ biến nhất là chuyển đổi từ số thực 32-bit (FP32) sang số nguyên 8-bit (INT8) hoặc thậm chí 4-bit (INT4), giúp giảm kích thước và tăng tốc độ suy luận đáng kể.
Lợi ích của lượng tử hóa là lợi ích kép:
- Giảm dung lượng lưu trữ: Một tham số ở định dạng FP32 cần 4 byte để lưu trữ. Khi được lượng tử hóa sang INT8, nó chỉ cần 1 byte. Điều này có nghĩa là kích thước mô hình có thể giảm tới 4 lần (và 8 lần với INT4) mà không cần thay đổi kiến trúc.
- Tăng tốc độ tính toán: Hầu hết các bộ vi xử lý, từ CPU trên laptop đến các chip chuyên dụng trên điện thoại, đều thực hiện phép tính số nguyên nhanh hơn rất nhiều so với phép tính số thực. Điều này giúp giảm độ trễ và tiết kiệm năng lượng khi mô hình hoạt động.
Một ví dụ điển hình là mô hình DeepSeek-R3, mô hình này sử dụng lượng tử hóa FP8 và kỹ thuật huấn luyện hỗn hợp để tạo ra sự cân bằng tối ưu giữa hiệu suất tính toán và độ chính xác, cho phép nó chạy hiệu quả trên nhiều loại phần cứng khác nhau.
Làm thế nào để chọn đúng kỹ thuật tối ưu hóa cho dự án của bạn?
Với nhiều kỹ thuật làm nhẹ mô hình, việc lựa chọn phương pháp phù hợp có thể gây bối rối. Lựa chọn sai có thể làm giảm độ chính xác quá mức hoặc không tương thích với phần cứng của bạn. Một cách tiếp cận có hệ thống sẽ giúp bạn đưa ra quyết định đúng đắn.
Để chọn đúng kỹ thuật, bạn cần đánh giá các yếu tố của dự án: mức độ suy giảm độ chính xác có thể chấp nhận, giới hạn phần cứng (CPU/GPU/TPU), yêu cầu về độ trễ thời gian thực và đặc thù của tác vụ. Thông thường, việc kết hợp nhiều kỹ thuật sẽ mang lại hiệu quả cao nhất.

Không có một giải pháp nào là hoàn hảo cho mọi bài toán. Việc lựa chọn phụ thuộc hoàn toàn vào yêu cầu cụ thể của dự án. Dưới đây là các yếu tố chính bạn cần cân nhắc:
- Mức độ chấp nhận suy giảm độ chính xác: Một số ứng dụng (ví dụ: gợi ý sản phẩm) có thể chấp nhận một chút sai sót, trong khi các ứng dụng khác (ví dụ: xe tự lái) đòi hỏi độ chính xác tuyệt đối.
- Giới hạn phần cứng: Thiết bị của bạn là gì? CPU, GPU hay một chip chuyên dụng (TPU/NPU)? Phần cứng có hỗ trợ tính toán ma trận thưa hay tính toán số nguyên tốc độ cao không?
- Yêu cầu về độ trễ: Ứng dụng có cần phản hồi trong thời gian thực không? Lượng tử hóa thường mang lại lợi ích lớn nhất về tốc độ.
- Đặc thù của tác vụ: Một số mô hình hoặc tác vụ có thể nhạy cảm hơn với việc cắt tỉa hoặc lượng tử hóa so với các mô hình khác.
Để dễ hình dung, hãy tham khảo bảng so sánh đơn giản dưới đây:
| Kỹ thuật | Mức độ nén | Tốc độ suy luận | Tác động đến độ chính xác | Độ phức tạp triển khai |
|---|---|---|---|---|
| Chưng cất | Cao | Cao | Thấp-Trung bình | Cao (cần huấn luyện lại) |
| Cắt tỉa | Cao | Trung bình-Cao | Thấp-Trung bình | Trung bình |
| Phân rã bậc thấp | Trung bình | Trung bình | Thấp | Trung bình |
| Lượng tử hóa | Trung bình (4x-8x) | Rất cao | Thấp | Thấp |
Trong nhiều trường hợp, giải pháp tốt nhất là kết hợp các phương pháp. Ví dụ, bạn có thể bắt đầu bằng việc cắt tỉa mô hình để loại bỏ các tham số thừa, sau đó áp dụng lượng tử hóa để giảm độ chính xác số học và tăng tốc độ. Sự kết hợp này thường mang lại hiệu quả tối ưu nhất.
Làm nhẹ mô hình là một bước đi thiết yếu để phổ cập hóa AI, đưa công nghệ này từ các trung tâm dữ liệu trên mây xuống các thiết bị gần gũi trong cuộc sống hàng ngày. Bốn kỹ thuật chính—chưng cất, cắt tỉa, phân rã bậc thấp và lượng tử hóa—mỗi loại đều có những ưu và nhược điểm riêng, đóng vai trò quan trọng trong cuộc cách mạng này. Việc lựa chọn và kết hợp các kỹ thuật một cách khéo léo đòi hỏi sự cân bằng tinh tế giữa hiệu suất, độ chính xác và điều kiện phần cứng của từng bài toán cụ thể, mở đường cho một tương lai nơi AI mạnh mẽ có thể nằm gọn trong túi quần của bạn.
Tham khảo
[1] Mô hình ngôn ngữ lớn (LLM): Là một loại mô hình AI được huấn luyện trên khối lượng dữ liệu văn bản khổng lồ để hiểu, tạo và xử lý ngôn ngữ tự nhiên của con người. Tìm hiểu thêm
[2] Tham số (Parameter): Là các giá trị (trọng số) mà mô hình học được trong quá trình huấn luyện. Số lượng tham số thường quyết định kích thước và độ phức tạp của mô hình. Tìm hiểu thêm
[3] Chi phí suy luận (Inference Cost): Là chi phí tính toán phát sinh mỗi khi mô hình AI được sử dụng để đưa ra một dự đoán hoặc tạo ra một kết quả từ dữ liệu đầu vào. Tìm hiểu thêm
[4] Chưng cất kiến thức (Knowledge Distillation): Là một kỹ thuật nén mô hình, trong đó một mô hình nhỏ (“học sinh”) học hỏi từ một mô hình lớn (“giáo viên”) không chỉ kết quả cuối cùng mà cả logic suy luận, giúp đạt hiệu suất cao với kích thước nhỏ gọn. Tìm hiểu thêm
[5] KL-Divergence: (Kullback-Leibler Divergence) Là một thước đo thống kê dùng để tính toán sự khác biệt giữa hai phân phối xác suất. Trong chưng cất kiến thức, nó được dùng để đo lường mức độ mô hình học sinh “bắt chước” được đầu ra của mô hình giáo viên. Tìm hiểu thêm
[6] Ma trận thưa (Sparse Matrix): Là ma trận trong đó hầu hết các phần tử có giá trị bằng không. Việc lưu trữ và tính toán trên các ma trận này có thể được tối ưu hóa bằng các thuật toán và phần cứng chuyên dụng. Tìm hiểu thêm
[7] Lượng tử hóa (Quantization): Là quá trình giảm độ chính xác của các con số (thường là trọng số của mô hình), ví dụ chuyển từ số thực 32-bit sang số nguyên 8-bit, để giảm kích thước mô hình và tăng tốc độ xử lý trên phần cứng. Tìm hiểu thêm
Thảo luận cùng cộng đồng
- Trong 4 kỹ thuật trên, bạn thấy kỹ thuật nào có tiềm năng ứng dụng lớn nhất tại Việt Nam và tại sao?
- Bạn đã từng gặp khó khăn gì khi triển khai các mô hình AI trên các thiết bị có tài nguyên hạn chế chưa? Hãy chia sẻ kinh nghiệm của bạn!