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ác mô hình machine learning nhằm chuẩn bị cho các môi trường có độ chính xác thấp hơn. Trong các quy trình deep learning tiêu chuẩn, các mô hình thường hoạt động bằng cách sử dụng các số dấu phẩy động 32-bit (FP32) với độ chính xác cao. Mặc dù độ chính xác này mang lại kết quả tuyệt vời, nhưng nó có thể gây tốn kém về tính toán và 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 quantization—giảm độ chính xác xuống các định dạng như số nguyên 8-bit (INT8)—trong khi mô hình vẫn đang được huấn luyện. Bằng cách đưa các lỗi quantization này vào quá trình học tập, mô hình học cách điều chỉnh trọng số của mình 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.
Link to this sectionTại sao QAT quan trọng đối với Edge Deployment#
Việc triển khai computer vision models trên các thiết bị bị hạn chế về 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 quantization 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 mô hình đã được huấn luyện hoàn tất. Mặc dù PTQ nhanh, nhưng đôi khi nó có thể làm giảm độ chính xác của các mô hình nhạy cảm do các 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 mô hình "thực hành" việc bị quantization. Trong quá trình truyền tiến (forward pass) của việc huấn luyện, các trọng số và các giá trị kích hoạt được mô phỏng như những giá trị có độ 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ố mô hình theo cách giảm thiểu loss cụ thể cho trạng thái đã được quantized. Kết quả là một mô hình mạnh mẽ duy trì độ chính xác cao ngay cả khi được triển khai trên phần cứng như microcontrollers hoặc bộ xử lý di động.
Link to this sectionPhân biệt QAT với Post-Training Quantization (PTQ)#
Việc phân biệt QAT với model quantization, cụ thể là Post-Training Quantization (PTQ), là 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 quantization được mô phỏng trong giai đoạn tinh chỉnh (fine-tuning). Mô hình tự điều chỉnh các tham số nội bộ để thích nghi với nhiễu do độ chính xác thấp hơn tạo ra, thường mang lại accuracy tốt hơn so với PTQ.
Link to this sectionCá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 thiết bị bị hạn chế nghiêm trọng. Các drone sử dụng các mô hình được tối ưu hóa 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 vẫn 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 mô hình 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 cổng edge công suất thấp. QAT đảm bảo rằng các mô hình 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 yêu cầu kết nối đám mây đắt đỏ.
Link to this sectionTriển khai QAT với Ultralytics#
Ultralytics Platform và hệ sinh thái YOLO hỗ trợ xuất các mô hình sang các định dạng đã được quantized. Mặc dù QAT là một quy trình huấn luyện phức tạp, các framework hiện đại tạo điều kiện thuận lợi cho việc chuẩn bị các mô hình để suy luận đã được quantized.
Dưới đây là một ví dụ về cách bạn có thể xuất một mô hình YOLO26 đã được huấn luyện sang định dạng TFLite quantized INT8, sử dụng các nguyên tắc của quantization cho việc 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)Link to this sectionTích hợp với các hệ sinh thái Edge#
Các mô hình được tối ưu hóa thông qua các kỹ thuật quantization được thiết kế để chạy trên các công cụ suy luận chuyên biệt. Các mô hình được huấn luyện bằng QAT thường được triển khai bằ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 Edge TPU chuyên dụng, mô hình vẫn hoạt động với hiệu suất và tốc độ cao nhất có thể.
Link to this sectionCá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 quantization.
- Calibration: Quá trình xác định phạm vi của các giá trị kích hoạt động (tối thiểu/tối đa) để ánh xạ các số dấu phẩy động sang 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 đưa 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 mô hình đã được huấn luyện sẵn 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 quy trình MLOps, các nhà phát triển có thể thu hẹp khoảng cách giữa các mô hình nghiên cứu có độ chính xác cao và các ứng dụng AI edge sẵn sàng cho sản xuất, hiệu quả cao.






