Cắt tỉa mô hình là một kỹ thuật được sử dụng trong học máy để tối ưu hóa các mô hình đã được đào tạo bằng cách giảm kích thước và độ phức tạp của chúng. Điều này đạt được bằng cách xác định và loại bỏ các tham số ít quan trọng hơn, chẳng hạn như trọng số hoặc kết nối trong mạng nơ-ron (NN) , đóng góp tối thiểu vào hiệu suất tổng thể của mô hình. Mục tiêu là tạo ra các mô hình nhỏ hơn, nhanh hơn, đòi hỏi ít sức mạnh tính toán và bộ nhớ hơn, giúp chúng hiệu quả hơn mà không làm giảm đáng kể độ chính xác. Quy trình này là một loại cắt tỉa cụ thể được áp dụng trực tiếp cho các mô hình học máy.
Tại sao nên sử dụng Model Pruning?
Động lực chính để cắt tỉa mô hình là hiệu quả. Các mô hình học sâu hiện đại, mặc dù mạnh mẽ, có thể rất lớn và đòi hỏi nhiều tính toán. Điều này đặt ra những thách thức cho việc triển khai mô hình , đặc biệt là trên các thiết bị có tài nguyên hạn chế như điện thoại thông minh hoặc hệ thống điện toán biên . Cắt tỉa mô hình giải quyết các vấn đề này bằng cách:
- Giảm kích thước mô hình: Các mô hình nhỏ hơn cần ít không gian lưu trữ hơn, giúp triển khai dễ dàng hơn trên các thiết bị như những thiết bị chạy Ứng dụng Ultralytics HUB .
- Tăng tốc độ suy luận: Với ít tham số hơn, các mô hình được cắt tỉa thực hiện các phép tính nhanh hơn, giảm độ trễ suy luận . Điều này rất quan trọng đối với các ứng dụng suy luận thời gian thực .
- Giảm mức tiêu thụ năng lượng: Ít tính toán hơn có nghĩa là sử dụng ít điện năng hơn, điều này rất quan trọng đối với các thiết bị chạy bằng pin và để thúc đẩy các hoạt động AI bền vững .
- Giảm thiểu tình trạng quá khớp: Việc loại bỏ các tham số dư thừa đôi khi có thể giúp các mô hình tổng quát hóa tốt hơn với dữ liệu mới, có khả năng giảm tình trạng quá khớp .
Các loại cắt tỉa mô hình
Kỹ thuật cắt tỉa mô hình có nhiều loại nhưng nhìn chung được chia thành các loại dựa trên những gì bị loại bỏ:
- Cắt tỉa trọng số (Không có cấu trúc): Các trọng số hoặc kết nối riêng lẻ trong mạng có độ lớn hoặc tầm quan trọng thấp được đặt thành 0. Điều này thường dẫn đến các mô hình thưa thớt nhưng có thể yêu cầu phần cứng hoặc phần mềm chuyên dụng để tăng tốc tối ưu.
- Cắt tỉa neuron/bộ lọc (có cấu trúc): Toàn bộ neuron, bộ lọc (trong Convolutional Neural Networks (CNN) ) hoặc các thành phần cấu trúc khác bị loại bỏ. Điều này thường dẫn đến các mô hình dày đặc nhỏ hơn, đều đặn hơn, dễ tăng tốc hơn trên phần cứng tiêu chuẩn bằng các công cụ như NVIDIA TensorRT .
Có thể áp dụng cắt tỉa sau khi đào tạo hoặc tích hợp vào quy trình đào tạo . Thông thường, mô hình cắt tỉa cần một số tinh chỉnh (đào tạo bổ sung) để khôi phục bất kỳ độ chính xác nào đã mất. Bạn có thể khám phá nhiều chiến lược cắt tỉa khác nhau trong các tài nguyên như Hướng dẫn cắt tỉa PyTorch .
Ứng dụng trong thế giới thực
Việc cắt tỉa mô hình có giá trị trong nhiều lĩnh vực:
- Tầm nhìn máy tính di động: Các mô hình YOLO Ultralytics được sử dụng để phát hiện đối tượng trên thiết bị di động có thể được cắt tỉa để chạy hiệu quả, cho phép phân tích thời gian thực trực tiếp trên thiết bị mà không cần kết nối đám mây liên tục. Điều này rất quan trọng đối với các ứng dụng được triển khai trên các nền tảng như Raspberry Pi hoặc sử dụng trình tăng tốc như Edge TPU của Google .
- Hệ thống tự động: Trong xe tự lái hoặc máy bay không người lái, các mô hình cần xử lý dữ liệu cảm biến ngay lập tức. Việc cắt tỉa các mô hình nhận thức phức tạp giúp đạt được độ trễ thấp cần thiết cho việc điều hướng và ra quyết định an toàn, thường được triển khai trên phần cứng như NVIDIA Jetson .
Cắt tỉa mô hình so với các kỹ thuật tối ưu hóa khác
Cắt tỉa mô hình là một trong nhiều kỹ thuật để tối ưu hóa mô hình. Điều quan trọng là phải phân biệt nó với:
- 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). Điều này cũng làm giảm kích thước và tăng tốc tính toán nhưng hoạt động bằng cách thay đổi kiểu dữ liệu, không xóa tham số. Xem TensorFlow Lite Optimization để biết ví dụ.
- Chưng cất kiến thức : Bao gồm việc đào tạo một mô hình "học viên" nhỏ hơn để mô phỏng đầu ra của một mô hình "giáo viên" lớn hơn, được đào tạo trước. Mục tiêu là chuyển giao kiến thức, tạo ra một mô hình nhỏ gọn mà không cần sửa đổi trực tiếp giáo viên. Đọc Bài báo chưng cất kiến thức gốc để biết chi tiết.
Các kỹ thuật này không loại trừ lẫn nhau và thường được kết hợp với cắt tỉa để tối ưu hóa lợi ích tối đa. Ví dụ, một mô hình có thể được cắt tỉa trước, sau đó lượng tử hóa trước khi triển khai cuối cùng. Bạn có thể tìm hướng dẫn về tối ưu hóa trong Tài liệu Ultralytics .