Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Tỉa bớt mô hình

Tối ưu hóa các mô hình machine learning bằng cách tỉa bớt mô hình. Đạt được khả năng suy luận nhanh hơn, giảm sử dụng bộ nhớ và hiệu quả năng lượng cho các triển khai có tài nguyên hạn chế.

Cắt tỉa mô hình là một kỹ thuật tối ưu hóa mô hình được thiết kế để 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ác tham số không cần thiết. Khi các mô hình trí tuệ nhân tạo phát triển lớn hơn để đạt hiệu suất cao hơn, chúng thường bị tham số hóa quá mức, chứa nhiều kết nối hoặc nơ-ron không đóng góp nhiều vào kết quả đầu ra cuối cùng. Bằng cách xác định và loại bỏ các thành phần dư thừa này, các nhà phát triển có thể tạo ra các mô hình tinh gọn hơn, đòi hỏi ít bộ nhớ và năng lượng hơn, đồng thời cung cấp khả năng suy luận thời gian thực nhanh hơn. Quá trình này đặc biệt quan trọng khi triển khai các kiến trúc phức tạp như YOLO11 trên phần cứng khan hiếm tài nguyên, chẳng hạn như điện thoại di động hoặc cảm biến nhúng.

Các khái niệm và cơ chế cốt lõi

Quá trình cắt tỉa thường bao gồm ba giai đoạn chính: huấn luyện, cắt tỉa và tinh chỉnh . Ban đầu, một mô hình lớn được huấn luyện để hội tụ nhằm nắm bắt các đặc điểm phức tạp. Trong giai đoạn cắt tỉa, một thuật toán sẽ đánh giá tầm quan trọng của các tham số cụ thể - thường là weights and biases - dựa trên các tiêu chí như độ lớn hoặc độ nhạy. Các tham số được coi là không đáng kể sẽ được đặt về 0 hoặc bị loại bỏ hoàn toàn.

Tuy nhiên, việc chỉ cắt bỏ một phần của mạng có thể làm giảm độ chính xác của nó. Để khắc phục điều này, mô hình trải qua một vòng đào tạo lại tiếp theo được gọi là tinh chỉnh. Bước này cho phép các tham số còn lại điều chỉnh và bù đắp cho các kết nối bị thiếu, thường khôi phục hiệu suất của mô hình về mức gần như ban đầu. Hiệu quả của phương pháp này được hỗ trợ bở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 có khả năng đạt được độ chính xác tương đương khi được đào tạo riêng lẻ.

Các Loại Tỉa Thưa Mô Hình

Các chiến lược cắt tỉa thường được phân loại theo 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: Phương pháp này nhắm vào các trọng số riêng lẻ bất kể vị trí của chúng, đặt các trọng số có giá trị thấp về 0. Kết quả là một ma trận "thưa thớt" với các kết nối có giá trị bị phân tán. Mặc dù hiệu quả trong việc giảm kích thước mô hình, cắt tỉa phi cấu trúc thường yêu cầu phần cứng hoặc thư viện phần mềm chuyên dụng để đạt được tốc độ thực tế, vì CPUGPU tiêu chuẩn được tối ưu hóa cho các phép toán ma trận dày đặc.
  • Cắt tỉa có cấu trúc: Thay vì các trọng số riêng lẻ, phương pháp này loại bỏ toàn bộ cấu trúc hình học, chẳng hạn như kênh, bộ lọc hoặc lớp trong Mạng nơ-ron tích chập (CNN) . Bằng cách duy trì cấu trúc dày đặc của ma trận, cắt tỉa có cấu trúc cho phép phần cứng tiêu chuẩn xử lý mô hình hiệu quả hơn, trực tiếp chuyển đổi thành độ trễ suy luận thấp hơn mà không cần các công cụ tăng tốc thưa thớt chuyên dụng.

Cắt tỉa so với Lượng tử hóa

Mặc dù cả hai đều là kỹ thuật tối ưu hóa phổ biến, điều quan trọng là phải phân biệt giữa cắt tỉa và lượng tử hóa mô hình . Cắt tỉa tập trung vào việc giảm số lượng tham số (kết nối hoặc nơ-ron), từ đó thay đổi đáng kể kiến trúc của mô hình. Ngược lại, lượng tử hóa làm giảm độ chính xác của các tham số đó, ví dụ, chuyển đổi số dấu phẩy động 32 bit thành số nguyên 8 bit. Các phương pháp này thường bổ sung cho nhau; trước tiên, nhà phát triển có thể cắt tỉa mô hình để loại bỏ sự dư thừa, sau đó lượng tử hóa nó để giảm thiểu hơn nữa dung lượng bộ nhớ cho việc triển khai .

Các Ứng dụng Thực tế

Việc cắt tỉa đóng vai trò quan trọng trong việc giúp công nghệ thị giác máy tính tiên tiến có thể tiếp cận được trong các tình huống thực tế:

  1. Phát hiện Đối tượng Di động: Các ứng dụng chạy trên điện thoại thông minh, chẳng hạn như ứng dụng thực tế tăng cường hoặc trình sắp xếp ảnh, sử dụng các mô hình được cắt tỉa để thực hiện phát hiện đối tượng cục bộ. Điều này giúp tiết kiệm pin và đảm bảo quyền riêng tư dữ liệu người dùng bằng cách tránh xử lý đám mây.
  2. Hệ thống an toàn ô tô: Xe tự hành dựa vào quá trình xử lý nhanh chóng dữ liệu hình ảnh để detect người đi bộ và chướng ngại vật. Các mô hình được cắt tỉa cho phép công cụ suy luận tích hợp đưa ra quyết định trong tích tắc mà không cần tiêu thụ điện năng lớn như máy chủ GPU .

Ví dụ triển khai

Các framework như PyTorch cung cấp các tiện ích tích hợp để áp dụng cắt tỉa theo chương trình. Ví dụ sau đây minh họa cách áp dụng cắt tỉa phi cấu trúc cho một lớp tích chập, một thao tác phổ biến trước khi xuất mô hình sang định dạng được tối ưu hóa như ONNX .

import torch
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3)

# Apply L1 unstructured pruning to remove 30% of the connections
# This sets the smallest 30% of weights (by absolute value) to zero
prune.l1_unstructured(layer, name="weight", amount=0.3)

# Verify sparsity: calculate the percentage of zero parameters
sparsity = float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Layer sparsity: {sparsity:.2%}")

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay