Model Quantization
Tìm hiểu cách model quantization tối ưu hóa Ultralytics YOLO26 cho edge AI. Khám phá cách giảm bộ nhớ, giảm độ trễ và xuất các model INT8 để suy luận nhanh hơn.
Lượng tử hóa mô hình là một kỹ thuật tối ưu hóa mô hình tinh vi được sử dụng để giảm chi phí tính toán và bộ nhớ khi chạy các mô hình học sâu. Trong các quy trình đào tạo tiêu chuẩn, mạng thần kinh thường lưu trữ các tham số (trọng số và độ lệch) và bản đồ kích hoạt bằng cách sử dụng số dấu phẩy động 32-bit (FP32). Mặc dù độ chính xác cao này đảm bảo các phép tính chính xác trong quá trình đào tạo, nhưng nó thường không cần thiết cho quá trình suy luận. Lượng tử hóa chuyển đổi các giá trị này sang các định dạng có độ chính xác thấp hơn, chẳng hạn như dấu phẩy động 16-bit (FP16) hoặc số nguyên 8-bit (INT8), giúp thu nhỏ kích thước mô hình một cách hiệu quả và tăng tốc độ thực thi mà không làm giảm đáng kể độ chính xác.
Link to this sectionTại sao lượng tử hóa lại quan trọng#
Động lực chính của việc lượng tử hóa là nhu cầu triển khai AI mạnh mẽ trên phần cứng có tài nguyên hạn chế. Khi các mô hình thị giác máy tính như YOLO26 trở nên phức tạp hơn, nhu cầu tính toán của chúng cũng tăng theo. Lượng tử hóa giải quyết ba điểm nghẽn quan trọng:
- Dung lượng bộ nhớ: Bằng cách giảm độ rộng bit của các trọng số (ví dụ: từ 32-bit xuống 8-bit), yêu cầu lưu trữ của mô hình giảm tới 4 lần. Điều này rất quan trọng đối với các ứng dụng di động nơi kích thước ứng dụng bị hạn chế.
- Độ trễ suy luận: Các phép toán ở độ chính xác thấp hơn có chi phí tính toán rẻ hơn. Các bộ xử lý hiện đại, đặc biệt là những bộ xử lý có đơn vị xử lý thần kinh (NPU) chuyên dụng, có thể thực thi các phép toán INT8 nhanh hơn nhiều so với FP32, giúp giảm đáng kể độ trễ suy luận.
- Tiêu thụ điện năng: Việc di chuyển ít dữ liệu hơn qua bộ nhớ và thực hiện các phép tính số học đơn giản hơn giúp tiêu tốn ít năng lượng hơn, kéo dài tuổi thọ pin trong các thiết bị di động và phương tiện tự hành.
Link to this sectionSo sánh với các khái niệm liên quan#
Điều quan trọng là phải phân biệt lượng tử hóa với các kỹ thuật tối ưu hóa khác, vì chúng sửa đổi mô hình theo những cách riêng biệt:
- Lượng tử hóa so với cắt tỉa: Trong khi lượng tử hóa giảm kích thước tệp bằng cách hạ thấp độ rộng bit của các tham số, cắt tỉa mô hình bao gồm việc loại bỏ hoàn toàn các kết nối không cần thiết (trọng số) để tạo ra một mạng thưa thớt. Cắt tỉa làm thay đổi cấu trúc của mô hình, trong khi lượng tử hóa làm thay đổi cách biểu diễn dữ liệu.
- Lượng tử hóa so với chưng cất kiến thức: Chưng cất kiến thức là một kỹ thuật đào tạo trong đó mô hình "học sinh" nhỏ học cách bắt chước mô hình "giáo viên" lớn. Lượng tử hóa thường được áp dụng cho mô hình học sinh sau khi chưng cất để nâng cao hơn nữa hiệu suất AI biên.
Link to this sectionCác ứng dụng trong thực tế#
Lượng tử hóa cho phép ứng dụng thị giác máy tính và AI trên nhiều ngành công nghiệp nơi hiệu quả là ưu tiên hàng đầu.
-
Hệ thống tự hành: Trong ngành công nghiệp ô tô, xe tự lái phải xử lý dữ liệu hình ảnh từ camera và LiDAR trong thời gian thực. Các mô hình đã được lượng tử hóa triển khai trên các công cụ NVIDIA TensorRT cho phép các phương tiện này phát hiện người đi bộ và chướng ngại vật với độ trễ tính bằng mili giây, đảm bảo an toàn cho hành khách.
-
Nông nghiệp thông minh: Máy bay không người lái được trang bị camera đa phổ sử dụng các mô hình phát hiện đối tượng đã được lượng tử hóa để xác định dịch bệnh trên cây trồng hoặc theo dõi các giai đoạn tăng trưởng. Việc chạy các mô hình này cục bộ trên hệ thống nhúng của máy bay không người lái giúp loại bỏ nhu cầu về các kết nối di động không ổn định ở những cánh đồng xa xôi.
Link to this sectionTriển khai lượng tử hóa với Ultralytics#
Thư viện Ultralytics đơn giản hóa quy trình xuất, cho phép các nhà phát triển chuyển đổi các mô hình như YOLO26 tiên tiến sang các định dạng đã được lượng tử hóa. Ultralytics Platform cũng cung cấp các công cụ để quản lý việc triển khai này một cách liền mạch.
Ví dụ sau đây minh họa cách xuất mô hình sang TFLite với tính năng lượng tử hóa INT8 được bật. Quy trình này bao gồm bước hiệu chuẩn, trong đó mô hình quan sát dữ liệu mẫu để xác định phạm vi động tối ưu cho các giá trị đã lượng tử hóa.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")Các mô hình đã được tối ưu hóa thường được triển khai bằng cách sử dụng các tiêu chuẩn có khả năng tương tác như ONNX hoặc các công cụ suy luận hiệu suất cao như OpenVINO, đảm bảo khả năng tương thích rộng rãi trên các hệ sinh thái phần cứng đa dạng.






