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.

Cắt tỉa (Pruning) là một kỹ thuật tối ưu hóa mô hình được sử dụng để giảm kích thước và độ phức tạp tính toán của một mạng nơ-ron (NN) đã được huấn luyện. Quá trình này bao gồm việc xác định và loại bỏ các tham số dư thừa hoặc ít quan trọng (trọng số) hoặc cấu trúc (nơ-ron, kênh hoặc lớp) khỏi mô hình. Mục tiêu là tạo ra một mô hình nhỏ hơn, nhanh hơn và tiết kiệm năng lượng hơn, đồng thời duy trì độ chính xác tương đương với mô hình gốc. Điều này đặc biệt quan trọng khi triển khai các mô hình AI phức tạp trên các môi trường hạn chế về tài nguyên, chẳng hạn như các thiết bị biên .

Cách cắt tỉa hoạt động

Quá trình cắt tỉa thường bắt đầu sau khi một mô hình học sâu đã được huấn luyện đầy đủ. Nó hoạt động dựa trên nguyên tắc rằng nhiều mô hình lớn bị tham số hóa quá mức, nghĩa là chúng chứa nhiều trọng số và nơ-ron đóng góp rất ít vào dự đoán cuối cùng. Một phương pháp phổ biến để xác định những thành phần không quan trọng này là phân tích độ lớn của chúng; các tham số có giá trị gần bằng 0 được coi là ít quan trọng hơn. Sau khi được xác định, các tham số này sẽ bị loại bỏ hoặc được đặt về 0. Sau quá trình cắt tỉa, mạng lưới giờ đây nhỏ hơn thường trải qua quá trình tinh chỉnh , bao gồm việc đào tạo lại mô hình trong một vài kỷ nguyên nữa. Bước này giúp các tham số còn lại điều chỉnh theo những thay đổi về kiến trúc và khôi phục bất kỳ hiệu suất nào có thể đã bị mất trong quá trình cắt tỉa. Quá trình cắt tỉa và tinh chỉnh lặp đi lặp lại này có thể được lặp lại để đạt được sự cân bằng mong muốn giữa kích thước và hiệu suất của mô hình, như được mô tả trong các bài báo nghiên cứu nền tảng như " Nén Sâu ".

Các loại cắt tỉa

Kỹ thuật cắt tỉa có thể được phân loại rộng rãi dựa trên những gì đang bị loại bỏ khỏi mạng:

  • Cắt tỉa Không Cấu trúc (Cắt tỉa Trọng số) : Phương pháp này loại bỏ các trọng số riêng lẻ khỏi mạng dựa trên một tiêu chí cụ thể, chẳng hạn như độ lớn của chúng. Phương pháp này tạo ra một mô hình thưa thớt, trong đó nhiều kết nối bị xóa về 0. Mặc dù phương pháp này có thể giảm đáng kể số lượng tham số, nhưng không phải lúc nào cũng dẫn đến suy luận nhanh hơn trên phần cứng tiêu chuẩn như CPU hoặc GPU mà không có thư viện phần mềm chuyên dụng, chẳng hạn như các công cụ dành cho mô hình thưa thớt của NVIDIA .
  • Cắt tỉa có cấu trúc : Phương pháp 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ư nơ-ron, kênh, hoặc thậm chí toàn bộ các lớp trong Mạng nơ-ron tích chập (CNN) . Vì loại bỏ các khối thông thường của mạng, nó trực tiếp giảm kích thước và yêu cầu tính toán của mô hình theo cách mà phần cứng tiêu chuẩn có thể dễ dàng khai thác, thường dẫn đến tốc độ dự đoán được cao hơn. Các công cụ như DeepSparse của Neural Magic được thiết kế để tăng tốc suy luận trên CPU cho các mô hình thưa thớt có cấu trúc như vậy.

Các khuôn khổ học máy lớn như PyTorchTensorFlow cung cấp các tiện ích và hướng dẫn tích hợp để triển khai cắt tỉa .

Ứng dụng trong thế giới thực

Việc cắt tỉa là cần thiết để triển khai các mô hình AI mạnh mẽ trong các tình huống thực tế khi tài nguyên tính toán bị hạn chế.

  1. Tối ưu hóa Phát hiện Đối tượng trên Thiết bị Biên : Các mô hình như Ultralytics YOLO được sử dụng để phát hiện đối tượng theo thời gian thực. Bằng cách tinh chỉnh một mô hình như YOLOv8 , nó có thể được triển khai trên các thiết bị biên công suất thấp như Raspberry Pi hoặc NVIDIA Jetson . Điều này cho phép các ứng dụng như giám sát thông minh trên thiết bị, tối ưu hóa quản lý giao thôngtích hợp thị giác máy tính vào robot .
  2. Chạy Mô hình Ngôn ngữ Lớn (LLM) cục bộ : Việc cắt tỉa có thể giảm đáng kể dung lượng bộ nhớ của Mô hình Ngôn ngữ Lớn (LLM) dựa trên các kiến trúc như Transformer . Một LLM được cắt tỉa có thể chạy trực tiếp trên điện thoại thông minh hoặc máy tính xách tay cho các tác vụ Xử lý Ngôn ngữ Tự nhiên (NLP) như tóm tắt văn bản hoặc trợ lý ảo cục bộ. Điều này cải thiện khả năng phản hồi và tăng cường quyền riêng tư dữ liệu bằng cách lưu trữ dữ liệu người dùng trên thiết bị, một nguyên tắc quan trọng đối với các tổ chức như Electronic Frontier Foundation (EFF) .

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 tối ưu hóa mô hình và thường được sử dụng cùng với các kỹ thuật khác. Điều quan trọng là phải phân biệt nó với các khái niệm liên quan:

  • Lượng tử hóa mô hình : Kỹ thuật này làm giảm độ chính xác số của các trọng số và kích hoạt của mô hình (ví dụ: từ số thực 32 bit xuống số nguyên 8 bit). Điều này giúp thu nhỏ 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 biệt. Không giống như kỹ thuật cắt tỉa, vốn loại bỏ các tham số, lượng tử hóa sẽ nén chúng lại.
  • Chắt lọc kiến thức : Trong phương pháp này, một mô hình "học viên" nhỏ hơn được huấn luyện để sao chép kết quả đầu ra của một mô hình "giáo viên" lớn hơn, đã được huấn luyện trước. Mục tiêu là chuyển kiến thức đã học sang một kiến trúc nhỏ gọn hơn, trong khi việc cắt tỉa sẽ sửa đổi kiến trúc hiện có.

Các kỹ thuật này không loại trừ lẫn nhau. Một quy trình làm việc phổ biến là trước tiên cắt tỉa mô hình để loại bỏ các tham số dư thừa, sau đó áp dụng lượng tử hóa cho mô hình đã cắt tỉa để đạt hiệu quả tối đa. Các mô hình đã được tối ưu hóa sau đó có thể được xuất sang các định dạng chuẩn như ONNX bằng chức năng xuất của Ultralytics để triển khai rộng rãi trên nhiều công cụ suy luận khác nhau. Các nền tảng như Ultralytics HUB có thể giúp quản lý toàn bộ vòng đời, từ đào tạo đến triển khai mô hình được tối ưu hóa .

Tham gia cộng đồng Ultralytics

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

Tham gia ngay
Liên kết đã được sao chép vào clipboard