Thuật ngữ

Lượng tử hóa mô hình

Tối ưu hóa các mô hình học sâu với lượng tử hóa mô hình. Giảm kích thước, tăng tốc độ và triển khai hiệu quả trên các thiết bị có nguồn lực 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

Lượng tử hóa mô hình là một kỹ thuật được sử dụng để tối ưu hóa các mô hình học sâu bằng cách giảm độ chính xác của các số được sử dụng để biểu diễn các tham số của chúng, chẳng hạn như trọng số và kích hoạt. Thông thường, các mô hình học sâu sử dụng số dấu phẩy động 32 bit (FP32). Lượng tử hóa chuyển đổi các số này thành các loại có độ chính xác thấp hơn như dấu phẩy động 16 bit (FP16) hoặc số nguyên 8 bit (INT8). Việc giảm độ chính xác này dẫn đến kích thước mô hình nhỏ hơn, thời gian suy luận nhanh hơn và sử dụng bộ nhớ ít hơn, khiến nó đặc biệt có lợi khi triển khai trên các thiết bị có tài nguyên hạn chế, chẳng hạn như điện thoại di động hoặc hệ thống nhúng.

Lợi ích của lượng tử hóa mô hình

Lượng tử hóa mô hình cung cấp một số lợi thế khiến nó trở thành một kỹ thuật có giá trị trong lĩnh vực học máy. Một trong những lợi ích chính là giảm kích thước mô hình. Bằng cách sử dụng các kiểu dữ liệu có độ chính xác thấp hơn, kích thước tổng thể của mô hình được giảm đáng kể. Điều này đặc biệt hữu ích khi triển khai các mô hình trên các thiết bị có dung lượng lưu trữ hạn chế. Ngoài ra, các mô hình lượng tử hóa thường dẫn đến thời gian suy luận nhanh hơn. Các phép tính có độ chính xác thấp hơn thường thực hiện nhanh hơn, đặc biệt là trên phần cứng hỗ trợ các hoạt động như vậy. Sự tăng tốc này rất quan trọng đối với các ứng dụng thời gian thực như phát hiện đối tượngphân loại hình ảnh . Một lợi ích quan trọng khác là giảm băng thông bộ nhớ. Các kiểu dữ liệu nhỏ hơn có nghĩa là ít dữ liệu hơn cần được di chuyển xung quanh, điều này có thể làm giảm tình trạng tắc nghẽn trong môi trường hạn chế bộ nhớ.

Các loại lượng tử hóa mô hình

Có một số cách tiếp cận để lượng tử hóa mô hình, mỗi cách có những đánh đổi riêng. Lượng tử hóa sau khi đào tạo (PTQ) là một trong những phương pháp đơn giản nhất. Nó bao gồm việc lượng tử hóa các trọng số và kích hoạt của một mô hình đã được đào tạo mà không cần đào tạo lại. Lượng tử hóa sau khi đào tạo có thể được phân loại thành lượng tử hóa phạm vi động, lượng tử hóa số nguyên đầy đủ và lượng tử hóa float16. Lượng tử hóa phạm vi động lượng tử hóa các trọng số thành số nguyên nhưng giữ nguyên các kích hoạt ở định dạng dấu phẩy động. Lượng tử hóa số nguyên đầy đủ chuyển đổi cả trọng số và kích hoạt thành số nguyên, trong khi lượng tử hóa float16 sử dụng các số dấu phẩy động 16 bit. Một phương pháp khác là đào tạo có nhận thức về lượng tử hóa (QAT), trong đó mô hình được đào tạo có tính đến lượng tử hóa. Đào tạo có nhận thức về lượng tử hóa mô phỏng các hiệu ứng của lượng tử hóa trong quá trình đào tạo, cho phép mô hình thích ứng và có khả năng đạt được độ chính xác cao hơn so với PTQ.

Lượng tử hóa mô hình so với các kỹ thuật tối ưu hóa khác

Lượng tử hóa mô hình thường được sử dụng cùng với các kỹ thuật tối ưu hóa khác để đạt được kết quả tốt nhất. Cắt tỉa mô hình là một phương pháp phổ biến khác liên quan đến việc loại bỏ các kết nối ít quan trọng hơn trong mạng nơ-ron, giảm số lượng tham số và phép tính. Trong khi lượng tử hóa mô hình làm giảm độ chính xác của các tham số, thì cắt tỉa mô hình làm giảm số lượng. Cả hai kỹ thuật có thể được kết hợp để có hiệu quả thậm chí còn cao hơn. Đào tạo độ chính xác hỗn hợp là một kỹ thuật liên quan khác sử dụng cả số dấu phẩy động 32 bit và 16 bit trong quá trình đào tạo để tăng tốc quá trình và giảm mức sử dụng bộ nhớ. Tuy nhiên, nó khác với lượng tử hóa vì nó chủ yếu tập trung vào giai đoạn đào tạo hơn là tối ưu hóa mô hình để suy luận.

