Thuật ngữ

Cắt tỉa

Tối ưu hóa các mô hình AI bằng cách cắt tỉa—giảm độ phức tạp, tăng hiệu quả và triển khai nhanh hơn trên các thiết bị biên mà không làm giảm hiệu suất.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Cắt tỉa là một kỹ thuật tối ưu hóa mô hình được sử dụng trong trí tuệ nhân tạo (AI) và học máy (ML) để giảm kích thước và độ phức tạp tính toán của các mô hình đã được đào tạo. Nó bao gồm việc loại bỏ có chọn lọc các tham số, chẳng hạn như trọng số hoặc kết nối trong mạng nơ-ron (NN) , được xác định là ít quan trọng hoặc thừa đối với nhiệm vụ của mô hình. Mục tiêu chính là tạo ra các mô hình nhỏ hơn, nhanh hơn, đòi hỏi ít tài nguyên tính toán và bộ nhớ hơn, lý tưởng nhất là không làm giảm đáng kể hiệu suất hoặc độ chính xác . Quá trình này là một phần quan trọng của việc triển khai mô hình hiệu quả, đặc biệt là trên các thiết bị có khả năng hạn chế. Trong khi "Cắt tỉa" là thuật ngữ chung, " Cắt tỉa mô hình " đề cập cụ thể đến việc áp dụng kỹ thuật này cho các mô hình ML.

Sự liên quan của việc cắt tỉa

Khi các mô hình học sâu (DL) phát triển lớn hơn và phức tạp hơn để giải quyết các tác vụ phức tạp, nhu cầu về sức mạnh tính toán, lưu trữ và năng lượng của chúng tăng lên đáng kể. Việc cắt tỉa trực tiếp giải quyết thách thức này bằng cách làm cho các mô hình nhẹ hơn và hiệu quả hơn. Việc tối ưu hóa này dẫn đến một số lợi ích: giảm nhu cầu lưu trữ, giảm mức tiêu thụ năng lượng trong quá trình vận hành và giảm độ trễ suy luận , điều này rất quan trọng đối với các ứng dụng yêu cầu suy luận theo thời gian thực . Việc cắt tỉa đặc biệt có giá trị khi triển khai các mô hình trong các môi trường hạn chế về tài nguyên như thiết bị di động, hệ thống nhúng và nhiều tình huống AI Edge khác nhau, trong đó hiệu quả là mối quan tâm chính. Nó cũng có thể giúp giảm thiểu tình trạng quá khớp bằng cách đơn giản hóa mô hình.

Ứng dụng của việc cắt tỉa

Kỹ thuật cắt tỉa được áp dụng rộng rãi trên nhiều lĩnh vực AI. Sau đây là hai ví dụ cụ thể:

  1. Triển khai mô hình phát hiện đối tượng trên thiết bị Edge: Mô hình YOLO Ultralytics được đào tạo để phát hiện đối tượng có thể quá lớn hoặc chậm để triển khai trên thiết bị công suất thấp như Raspberry Pi hoặc Google Edge TPU . Việc cắt tỉa có thể giảm kích thước và tải tính toán của mô hình, cho phép mô hình chạy hiệu quả trên phần cứng đó cho các tác vụ như hệ thống an ninh hoặc giám sát động vật hoang dã tại địa phương. Xem các hướng dẫn như hướng dẫn Edge TPU trên Raspberry Pi hoặc hướng dẫn NVIDIA Jetson để biết các ví dụ về triển khai.
  2. Tối ưu hóa mô hình cho hệ thống tự động: Trong xe tự hành , các mô hình nhận thức phức tạp cho các tác vụ như phân đoạn hình ảnh hoặc hợp nhất cảm biến phải chạy với độ trễ tối thiểu. Việc cắt tỉa giúp tối ưu hóa các Mạng nơ-ron tích chập (CNN) này để đáp ứng các yêu cầu xử lý thời gian thực nghiêm ngặt, đảm bảo hoạt động của xe an toàn và phản hồi. Các khuôn khổ như NVIDIA TensorRT thường hỗ trợ các mô hình được cắt tỉa để suy luận được tối ưu hóa.

