Tìm hiểu cách thức cắt tỉa mô hình giúp giảm kích thước và độ phức tạp của mạng nơ-ron cho Trí tuệ nhân tạo biên (Edge AI). Khám phá các chiến lược tối ưu hóa. Ultralytics YOLO26 giúp 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ạng nơ-ron bằng cách loại bỏ có hệ thống các tham số không cần thiết. Giống như người làm vườn cắt tỉa những cành cây chết hoặc mọc quá mức để khuyến khích cây phát triể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ó tài nguyên 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 điện toán biên.
Ý tưởng cốt lõi đằng sau kỹ thuật cắt tỉa (pruning) là các mạng nơ-ron sâu thường bị "quá tham số", nghĩa là chúng chứa nhiều weights and biases 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ả 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:
Phương pháp này thường được liên kết với Giả thuyết Vé số , cho rằng các mạng dày đặc chứa các mạng con nhỏ hơn, biệt lập (vé trúng thưởng) có thể đạt được độ chính xác tương đương với mô hình ban đầu nếu được huấn luyện riêng lẻ.
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 bộ phận bị loại bỏ.
Việc cắt tỉa là một yếu tố then chốt giúp Edge AI hoạt động, cho phép các mô hình phức tạp chạy trong môi trường mà kết nối đám mây không khả dụng hoặc quá chậm.
Mặc dù việc cắt tỉa mô hình là một công cụ mạnh mẽ, nhưng nó thường bị nhầm lẫn hoặc sử dụng cùng với các kỹ thuật tối ưu hóa mô hình khác.
Sau đây Python Ví dụ này minh họa cách áp dụng kỹ thuật cắt tỉa không 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 hóa 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 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— Nền tảng Ultralytics cung cấp một giao diện được tối ưu hóa. Nó đơn giản hóa quá trình tạo ra 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 .