Quantization-Aware Training (QAT)
Tìm hiểu cách Huấn luyện Nhận thức Lượng tử hóa (QAT) tối ưu hóa các model Ultralytics YOLO26 để triển khai ở biên (edge). Khám phá cách duy trì độ chính xác cao với độ chính xác INT8.
Quantization-Aware Training (QAT) là một kỹ thuật chuyên biệt được sử dụng trong giai đoạn huấn luyện của các model machine learning để chuẩn bị cho các môi trường có độ chính xác thấp hơn. Trong các workflow deep learning tiêu chuẩn, các model thường hoạt động bằng cách sử dụng các số dấu phẩy động 32-bit độ chính xác cao (FP32). Mặc dù độ chính xác này mang lại kết quả tuyệt vời, nó có thể tốn kém về mặt tính toán và đòi hỏi nhiều bộ nhớ, đặc biệt là trên các thiết bị edge. QAT mô phỏng các hiệu ứng của việc lượng tử hóa—giảm độ chính xác xuống các định dạng như số nguyên 8-bit (INT8)—trong khi model vẫn đang được huấn luyện. Bằng cách đưa các lỗi lượng tử hóa này vào quá trình học, model học cách thích ứng với trọng số của nó và khôi phục hiệu quả độ chính xác vốn có thể bị mất trong quá trình chuyển đổi sau huấn luyện.
Tại sao QAT quan trọng đối với Edge Deployment#
Triển khai các computer vision models lên các thiết bị bị giới hạn tài nguyên thường đòi hỏi sự cân bằng giữa tốc độ và hiệu suất. Các phương pháp lượng tử hóa tiêu chuẩn, được gọi là Post-Training Quantization (PTQ), chỉ áp dụng việc giảm độ chính xác sau khi model đã được huấn luyện đầy đủ. Mặc dù PTQ diễn ra nhanh chóng, đôi khi nó có thể làm giảm độ chính xác của các model nhạy cảm vì trọng số neural network bị thay đổi đáng kể mà không có cơ hội điều chỉnh.
QAT giải quyết vấn đề này bằng cách cho phép model "thực hành" lượng tử hóa. Trong quá trình forward pass của việc huấn luyện, trọng số và các activation được mô phỏng dưới dạng các giá trị độ chính xác thấp. Điều này cho phép quá trình gradient descent cập nhật các tham số của model theo cách giảm thiểu loss dành riêng cho trạng thái lượng tử hóa. Kết quả là một model mạnh mẽ giữ được độ chính xác cao ngay cả khi được triển khai trên phần cứng như microcontrollers hoặc các bộ xử lý di động.
Phân biệt QAT với Post-Training Quantization (PTQ)#
Việc phân biệt giữa QAT và model quantization, cụ thể là Post-Training Quantization (PTQ), rất hữu ích:
- Post-Training Quantization (PTQ): Mô hình được huấn luyện bình thường ở định dạng FP32. Sau khi huấn luyện hoàn tất, các trọng số được chuyển đổi sang INT8. Quá trình này nhanh hơn và không yêu cầu huấn luyện lại, nhưng có thể dẫn đến mất độ chính xác cao hơn đối với các kiến trúc phức tạp.
- Quantization-Aware Training (QAT): Quá trình lượng tử hóa được mô phỏng trong giai đoạn fine-tuning. Model điều chỉnh các tham số nội bộ của nó để thích ứng với nhiễu do độ chính xác thấp hơn gây ra, thường mang lại accuracy tốt hơn so với PTQ.
Các ứng dụng trong thực tế#
QAT rất cần thiết cho các ngành công nghiệp nơi mà việc suy luận thời gian thực (real-time inference) trên phần cứng edge là tối quan trọng.
- Autonomous Drones: Trong AI drone operations, thời lượng pin và sức mạnh xử lý trên bo mạch bị giới hạn nghiêm ngặt. Các drone sử dụng model được tối ưu hóa thông qua QAT có thể phát hiện chướng ngại vật hoặc theo dõi đối tượng với độ chính xác cao trong khi sử dụng các bộ tăng tốc INT8, giúp kéo dài đáng kể thời gian bay so với các model FP32.
- Smart Retail Cameras: Các siêu thị sử dụng computer vision in retail để giám sát hàng tồn kho trên kệ hoặc quản lý các quầy thanh toán. Các hệ thống này thường chạy trên các edge gateway công suất thấp. QAT đảm bảo rằng các model object detection chạy trên các thiết bị này duy trì được độ chính xác cần thiết để phân biệt giữa các sản phẩm tương tự mà không cần kết nối đám mây đắt đỏ.
Triển khai QAT với Ultralytics#
Ultralytics Platform và hệ sinh thái YOLO hỗ trợ xuất các model sang các định dạng lượng tử hóa. Mặc dù QAT là một quy trình huấn luyện phức tạp, các framework hiện đại giúp tạo điều kiện thuận lợi cho việc chuẩn bị model để suy luận lượng tử hóa.
Dưới đây là một ví dụ về cách bạn có thể xuất một model YOLO26 đã được huấn luyện sang định dạng TFLite lượng tử hóa INT8, tận dụng các nguyên tắc lượng tử hóa để triển khai ở edge hiệu quả.
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)Tích hợp với các hệ sinh thái Edge#
Các model được tối ưu hóa thông qua các kỹ thuật lượng tử hóa được thiết kế để chạy trên các công cụ suy luận chuyên dụng. Các model được huấn luyện bằng QAT thường được triển khai bằng cách sử dụng ONNX Runtime để tương thích đa nền tảng hoặc OpenVINO để tối ưu hóa trên phần cứng Intel. Điều này đảm bảo rằng cho dù mục tiêu là Raspberry Pi hay một Edge TPU chuyên dụng, model vẫn hoạt động với hiệu suất và tốc độ cao nhất có thể.
Các khái niệm chính liên quan đến QAT#
Để hiểu đầy đủ về QAT, việc làm quen với một số khái niệm machine learning liên quan sẽ rất hữu ích:
- Precision: Đề cập đến mức độ chi tiết được sử dụng để biểu diễn các con số. Half-precision (FP16) và INT8 là các mục tiêu phổ biến cho việc lượng tử hóa.
- Calibration: Quá trình xác định phạm vi của các giá trị activation động (tối thiểu/tối đa) để ánh xạ các số dấu phẩy động sang các số nguyên một cách hiệu quả. Đây là một bước quan trọng trong việc deploying quantized YOLO models.
- Inference Latency: Một trong những lợi ích chính của QAT là giảm inference latency, cho phép ra quyết định nhanh hơn trong các hệ thống thời gian thực.
- Fine-Tuning: QAT thường được thực hiện như một bước fine-tuning trên một model đã được huấn luyện trước thay vì huấn luyện từ đầu, giúp tiết kiệm tài nguyên tính toán.
Bằng cách tích hợp Quantization-Aware Training vào pipeline MLOps, các nhà phát triển có thể thu hẹp khoảng cách giữa các model nghiên cứu có độ chính xác cao và các ứng dụng edge AI sẵn sàng cho sản xuất, cực kỳ hiệu quả.






