Tăng hiệu quả học sâu với đào tạo độ chính xác hỗn hợp! Đạt được tốc độ nhanh hơn, giảm sử dụng bộ nhớ và tiết kiệm năng lượng mà không làm giảm độ chính xác.
Đào tạo độ chính xác hỗn hợp là một kỹ thuật được sử dụng trong học sâu để tăng tốc tính toán và giảm yêu cầu về bộ nhớ mà không làm giảm đáng kể hiệu suất mô hình. Nó đạt được điều này bằng cách sử dụng chiến lược các định dạng độ chính xác số khác nhau—chủ yếu là dấu phẩy động 16 bit (FP16 hoặc độ chính xác một nửa ) và dấu phẩy động 32 bit (FP32 hoặc độ chính xác đơn)—cho các phần khác nhau của mô hình trong quá trình đào tạo và suy luận. Phương pháp này cân bằng tốc độ và hiệu quả bộ nhớ của độ chính xác thấp hơn với độ ổn định và độ chính xác số do độ chính xác cao hơn cung cấp.
Các mô hình học sâu theo truyền thống dựa vào định dạng dấu phẩy động độ chính xác đơn (FP32) theo tiêu chuẩn IEEE 754 để lưu trữ trọng số, kích hoạt và gradient. FP32 cung cấp phạm vi động và độ chính xác rộng, giúp nó mạnh mẽ cho các phép tính phức tạp. Tuy nhiên, các hoạt động FP32 đòi hỏi sức mạnh tính toán và băng thông bộ nhớ đáng kể. Các định dạng có độ chính xác thấp hơn, như FP16, chỉ sử dụng 16 bit, giảm một nửa dấu chân bộ nhớ và thường cho phép tính toán nhanh hơn nhiều trên phần cứng tương thích, chẳng hạn như GPU hiện đại được trang bị NVIDIA Tensor Cores .
Đào tạo độ chính xác hỗn hợp kết hợp FP16 và FP32 một cách thông minh. Ý tưởng cốt lõi là thực hiện các hoạt động tính toán chuyên sâu, như phép tích chập và phép nhân ma trận trong các lớp của mô hình, bằng cách sử dụng định dạng FP16 nhanh hơn. Tuy nhiên, một số hoạt động nhạy cảm với phạm vi và độ chính xác giảm của FP16. Để duy trì tính ổn định và độ chính xác của mô hình, các phần quan trọng của quy trình đào tạo, chẳng hạn như tính toán tổn thất và cập nhật độ dốc , thường được giữ ở định dạng FP32 mạnh mẽ hơn. Các kỹ thuật như tỷ lệ tổn thất động được sử dụng để ngăn chặn các vấn đề tràn số hoặc tràn số khi độ dốc trở nên quá nhỏ hoặc quá lớn đối với biểu diễn FP16. Các khuôn khổ như PyTorch (thông qua Automatic Mixed Precision - AMP) và TensorFlow (thông qua API tf .keras.mixed_precision) cung cấp hỗ trợ tự động để triển khai đào tạo độ chính xác hỗn hợp.
Việc triển khai độ chính xác hỗn hợp mang lại một số lợi thế chính:
Độ chính xác hỗn hợp được sử dụng rộng rãi trong nhiều lĩnh vực AI khác nhau:
Mặc dù có lợi ích cao, việc triển khai độ chính xác hỗn hợp thành công đòi hỏi:
Điều quan trọng là phải phân biệt đào tạo độ chính xác hỗn hợp với lượng tử hóa mô hình . Mặc dù cả hai đều liên quan đến việc sử dụng độ chính xác thấp hơn, lượng tử hóa thường chuyển đổi mô hình sang các định dạng bit thậm chí còn thấp hơn (như INT8) chủ yếu để tối ưu hóa tốc độ suy luận và giảm kích thước mô hình để triển khai trên các thiết bị hạn chế tài nguyên, thường là sau khi đào tạo ban đầu. Độ chính xác hỗn hợp tập trung vào việc tăng tốc quá trình đào tạo bằng cách kết hợp FP16 và FP32.
Độ chính xác hỗn hợp đã trở thành một kỹ thuật tiêu chuẩn trong bộ công cụ học sâu, cho phép phát triển và đào tạo các mô hình lớn hơn, phức tạp hơn nhanh hơn và hiệu quả hơn.