Các loại và kỹ thuật

Phương pháp cắt tỉa có nhiều loại nhưng nhìn chung có thể chia thành các loại chính sau:

  • Cắt tỉa không có cấu trúc: Điều này liên quan đến việc loại bỏ các trọng số hoặc nơ-ron riêng lẻ dựa trên các tiêu chí như cường độ thấp hoặc đóng góp vào đầu ra. Nó tạo ra các mô hình thưa thớt với các mẫu không đều của các kết nối bị loại bỏ. Mặc dù có khả năng đạt được tỷ lệ nén cao, các mô hình này có thể yêu cầu các thư viện phần cứng hoặc phần mềm chuyên dụng (như DeepSparse của Neural Magic ) để thực hiện hiệu quả. Xem Tích hợp Neural Magic Ultralytics .
  • Structured Pruning: Kỹ thuật này loại bỏ toàn bộ các thành phần cấu trúc của mạng, chẳng hạn như bộ lọc, kênh hoặc thậm chí là lớp. Điều này duy trì cấu trúc thông thường, làm cho mô hình được cắt tỉa tương thích hơn với các bộ tăng tốc phần cứng và thư viện tiêu chuẩn như hỗ trợ thưa thớt có cấu trúc của NVIDIA .

Việc cắt tỉa có thể được triển khai ở nhiều giai đoạn khác nhau: trước khi đào tạo (ảnh hưởng đến thiết kế kiến trúc), trong quá trình đào tạo hoặc sau khi đào tạo trên một mô hình được đào tạo trước, thường theo sau là tinh chỉnh để lấy lại bất kỳ độ chính xác nào đã mất. Các khuôn khổ học sâu chính như PyTorchTensorFlow cung cấp các công cụ và hướng dẫn, chẳng hạn như Hướng dẫn cắt tỉa PyTorch , để triển khai các chiến lược cắt tỉa khác nhau.

Cắt tỉa so với các kỹ thuật tối ưu hóa khác

Cắt tỉa là một trong số nhiều kỹ thuật được sử dụng để tối ưu hóa mô hình . Sẽ hữu ích khi phân biệt nó với các khái niệm liên quan:

  • Lượng tử hóa mô hình : Giảm độ chính xác của trọng số và kích hoạt của mô hình (ví dụ: từ số thực 32 bit thành số nguyên 8 bit), giảm kích thước mô hình và thường tăng tốc độ tính toán, đặc biệt là trên phần cứng chuyên dụng.
  • Chắt lọc kiến thức : Bao gồm việc đào tạo một mô hình "học sinh" nhỏ hơn để bắt chước hành vi của một mô hình "giáo viên" lớn hơn đã được đào tạo trước, truyền đạt kiến thức mà không kế thừa tính phức tạp.

Các kỹ thuật này không loại trừ lẫn nhau và thường được sử dụng kết hợp với cắt tỉa để đạt được mức tối ưu hóa cao hơn. Ví dụ, một mô hình có thể được cắt tỉa trước, sau đó lượng tử hóa để đạt hiệu quả tối đa. Các mô hình được tối ưu hóa thường có thể được xuất sang các định dạng chuẩn như ONNX bằng các công cụ như hàm xuất Ultralytics để có khả năng tương thích triển khai rộng rãi trên các công cụ suy luận khác nhau.

Tóm lại, cắt tỉa là một kỹ thuật mạnh mẽ để tạo ra các mô hình AI hiệu quả phù hợp với nhiều nhu cầu triển khai khác nhau, đóng vai trò quan trọng trong ứng dụng thực tế của thị giác máy tính (CV) và các tác vụ ML khác. Các nền tảng như Ultralytics HUB cung cấp các công cụ và cơ sở hạ tầng, bao gồm đào tạo đám mây , có thể tạo điều kiện thuận lợi cho việc phát triển và tối ưu hóa các mô hình như YOLOv8 hoặc YOLO11 .

Đọc tất cả