Ứng dụng thực tế của lượng tử hóa mô hình

Lượng tử hóa mô hình có nhiều ứng dụng trong thế giới thực, đặc biệt là trong các tình huống mà tài nguyên tính toán bị hạn chế. Ví dụ, triển khai Ultralytics YOLO Các mô hình trên các thiết bị biên như điện thoại thông minh hoặc máy bay không người lái có thể được hưởng lợi rất nhiều từ lượng tử hóa. Bằng cách giảm kích thước mô hình và thời gian suy luận, việc chạy các tác vụ thị giác máy tính phức tạp theo thời gian thực trên các thiết bị này trở nên khả thi. Một ví dụ khác là trong ngành công nghiệp ô tô, nơi xe tự lái đòi hỏi phải xử lý nhanh dữ liệu cảm biến để đưa ra quyết định nhanh chóng. Các mô hình lượng tử hóa có thể giúp đạt được tốc độ và hiệu quả cần thiết cho các ứng dụng quan trọng này. Ngoài ra, trong lĩnh vực chăm sóc sức khỏe , lượng tử hóa mô hình có thể cho phép triển khai các công cụ chẩn đoán tiên tiến trên các thiết bị di động, giúp chăm sóc sức khỏe dễ tiếp cận và hiệu quả hơn.

Công cụ và khuôn khổ cho lượng tử hóa mô hình

Một số công cụ và khuôn khổ hỗ trợ lượng tử hóa mô hình, giúp các nhà phát triển triển khai kỹ thuật này dễ dàng hơn. TensorFlow Lite cung cấp hỗ trợ mạnh mẽ cho lượng tử hóa sau đào tạo và đào tạo nhận biết lượng tử hóa, cho phép người dùng chuyển đổi TensorFlow mô hình thành các định dạng được tối ưu hóa. PyTorch cũng cung cấp các tính năng lượng tử hóa, bao gồm lượng tử hóa động và tĩnh, cho phép người dùng giảm kích thước mô hình và cải thiện hiệu suất. ONNX Runtime là một công cụ mạnh mẽ khác hỗ trợ lượng tử hóa mô hình, cung cấp khả năng thực thi được tối ưu hóa ONNX các mô hình trên nhiều nền tảng phần cứng khác nhau. Các công cụ này thường đi kèm với tài liệu và ví dụ chi tiết, giúp người dùng tích hợp lượng tử hóa vào quy trình học máy của họ một cách hiệu quả.

Những thách thức trong lượng tử hóa mô hình

Mặc dù lượng tử hóa mô hình mang lại nhiều lợi ích, nhưng nó cũng đi kèm với một số thách thức. Một trong những mối quan tâm chính là khả năng mất độ chính xác. Việc giảm độ chính xác của trọng số và kích hoạt có thể dẫn đến giảm hiệu suất của mô hình, đặc biệt là nếu không được thực hiện cẩn thận. Các kỹ thuật như đào tạo nhận biết lượng tử hóa có thể giúp giảm thiểu vấn đề này, nhưng chúng đòi hỏi nhiều nỗ lực và tài nguyên tính toán hơn trong giai đoạn đào tạo. Một thách thức khác là hỗ trợ phần cứng. Không phải tất cả các nền tảng phần cứng đều hỗ trợ hiệu quả các phép tính có độ chính xác thấp. Tuy nhiên, xu hướng đang chuyển sang hỗ trợ nhiều hơn cho các mô hình lượng tử hóa, với nhiều thiết bị và chip mới hơn được tối ưu hóa cho các hoạt động INT8 và FP16. Các nhà phát triển cần nhận thức được những thách thức này và chọn phương pháp lượng tử hóa phù hợp dựa trên nhu cầu và ràng buộc cụ thể của họ. Để biết thêm thông tin về việc tối ưu hóa mô hình, bạn có thể khám phá các kỹ thuật như điều chỉnh siêu tham số và các tùy chọn triển khai mô hình .

Đọc tất cả