Thuật ngữ

Cắt tỉa mô hình

Tối ưu hóa các mô hình học máy với chức năng cắt tỉa mô hình. Đạt được tốc độ 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ế.

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 mô hình là một kỹ thuật học máy (ML) được sử dụng để 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 liên quan đến việc 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ố mô hình 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 chính 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, thường không làm giảm đáng kể độ chính xác . Quá trình này là một ứng dụng cụ thể của khái niệm cắt tỉa rộng hơn được áp dụng trực tiếp cho các mô hình ML, giúp chúng hiệu quả hơn khi triển khai .

Tại sao nên sử dụng Model Pruning?

Động lực chính cho việc cắt tỉa mô hình là hiệu quả. Các mô hình học sâu (DL) hiện đại, đặc biệt là trong các lĩnh vực như thị giác máy tính (CV) , có thể cực kỳ lớn và tốn nhiều tài nguyên 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, hệ thống nhúng hoặc trong các tình huống điện toán biên . Cắt tỉa mô hình giúp 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, điều này rất quan trọng đối với các thiết bị có dung lượng bộ nhớ hạn chế như những thiết bị được sử dụng trong Edge AI .
  • Tăng tốc độ suy luận: Ít tham số hơn có nghĩa là ít tính toán hơn, dẫn đến độ trễ suy luận thấp hơn và cho phép khả năng suy luận theo thời gian thực , điều cần thiết cho các ứng dụng như xe tự hành . Ứng dụng Ultralytics HUB được hưởng lợi từ các tối ưu hóa như vậy cho việc triển khai trên thiết bị di động.
  • Giảm mức tiêu thụ năng lượng: Giảm tải tính toán đồng nghĩa với việc sử dụng ít điện năng hơn, góp phần vào các hoạt động AI bền vững hơn và kéo dài tuổi thọ pin trên thiết bị di động.
  • Cải thiện khả năng khái quát hóa: Đôi khi, việc cắt tỉa có thể giúp giảm hiện tượng quá khớp bằng cách loại bỏ các tham số dư thừa, có khả năng cải thiện hiệu suất của mô hình trên dữ liệu chưa biết.

Các loại cắt tỉa mô hình

Các kỹ thuật cắt tỉa mô hình có nhiều dạng khác nhau nhưng nhìn chung được chia thành các loại dựa trên mức độ chi tiết của nội dung bị loại bỏ:

  • Cắt tỉa trọng số (Không có cấu trúc): Các trọng số riêng lẻ dưới ngưỡng quan trọng nhất định (thường dựa trên độ lớn) sẽ bị xóa (đặt thành 0). Điều này có thể 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 như các công cụ của NVIDIA dành cho các mô hình thưa thớt để tăng tốc tối ưu.
  • Cắt tỉa nơ-ron: Toàn bộ nơ-ron (và các kết nối của chúng) được coi là không quan trọng sẽ bị loại bỏ khỏi mạng.
  • Cắt tỉa bộ lọc/kênh (có cấu trúc): Toàn bộ bộ lọc hoặc kênh trong Mạng nơ-ron tích chập (CNN) bị xóa. Phương pháp cắt tỉa có cấu trúc này thường dẫn đến tăng tốc trực tiếp hơn trên phần cứng tiêu chuẩn mà không cần thư viện chuyên dụng. Các công cụ như DeepSparse của Neural Magic tận dụng tính thưa thớt cho CPU tăng tốc, thường kết hợp với cắt tỉa ( hướng dẫn YOLOv5 với Neural Magic ).

Việc cắt tỉa có thể diễn ra sau khi mô hình được đào tạo đầy đủ hoặc được tích hợp vào quy trình đào tạo . Sau khi cắt tỉa, các mô hình thường trải qua quá trình tinh chỉnh (đào tạo thêm về kiến trúc nhỏ hơn) để phục hồi bất kỳ hiệu suất nào bị mất trong quá trình xóa tham số. Các khuôn khổ như PyTorch cung cấp các tiện ích để triển khai các phương pháp cắt tỉa khác nhau, như được hiển thị trong 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 AI:

  1. Tối ưu hóa phát hiện đối tượng trên thiết bị Edge: Các mô hình như Ultralytics YOLO được sử dụng để phát hiện đối tượng có thể được cắt tỉa để chạy hiệu quả trên phần cứng hạn chế tài nguyên như Raspberry Pi , Edge TPU của Google hoặc NVIDIA Jetson . Điều này cho phép các ứng dụng như giám sát trên thiết bị, giám sát giao thông ( blog tối ưu hóa quản lý giao thông ) hoặc điều hướng bằng rô-bốt ( blog tích hợp CV trong rô-bốt ).
  2. Triển khai Mô hình ngôn ngữ lớn (LLM) cục bộ: Các kỹ thuật cắt tỉa có thể giảm đáng kể kích thước của các mô hình lớn như các mô hình dựa trên kiến trúc Transformer , cho phép chúng chạy trực tiếp trên thiết bị của người dùng (ví dụ: điện thoại thông minh) cho các tác vụ như xử lý ngôn ngữ tự nhiên (NLP) mà không cần kết nối đám mây liên tục. Điều này tăng cường quyền riêng tư của dữ liệu và giảm độ trễ cho các ứng dụng như dịch thuật trên thiết bị hoặc trợ lý thông minh.

Cắt tỉa 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 số nhiều kỹ thuật được sử dụng để tối ưu hóa mô hình . Nó khác biệt với nhưng thường bổ sung cho:

  • Lượng tử hóa mô hình : Giảm độ chính xác về mặt số của trọng số và kích hoạt 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à tăng tốc tính toán, đặc biệt là trên phần cứng có hỗ trợ chuyên dụng như TensorRT .
  • Chưng cất kiến thức : Đào tạo một mô hình "học viên" 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. Mục tiêu là chuyển kiến thức từ mô hình lớn sang mô hình nhỏ gọn hơn.

Các kỹ thuật này có thể được kết hợp; 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 xuất sang các định dạng chuẩn như ONNX ( tùy chọn xuất Ultralytics ) để có khả năng tương thích triển khai rộng rãi. Các nền tảng như Ultralytics HUB cung cấp môi trường để quản lý các mô hình, tập dữ liệu ( như COCO ) và hợp lý hóa con đường triển khai được tối ưu hóa.

Đọc tất cả