Kiểm tra màu xanh lá cây
Liên kết được sao chép vào khay nhớ tạm

Tối ưu hóa mô hình là gì? Hướng dẫn nhanh

Tìm hiểu cách các kỹ thuật tối ưu hóa mô hình như điều chỉnh siêu tham số, cắt tỉa mô hình và lượng tử hóa mô hình có thể giúp các mô hình thị giác máy tính chạy hiệu quả hơn.

Tối ưu hóa mô hình là một quá trình nhằm cải thiện hiệu quả và hiệu suất của các mô hình học máy . Bằng cách tinh chỉnh cấu trúc và chức năng của mô hình, tối ưu hóa giúp các mô hình có thể cung cấp kết quả tốt hơn với tài nguyên tính toán tối thiểu và giảm thời gian đào tạođánh giá .

Quá trình này đặc biệt quan trọng trong các lĩnh vực như thị giác máy tính , nơi các mô hình thường yêu cầu nhiều tài nguyên để phân tích hình ảnh phức tạp . Trong các môi trường hạn chế về tài nguyên như thiết bị di động hoặc hệ thống biên , các mô hình được tối ưu hóa có thể hoạt động tốt với các tài nguyên hạn chế trong khi vẫn chính xác.

Một số kỹ thuật thường được sử dụng để đạt được tối ưu hóa mô hình, bao gồm điều chỉnh siêu tham số, cắt tỉa mô hình, lượng tử hóa mô hình và độ chính xác hỗn hợp. Trong bài viết này, chúng ta sẽ khám phá các kỹ thuật này và những lợi ích mà chúng mang lại cho các ứng dụng thị giác máy tính . Hãy bắt đầu nào!

Hiểu về Tối ưu hóa Mô hình

Các mô hình thị giác máy tính thường có các lớp sâu và cấu trúc phức tạp, rất tốt cho việc nhận dạng các mẫu phức tạp trong hình ảnh, nhưng chúng cũng có thể khá đòi hỏi về sức mạnh xử lý . Khi các mô hình này được triển khai trên các thiết bị có phần cứng hạn chế, như điện thoại di động hoặc thiết bị biên , chúng có thể gặp phải một số thách thức hoặc hạn chế nhất định. 

Sức mạnh xử lý, bộ nhớ và năng lượng hạn chế trên các thiết bị này có thể dẫn đến sự sụt giảm đáng kể về hiệu suất , vì các mô hình phải vật lộn để theo kịp. Các kỹ thuật tối ưu hóa mô hình là chìa khóa để giải quyết những mối quan tâm này. Chúng giúp hợp lý hóa mô hình, giảm nhu cầu tính toán của mô hình và đảm bảo mô hình vẫn có thể hoạt động hiệu quả, ngay cả với các nguồn lực hạn chế. Tối ưu hóa mô hình có thể được thực hiện bằng cách đơn giản hóa kiến trúc mô hình , giảm độ chính xác của phép tính hoặc loại bỏ các thành phần không cần thiết để làm cho mô hình nhẹ hơn và nhanh hơn.

Hình 1. Lý do để tối ưu hóa mô hình của bạn (Hình ảnh của tác giả).

Sau đây là một số kỹ thuật tối ưu hóa mô hình phổ biến nhất mà chúng ta sẽ tìm hiểu chi tiết hơn trong các phần sau:

  • Điều chỉnh siêu tham số : Bao gồm việc điều chỉnh các siêu tham số một cách có hệ thống, chẳng hạn như tốc độ học và quy mô lô, để cải thiện hiệu suất mô hình.
  • Cắt tỉa mô hình : Kỹ thuật này loại bỏ các trọng số và kết nối không cần thiết khỏi mạng nơ-ron, giúp giảm độ phức tạp và chi phí tính toán.
  • Lượng tử hóa mô hình : Lượng tử hóa liên quan đến việc giảm độ chính xác của trọng số và kích hoạt của mô hình, thường là từ 32 bit xuống 16 bit hoặc 8 bit, giúp giảm đáng kể dung lượng bộ nhớ và yêu cầu tính toán.
  • Điều chỉnh độ chính xác : Còn được gọi là đào tạo độ chính xác hỗn hợp, bao gồm việc sử dụng các định dạng độ chính xác khác nhau cho các phần khác nhau của mô hình và tối ưu hóa việc sử dụng tài nguyên mà không ảnh hưởng đến độ chính xác.

