Thuật ngữ

Độ chính xác hỗn hợp

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.

Độ 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 quá trình huấn luyện mô hình và giảm mức tiêu thụ bộ nhớ. Kỹ thuật này bao gồm việc sử dụng kết hợp các định dạng số có độ chính xác thấp hơn, chẳng hạn như số dấu phẩy động 16 bit (FP16), và các định dạng có độ chính xác cao hơn, chẳng hạn như số dấu phẩy động 32 bit (FP32), trong quá trình tính toán. Bằng cách sử dụng chiến lược các số có độ chính xác thấp hơn cho một số phần nhất định của mô hình, chẳng hạn như phép nhân trọng số, và giữ các thành phần quan trọng như cập nhật trọng số ở độ chính xác cao hơn, huấn luyện độ chính xác hỗn hợp có thể tăng tốc đáng kể hiệu suất trên các GPU hiện đại mà không làm giảm đáng kể độ chính xác của mô hình.

Độ chính xác hỗn hợp hoạt động như thế nào

Ý tưởng cốt lõi đằng sau độ chính xác hỗn hợp là tận dụng tốc độ và hiệu suất bộ nhớ của các kiểu dữ liệu có độ chính xác thấp hơn. Phần cứng hiện đại, đặc biệt là GPU NVIDIA với lõi Tensor, có thể thực hiện các phép toán trên số 16 bit nhanh hơn nhiều so với số 32 bit. Quy trình này thường bao gồm ba bước chính:

  1. Ép kiểu độ chính xác thấp hơn: Hầu hết các phép toán của mô hình, đặc biệt là phép nhân ma trận và phép tích chập tốn nhiều tính toán, được thực hiện bằng phép tính bán chính xác (FP16). Điều này giúp giảm dung lượng bộ nhớ và tăng tốc độ tính toán.
  2. Duy trì Bản sao chính của Trọng số: Để duy trì độ chính xác và tính ổn định của mô hình, một bản sao chính của trọng số mô hình được lưu giữ ở định dạng dấu chấm động 32 bit (FP32) tiêu chuẩn. Bản sao chính này được sử dụng để tích lũy gradient và cập nhật trọng số trong quá trình huấn luyện .
  3. Điều chỉnh tỷ lệ mất mát: Để ngăn chặn hiện tượng tràn số - tức là các giá trị gradient nhỏ trở thành 0 khi được chuyển đổi sang FP16 - một kỹ thuật gọi là điều chỉnh tỷ lệ mất mát được sử dụng. Kỹ thuật này bao gồm việc nhân giá trị mất mát với một hệ số tỷ lệ trước khi lan truyền ngược để giữ các giá trị gradient nằm trong phạm vi có thể biểu diễn được cho FP16. Trước khi cập nhật trọng số, các gradient sẽ được điều chỉnh tỷ lệ lại.

Các khuôn khổ học sâu như PyTorchTensorFlow có hỗ trợ tích hợp cho độ chính xác hỗn hợp tự động, giúp việc triển khai trở nên dễ dàng.

Ứng dụng và Ví dụ

Độ chính xác hỗn hợp được áp dụng rộng rãi trong việc đào tạo các mô hình học máy (ML) quy mô lớn, nơi hiệu quả là tối quan trọng.

Các khái niệm liên quan

Độ chính xác hỗn hợp là một trong số nhiều kỹ thuật tối ưu hóa được sử dụng để làm cho các mô hình học sâu hiệu quả hơn. Điều quan trọng là phải phân biệt nó với các khái niệm liên quan:

  • Lượng tử hóa mô hình : Lượng tử hóa làm giảm kích thước mô hình và chi phí tính toán bằng cách chuyển đổi số dấu phẩy động (như FP32 hoặc FP16) sang định dạng số nguyên bit thấp hơn, chẳng hạn như INT8. Mặc dù độ chính xác hỗn hợp sử dụng các định dạng dấu phẩy động khác nhau trong quá trình huấn luyện , lượng tử hóa thường được áp dụng sau khi huấn luyện ( lượng tử hóa sau huấn luyện ) hoặc trong quá trình huấn luyện ( huấn luyện có nhận biết lượng tử hóa ) để tối ưu hóa cho suy luận , đặc biệt là trên các thiết bị biên .
  • Cắt tỉa Mô hình : Cắt tỉa là một kỹ thuật liên quan đến việc loại bỏ các kết nối (trọng số) dư thừa hoặc không quan trọng khỏi mạng nơ-ron . Không giống như độ chính xác hỗn hợp, vốn thay đổi định dạng số của trọng số, cắt tỉa thay đổi chính kiến trúc của mô hình để giảm kích thước và độ phức tạp. Các kỹ thuật này có thể được sử dụng kết hợp để đạt được hiệu suất thậm chí còn cao hơn.

Tham gia cộng đồng Ultralytics

Tham gia vào tương lai của AI. Kết nối, cộng tác và phát triển với những nhà đổi mới toàn cầu

Tham gia ngay
Liên kết đã được sao chép vào clipboard