2 CÁC PHƯƠNG PHÁP TIẾP CẬN BÀI TOÁN
3.4 Phương pháp huấn luyện hỗn hợp Mixed Precision
Precision
Để mô hình đạt tốc độ tốt nhất, cho cả thời gian huấn luyện mô hình (Training) và thời gian dự đoán (Prediction), tôi đã sử dụng phương pháp Phương pháp huấn luyện hỗn hợp - Mixed Precision (MPT) để tối ưu mô hình. Hầu hết mô hình mạng nơ-ron được xây dựng trên biến Float32 (sử dụng 4 bytes), đòi hỏi dung lượng bộ nhớ lưu trữ bộ nhớ lớn và xử lý chậm hơn biến Float16 (sử dụng 2 bytes), đổi lại độ chính xác phép toán sẽ cao hơn. FP16 và INT8 là hai kỹ thuật chuyển biến Float32 được sử dụng trong mô hình thành phép toán sử dụng Float16 (phù hợp nhiều môi trường) hoặc INT8 (phù hợp môi trường điện thoại), từ đó cho tốc độ xử lý và tối ưu quá trình huấn luyện hơn nhiều. Trong bài toán này, tôi sử dụng kỹ thuật FP16 vì không cần phải triển khai trên môi trường điện thoại.
Hình 3.6: Hiệu quả sử dụng kỹ thuật Mixed Precision Training. Nguồn:Nvidia. Nvidia.
Áp dụng kỹ thuật Phương pháp huấn luyện hỗn hợp - Mixed Precision được thể hiện như sau:
Hình 3.7: Phương pháp Phương pháp huấn luyện hỗn hợp - Mixed Precision.Nguồn Nvidia. Nguồn Nvidia.
Trong đó sử dụng phương pháp Scaled Mixed Precision Training, được cải tiến thêm từ kỹ thuật Mixed Precision Training trong đó cho phép hạn chế sai số khi chuyển từ Float32 xuống Float16.
Việc áp dụng Phương pháp huấn luyện hỗn hợp - Mixed Precision cho kết quả rất khả quan, kết quả được thể hiện trong bảng dưới đây:
Tiêu chí FP32 FP16
Thời gian training 168 tiếng 140 tiếng
Thời gian predict mô hình 1x 1.35x
VRAM 630 MB 450 MB
RAM 2568 MB 2480 MB
Độ chính xác 98.34% 97.93%
Thể hiện việc áp dụng kỹ thuật Phương pháp huấn luyện hỗn hợp - Mixed Precision làm giảm độ chính xác mô hình đi 0.4% không quá nhiều, nhưng đổi lại tốc độ và bộ nhớ được cải thiện đáng kể.