Giải thích: Siêu tham số trong mô hình học máy

Bạn có thể giúp mô hình học và hoạt động tốt hơn bằng cách điều chỉnh các siêu tham số của nó - các thiết lập định hình cách mô hình học từ dữ liệu. Điều chỉnh siêu tham số là một kỹ thuật để tối ưu hóa các thiết lập này, cải thiện hiệu quả và độ chính xác của mô hình. Không giống như các tham số mà mô hình học được trong quá trình đào tạo , siêu tham số là các giá trị cài đặt trước hướng dẫn quá trình đào tạo.

Chúng ta hãy cùng xem qua một số ví dụ về siêu tham số có thể điều chỉnh được:

  • Tỷ lệ học : Tham số này kiểm soát kích thước bước mà mô hình thực hiện để điều chỉnh trọng số bên trong của nó. Tỷ lệ học cao hơn có thể tăng tốc độ học nhưng có nguy cơ bỏ lỡ giải pháp tối ưu, trong khi tỷ lệ thấp hơn có thể chính xác hơn nhưng chậm hơn.
  • Kích thước lô : Nó xác định số lượng mẫu dữ liệu được xử lý trong mỗi bước đào tạo. Kích thước lô lớn hơn cung cấp khả năng học ổn định hơn nhưng cần nhiều bộ nhớ hơn. Các lô nhỏ hơn đào tạo nhanh hơn nhưng có thể kém ổn định hơn.
  • Epochs : Bạn có thể xác định số lần mô hình nhìn thấy toàn bộ tập dữ liệu bằng tham số này. Nhiều epoch hơn có thể cải thiện độ chính xác nhưng có nguy cơ quá khớp .
  • Kích thước hạt nhân: Xác định kích thước bộ lọc trong Mạng nơ-ron tích chập (CNN). Hạt nhân lớn hơn nắm bắt các mẫu rộng hơn nhưng cần xử lý nhiều hơn; hạt nhân nhỏ hơn tập trung vào các chi tiết nhỏ hơn.

Cách thức hoạt động của điều chỉnh siêu tham số

Việc điều chỉnh siêu tham số thường bắt đầu bằng việc xác định một phạm vi các giá trị có thể có cho mỗi siêu tham số. Sau đó, thuật toán tìm kiếm sẽ khám phá các kết hợp khác nhau trong các phạm vi này để xác định các thiết lập tạo ra hiệu suất tốt nhất

Các phương pháp điều chỉnh phổ biến bao gồm tìm kiếm lưới, tìm kiếm ngẫu nhiên và tối ưu hóa Bayesian. Tìm kiếm lưới kiểm tra mọi tổ hợp giá trị có thể có trong phạm vi được chỉ định. Tìm kiếm ngẫu nhiên chọn các tổ hợp ngẫu nhiên, thường tìm thấy các thiết lập hiệu quả nhanh hơn. Tối ưu hóa Bayesian sử dụng mô hình xác suất để dự đoán các giá trị siêu tham số đầy hứa hẹn dựa trên các kết quả trước đó. Cách tiếp cận này thường làm giảm số lần thử nghiệm cần thiết. 

Cuối cùng, đối với mỗi sự kết hợp của siêu tham số, hiệu suất của mô hình được đánh giá . Quá trình này được lặp lại cho đến khi đạt được kết quả mong muốn.

Siêu tham số so với tham số mô hình

Trong khi làm việc trên việc điều chỉnh siêu tham số, bạn có thể tự hỏi sự khác biệt giữa siêu tham số và tham số mô hình là gì. 

Siêu tham số là các giá trị được thiết lập trước khi đào tạo để kiểm soát cách mô hình học, chẳng hạn như tốc độ học hoặc kích thước lô. Các thiết lập này được cố định trong quá trình đào tạo và ảnh hưởng trực tiếp đến quá trình học. Mặt khác, các tham số mô hình được học bởi chính mô hình trong quá trình đào tạo. Chúng bao gồm trọng số và độ lệch , điều chỉnh khi mô hình đào tạo và cuối cùng hướng dẫn các dự đoán của nó. Về bản chất, siêu tham số định hình hành trình học, trong khi các tham số mô hình là kết quả của quá trình học đó.

