Model Pruning
Tìm hiểu cách model pruning giảm kích thước và độ phức tạp của mạng thần kinh cho Edge AI. Khám phá các chiến lược tối ưu hóa Ultralytics YOLO26 để suy luận nhanh hơn trên thiết bị di động.
Cắt tỉa mô hình là một kỹ thuật trong học máy được sử dụng để giảm kích thước và độ phức tạp tính toán của một mạng nơ-ron bằng cách loại bỏ các tham số không cần thiết một cách có hệ thống. Giống như một người làm vườn cắt bỏ các cành cây chết hoặc mọc quá mức để giúp cây phát triển tốt hơn, các nhà phát triển cắt tỉa các mạng nhân tạo để làm cho chúng nhanh hơn, nhỏ hơn và tiết kiệm năng lượng hơn. Quá trình này rất cần thiết để triển khai các kiến trúc học sâu hiện đại trên các thiết bị có nguồn lực hạn chế, chẳng hạn như điện thoại thông minh, cảm biến nhúng và phần cứng tính toán biên (edge computing).
Link to this sectionCắt tỉa mô hình hoạt động như thế nào#
Ý tưởng cốt lõi đằng sau việc cắt tỉa là các mạng nơ-ron sâu thường bị "quá tham số hóa", nghĩa là chúng chứa nhiều trọng số và độ chệch hơn mức cần thiết để giải quyết một vấn đề cụ thể. Trong quá trình huấn luyện, mô hình học được một số lượng lớn các kết nối, nhưng không phải tất cả đều đóng góp như nhau vào kết quả đầu ra cuối cùng. Các thuật toán cắt tỉa phân tích mô hình đã được huấn luyện để xác định các kết nối dư thừa hoặc không cung cấp thông tin—thường là những kết nối có trọng số gần bằng không—và loại bỏ chúng.
Vòng đời của một mô hình được cắt tỉa thường tuân theo các bước sau:
-
Huấn luyện: Một mô hình lớn được huấn luyện đến khi hội tụ để nắm bắt các đặc trưng phức tạp.
-
Cắt tỉa: Các tham số có tầm quan trọng thấp được đặt về 0 hoặc loại bỏ hoàn toàn khỏi cấu trúc mạng.
-
Tinh chỉnh (Fine-Tuning): Mô hình trải qua một vòng tinh chỉnh thứ cấp để cho phép các tham số còn lại điều chỉnh và khôi phục bất kỳ độ chính xác nào bị mất trong giai đoạn cắt tỉa.
Phương pháp luận này thường gắn liền với Giả thuyết Vé số (Lottery Ticket Hypothesis), giả thuyết cho rằng các mạng dày đặc chứa các mạng con nhỏ hơn, biệt lập (các vé số chiến thắng) có thể đạt được độ chính xác tương đương với mô hình gốc nếu được huấn luyện một cách riêng biệt.
Link to this sectionCác loại chiến lược cắt tỉa#
Các phương pháp cắt tỉa thường được phân loại dựa trên cấu trúc của các thành phần bị loại bỏ.
- Cắt tỉa phi cấu trúc (Unstructured Pruning): Cách tiếp cận này loại bỏ các trọng số riêng lẻ ở bất kỳ đâu trong mô hình dựa trên một ngưỡng (ví dụ: độ lớn). Mặc dù cách này giúp giảm số lượng tham số hiệu quả, nhưng nó tạo ra các ma trận thưa mà phần cứng tiêu chuẩn khó có thể xử lý hiệu quả. Nếu không có phần mềm chuyên dụng hoặc bộ tăng tốc phần cứng, việc cắt tỉa phi cấu trúc có thể không mang lại sự cải thiện tốc độ đáng kể.
- Cắt tỉa có cấu trúc (Structured Pruning): Phương pháp này loại bỏ toàn bộ các cấu trúc hình học, chẳng hạn như các kênh (channels), bộ lọc (filters) hoặc lớp (layers) bên trong một mạng nơ-ron tích chập (CNN). Bằng cách duy trì cấu trúc ma trận dày đặc, mô hình sau khi cắt tỉa vẫn tương thích với phần cứng GPU và CPU tiêu chuẩn, dẫn đến những cải thiện trực tiếp về độ trễ suy luận và lưu lượng xử lý.
Link to this sectionCác ứng dụng trong thực tế#
Cắt tỉa là yếu tố then chốt cho Edge AI, cho phép các mô hình tinh vi chạy trong các môi trường nơi kết nối đám mây không khả dụng hoặc quá chậm.
- Phát hiện vật thể trên di động: Các ứng dụng trên thiết bị di động, như dịch ngôn ngữ thời gian thực hoặc thực tế tăng cường, sử dụng các mô hình đã cắt tỉa để bảo toàn thời lượng pin và giảm mức sử dụng bộ nhớ. Các kiến trúc tối ưu như YOLO26 thường là nền tảng được ưu tiên cho các tác vụ này nhờ hiệu quả vốn có của chúng.
- An toàn ô tô: Xe tự lái và phương tiện tự hành đòi hỏi khả năng ra quyết định trong tích tắc. Các mô hình đã cắt tỉa cho phép máy tính trên xe xử lý luồng camera độ phân giải cao để phát hiện người đi bộ mà không gặp phải độ trễ do truyền dữ liệu đến máy chủ.
- IoT công nghiệp: Trong sản xuất, các hệ thống kiểm tra trực quan trên dây chuyền lắp ráp sử dụng các mô hình nhẹ để phát hiện lỗi. Việc cắt tỉa đảm bảo các hệ thống này có thể chạy trên các bộ vi điều khiển tiết kiệm chi phí thay vì các tủ máy chủ đắt tiền.
Link to this sectionSo sánh cắt tỉa và các kỹ thuật tối ưu hóa liên quan#
Mặc dù cắt tỉa mô hình là một công cụ mạnh mẽ, nó thường bị nhầm lẫn hoặc được sử dụng cùng với các kỹ thuật tối ưu hóa mô hình khác.
- Cắt tỉa so với Lượng tử hóa: Cắt tỉa giúp giảm số lượng tham số (kết nối) trong mô hình. Ngược lại, lượng tử hóa mô hình giảm độ chính xác của các tham số đó, ví dụ như bằng cách chuyển đổi các số dấu phẩy động 32-bit thành số nguyên 8-bit. Cả hai thường được kết hợp để tối đa hóa hiệu quả cho triển khai mô hình.
- Cắt tỉa so với Chưng cất tri thức (Knowledge Distillation): Cắt tỉa sửa đổi mô hình gốc bằng cách cắt bỏ các phần tử bên trong. Chưng cất tri thức liên quan đến việc huấn luyện một mô hình "học sinh" mới, nhỏ hơn hoàn toàn để mô phỏng hành vi của một mô hình "giáo viên" lớn hơn.
Link to this sectionVí dụ về triển khai#
Ví dụ Python sau đây trình bày cách áp dụng cắt tỉa phi cấu trúc cho một lớp tích chập bằng PyTorch. Đây là một bước phổ biến trước khi xuất mô hình sang các định dạng tối ưu như ONNX.
import torch
import torch.nn as nn
import torch.nn.utils.prune as prune
# Initialize a standard convolutional layer
module = nn.Conv2d(in_channels=1, out_channels=20, kernel_size=3)
# Apply unstructured pruning to remove 30% of the connections
# This sets the weights with the lowest L1-norm to zero
prune.l1_unstructured(module, name="weight", amount=0.3)
# Calculate and print the sparsity (percentage of zero elements)
sparsity = 100.0 * float(torch.sum(module.weight == 0)) / module.weight.nelement()
print(f"Layer Sparsity: {sparsity:.2f}%")Đối với những người dùng muốn quản lý toàn bộ vòng đời của tập dữ liệu và mô hình của họ—bao gồm huấn luyện, đánh giá và triển khai—Ultralytics Platform cung cấp một giao diện tinh gọn. Nó đơn giản hóa quy trình tạo các mô hình được tối ưu hóa cao như YOLO26 và xuất chúng sang các định dạng thân thiện với phần cứng như TensorRT hoặc CoreML.






