Mixed Precision
Tìm hiểu cách mixed precision tăng tốc huấn luyện và giảm bộ nhớ cho các model như Ultralytics YOLO26. Khám phá lợi ích của FP16 và FP32 để có thông tin AI nhanh hơn.
Mixed precision là một kỹ thuật trọng yếu trong model optimization được sử dụng để tăng tốc quá trình huấn luyện các mô hình deep learning đồng thời giảm tiêu thụ bộ nhớ. Bằng cách kết hợp chiến lược các định dạng số khác nhau—thường là loại dấu phẩy động 16-bit và 32-bit—phương pháp này cho phép các thuật toán machine learning thực hiện các phép tính nhanh hơn mà không làm giảm độ chính xác cuối cùng của mô hình. Nó đã trở thành một tiêu chuẩn thực tế trong phát triển AI hiện đại, đặc biệt đối với các tác vụ đòi hỏi nhiều tài nguyên như huấn luyện kiến trúc YOLO26 trên các tập dữ liệu khổng lồ.
Cách Mixed Precision hoạt động#
Trong các quy trình deep learning truyền thống, các mô hình thường thực hiện tính toán bằng định dạng dấu phẩy động độ chính xác đơn (FP32). Mỗi số trong FP32 yêu cầu 32 bit bộ nhớ. Mặc dù có độ chính xác cao, định dạng này có thể tốn kém về mặt tính toán và ngốn nhiều bộ nhớ.
Mixed precision giới thiệu việc sử dụng half precision (FP16), chỉ sử dụng 16 bit. Tuy nhiên, việc chỉ sử dụng FP16 có thể dẫn đến sự bất ổn định về mặt số học do dải động nhỏ hơn. Để giải quyết vấn đề này, các phương pháp mixed precision duy trì một "bản sao chính" (master copy) của các model weights ở định dạng FP32 để đảm bảo độ ổn định trong khi sử dụng FP16 cho các công việc tính toán nặng nhọc, chẳng hạn như các phép tích chập và nhân ma trận.
Quá trình này thường bao gồm ba bước chính:
-
Casting: Chuyển đổi đầu vào và các activation của mô hình sang FP16 để tăng tốc độ thực thi trên phần cứng tương thích, chẳng hạn như NVIDIA Tensor Cores.
-
Loss Scaling: Tăng khuếch đại các giá trị của loss function để ngăn chặn hiện tượng "underflow", nơi các bản cập nhật gradient nhỏ trở thành số không trong FP16.
-
Accumulation (Tích lũy): Thực hiện các phép tính số học ở FP16 nhưng tích lũy kết quả ở dạng FP32 để bảo toàn thông tin cần thiết trước khi cập nhật các trọng số gốc.
Lợi ích trong huấn luyện AI#
Việc áp dụng mixed precision mang lại những ưu điểm đáng kể cho các nhà phát triển và nhà nghiên cứu nhằm tận dụng computational resources một cách hiệu quả:
- Tốc độ huấn luyện nhanh hơn: Các thao tác ở định dạng FP16 yêu cầu băng thông bộ nhớ ít hơn và được xử lý nhanh hơn bởi các GPUs hiện đại. Điều này có thể làm giảm đáng kể thời gian cần thiết cho một epoch.
- Giảm mức sử dụng bộ nhớ: Vì các tensor FP16 chiếm một nửa bộ nhớ so với FP32, các nhà phát triển có thể nhân đôi batch size của mình. Kích thước batch lớn hơn thường dẫn đến các ước tính gradient ổn định hơn và thời gian hội tụ nhanh hơn.
- Hiệu quả năng lượng: Tải tính toán giảm dẫn đến tiêu thụ năng lượng thấp hơn, điều này rất quan trọng đối với các hoạt động cloud training quy mô lớn.
Các ứng dụng trong thực tế#
Mixed precision được sử dụng trong nhiều ngành công nghiệp để xử lý các mô hình phức tạp và tập dữ liệu lớn một cách hiệu quả.
Xe tự hành#
Trong quá trình phát triển autonomous vehicles, các kỹ sư phải huấn luyện các mô hình phát hiện đối tượng trên hàng triệu khung hình video độ phân giải cao. Sử dụng mixed precision cho phép họ huấn luyện các mô hình tối tân như YOLO26 một cách hiệu quả. Dung lượng bộ nhớ được giảm bớt cho phép xử lý các đầu vào có độ phân giải cao hơn, điều này rất quan trọng để phát hiện các vật thể nhỏ như biển báo giao thông hoặc người đi bộ ở khoảng cách xa.
Phân tích hình ảnh y tế#
Medical image analysis thường liên quan đến dữ liệu thể tích 3D từ quét MRI hoặc CT, vốn cực kỳ tốn bộ nhớ. Huấn luyện các mô hình segmentation trên dữ liệu này ở độ chính xác FP32 đầy đủ thường dẫn đến lỗi "Out of Memory" (OOM). Mixed precision cho phép các nhà nghiên cứu đưa các mô hình nặng này vào bộ nhớ GPU, tạo điều kiện thuận lợi cho việc phát triển AI có thể hỗ trợ các bác sĩ chẩn đoán bệnh sớm hơn.
Triển khai Mixed Precision với Ultralytics#
Các framework hiện đại như PyTorch thường xử lý sự phức tạp của mixed precision một cách tự động thông qua tính năng gọi là Automatic Mixed Precision (AMP). Gói ultralytics kích hoạt AMP theo mặc định trong quá trình huấn luyện để đảm bảo hiệu suất tối ưu.
Dưới đây là một ví dụ ngắn gọn về cách bắt đầu quá trình huấn luyện với Ultralytics YOLO26, trong đó độ chính xác hỗn hợp được kích hoạt theo mặc định (có thể điều khiển thông qua tham số amp):
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 dataset
# amp=True is the default setting for mixed precision training
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)Mixed Precision và các khái niệm liên quan#
Việc phân biệt mixed precision với các thuật ngữ tương tự trong bảng thuật ngữ sẽ giúp tránh nhầm lẫn:
- Model Quantization: Trong khi mixed precision sử dụng các số dấu phẩy động độ precision thấp hơn (FP16) trong quá trình huấn luyện, quantization thường chuyển đổi trọng số thành số nguyên (như INT8) sau khi huấn luyện để triển khai. Quantization chủ yếu tập trung vào inference latency trên các thiết bị biên, trong khi mixed precision tập trung vào tốc độ và độ ổn định huấn luyện.
- Half Precision: Điều này đề cập cụ thể đến định dạng dữ liệu FP16. Mixed precision là kỹ thuật sử dụng cả FP16 và FP32 cùng nhau. Việc sử dụng pure half precision mà không có bản sao chính FP32 "mixed" thường dẫn đến các mô hình không thể hội tụ do lỗi số học.
Kết luận#
Mixed precision đã cách mạng hóa cách thức các neural networks được huấn luyện, đóng vai trò là yếu tố hỗ trợ quan trọng cho các foundation models và hệ thống thị giác máy tính khổng lồ mà chúng ta thấy ngày nay. Bằng cách cân bằng nhu cầu về độ chính xác toán học với các giới hạn về tốc độ phần cứng và bộ nhớ, nó cho phép các nhà phát triển lặp lại nhanh hơn và xây dựng các giải pháp AI mạnh mẽ hơn.
Đối với những ai đang muốn quản lý tập dữ liệu và huấn luyện các mô hình được tối ưu hóa một cách liền mạch, Ultralytics Platform cung cấp một môi trường toàn diện tận dụng các kỹ thuật tối ưu hóa hiện đại này một cách tự động.