Hình 2. So sánh các tham số và siêu tham số. 

Tại sao việc cắt tỉa mô hình lại quan trọng trong học sâu

Cắt tỉa mô hình là một kỹ thuật giảm kích thước giúp loại bỏ các trọng số và tham số không cần thiết khỏi mô hình, giúp mô hình hiệu quả hơn. Trong thị giác máy tính , đặc biệt là với mạng nơ-ron sâu, một số lượng lớn các tham số, như trọng số và kích hoạt (đầu ra trung gian giúp tính toán đầu ra cuối cùng), có thể làm tăng cả độ phức tạp và nhu cầu tính toán. Cắt tỉa giúp hợp lý hóa mô hình bằng cách xác định và loại bỏ các tham số đóng góp tối thiểu vào hiệu suất, tạo ra mô hình nhẹ hơn và hiệu quả hơn.

Hình 3. Mô hình trước và sau khi cắt tỉa.

Sau khi mô hình được đào tạo, các kỹ thuật như cắt tỉa dựa trên độ lớn hoặc phân tích độ nhạy có thể đánh giá tầm quan trọng của từng tham số. Các tham số có tầm quan trọng thấp sau đó được cắt tỉa, sử dụng một trong ba kỹ thuật chính: cắt tỉa trọng số, cắt tỉa nơ-ron hoặc cắt tỉa có cấu trúc. 

Cắt tỉa trọng số loại bỏ các kết nối riêng lẻ với tác động tối thiểu đến đầu ra. Cắt tỉa nơ-ron loại bỏ toàn bộ các nơ-ron có đầu ra đóng góp ít vào chức năng của mô hình. Cắt tỉa có cấu trúc loại bỏ các phần lớn hơn, như bộ lọc tích chập hoặc nơ-ron trong các lớp được kết nối đầy đủ, tối ưu hóa hiệu quả của mô hình. Sau khi cắt tỉa hoàn tất, mô hình được đào tạo lại để tinh chỉnh các tham số còn lại, đảm bảo mô hình vẫn giữ được độ chính xác cao ở dạng thu gọn.

Giảm độ trễ trong các mô hình AI bằng lượng tử hóa

Lượng tử hóa mô hình làm giảm số bit được sử dụng để biểu diễn trọng số và kích hoạt của mô hình. Nó thường chuyển đổi các giá trị dấu phẩy động 32 bit có độ chính xác cao thành độ chính xác thấp hơn, chẳng hạn như số nguyên 16 bit hoặc 8 bit. Bằng cách giảm độ chính xác của bit, lượng tử hóa làm giảm đáng kể kích thước, dấu chân bộ nhớ và chi phí tính toán của mô hình .

Trong thị giác máy tính , float 32 bit là chuẩn, nhưng việc chuyển đổi sang 16 bit hoặc 8 bit có thể cải thiện hiệu quả. Có hai loại lượng tử hóa chính: lượng tử hóa trọng số và lượng tử hóa kích hoạt. Lượng tử hóa trọng số làm giảm độ chính xác của trọng số của mô hình, cân bằng giữa việc giảm kích thước với độ chính xác. Lượng tử hóa kích hoạt làm giảm độ chính xác của các kích hoạt, làm giảm thêm nhu cầu về bộ nhớ và tính toán.

Hình 4. Một ví dụ về lượng tử hóa từ số float 32 bit sang số nguyên 8 bit.

Độ chính xác hỗn hợp giúp tăng tốc suy luận AI như thế nào

Độ chính xác hỗn hợp là một kỹ thuật sử dụng các độ chính xác số khác nhau cho các phần khác nhau của mạng nơ-ron . Bằng cách kết hợp các giá trị độ chính xác cao hơn, chẳng hạn như float 32 bit, với các giá trị độ chính xác thấp hơn, chẳng hạn như float 16 bit hoặc 8 bit, độ chính xác hỗn hợp giúp các mô hình thị giác máy tính có thể tăng tốc quá trình đào tạo và giảm mức sử dụng bộ nhớ mà không làm giảm độ chính xác.

Trong quá trình đào tạo, độ chính xác hỗn hợp đạt được bằng cách sử dụng độ chính xác thấp hơn trong các lớp cụ thể trong khi vẫn giữ độ chính xác cao hơn khi cần trên toàn bộ mạng. Điều này được thực hiện thông qua đúc và chia tỷ lệ mất mát. Đúc chuyển đổi các kiểu dữ liệu giữa các độ chính xác khác nhau theo yêu cầu của mô hình. Chia tỷ lệ mất mát điều chỉnh độ chính xác giảm để ngăn chặn tràn số, đảm bảo đào tạo ổn định. Độ chính xác hỗn hợp đặc biệt hữu ích cho các mô hình lớn và kích thước lô lớn.

Hình 5. Đào tạo độ chính xác hỗn hợp sử dụng cả kiểu dấu phẩy động 16 bit (FP16) và 32 bit (FP32).

Cân bằng độ chính xác và hiệu quả của mô hình

Bây giờ chúng ta đã đề cập đến một số kỹ thuật tối ưu hóa mô hình, hãy thảo luận về cách quyết định sử dụng kỹ thuật nào dựa trên nhu cầu cụ thể của bạn. Lựa chọn phụ thuộc vào các yếu tố như phần cứng khả dụng, các hạn chế về tính toán và bộ nhớ của môi trường triển khai và mức độ chính xác cần thiết. 

Ví dụ, các mô hình nhỏ hơn, nhanh hơn phù hợp hơn với các thiết bị di động có tài nguyên hạn chế, trong khi các mô hình lớn hơn, chính xác hơn có thể được sử dụng trên các hệ thống hiệu suất cao. Sau đây là cách mỗi kỹ thuật phù hợp với các mục tiêu khác nhau :

  • Cắt tỉa: Lý tưởng để giảm kích thước mô hình mà không ảnh hưởng đáng kể đến độ chính xác, do đó rất phù hợp với các thiết bị có nguồn lực hạn chế như điện thoại di động hoặc thiết bị Internet vạn vật (IoT).
  • Quantization : Một lựa chọn tuyệt vời để thu nhỏ kích thước mô hình và tăng tốc suy luận , đặc biệt là trên các thiết bị di động và hệ thống nhúng có bộ nhớ và sức mạnh xử lý hạn chế. Nó hoạt động tốt cho các ứng dụng mà việc giảm độ chính xác nhẹ là chấp nhận được.
  • Độ chính xác hỗn hợp : Được thiết kế cho các mô hình quy mô lớn, kỹ thuật này giúp giảm mức sử dụng bộ nhớ và tăng tốc quá trình đào tạo trên phần cứng như GPU và TPU hỗ trợ các hoạt động có độ chính xác hỗn hợp. Kỹ thuật này thường được sử dụng trong các tác vụ hiệu suất cao, nơi hiệu quả là quan trọng.
  • Điều chỉnh siêu tham số : Mặc dù đòi hỏi nhiều tính toán, nhưng điều này rất cần thiết cho các ứng dụng đòi hỏi độ chính xác cao, chẳng hạn như hình ảnh y tế hoặc xe tự lái .

Những điểm chính

Tối ưu hóa mô hình là một phần quan trọng của học máy, đặc biệt là để triển khai AI trong các ứng dụng thực tế. Các kỹ thuật như điều chỉnh siêu tham số, cắt tỉa mô hình, lượng tử hóa và độ chính xác hỗn hợp giúp cải thiện hiệu suất, hiệu quả và sử dụng tài nguyên của các mô hình thị giác máy tính. Những tối ưu hóa này giúp các mô hình nhanh hơn và ít tốn tài nguyên hơn, lý tưởng cho các thiết bị có bộ nhớ và công suất xử lý hạn chế. Các mô hình được tối ưu hóa cũng dễ dàng mở rộng quy mô và triển khai trên nhiều nền tảng khác nhau, cho phép các giải pháp AI vừa hiệu quả vừa thích ứng với nhiều mục đích sử dụng khác nhau.

Ghé thăm Ultralytics Kho lưu trữ GitHub và tham gia cộng đồng của chúng tôi để tìm hiểu thêm về các ứng dụng AI trong sản xuấtnông nghiệp .

Logo FacebookBiểu trưng TwitterBiểu trưng LinkedInBiểu tượng sao chép liên kết

Đọc thêm trong danh mục này

Hãy xây dựng tương lai
của AI cùng nhau!

Bắt đầu hành trình của bạn với tương lai của machine learning