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.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Đà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.

Hiểu về độ chính xác số

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 .

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

Đà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ấtcậ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)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.

Lợi ích của Độ 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:

  • Đào tạo nhanh hơn: Các hoạt động FP16 có thể nhanh hơn đáng kể trên phần cứng được hỗ trợ, giúp giảm thời gian đào tạo.
  • Giảm mức sử dụng bộ nhớ: Lưu trữ trọng số và kích hoạt mô hình trong FP16 giúp giảm một nửa yêu cầu về bộ nhớ, cho phép sử dụng các mô hình lớn hơn hoặc tăng kích thước lô , từ đó có thể cải thiện động lực đào tạo.
  • Hiệu quả năng lượng: Tính toán nhanh hơn và giảm chuyển động dữ liệu dẫn đến mức tiêu thụ điện năng thấp hơn trong quá trình đào tạo và suy luận.
  • Độ chính xác được duy trì: Khi được triển khai đúng cách với các kỹ thuật như tỷ lệ mất mát, độ chính xác hỗn hợp thường đạt được độ chính xác tương đương với đào tạo FP32 đầy đủ. Để biết thêm chi tiết về việc tối ưu hóa đào tạo, hãy xem các mẹo đào tạo mô hình này.

Ứng dụng trong thế giới thực

Độ 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:

  1. Thị giác máy tính: Các mô hình phát hiện đối tượng tiên tiến, bao gồm các mô hình YOLO Ultralytics như YOLOv8YOLO11 , thường tận dụng độ chính xác hỗn hợp trong quá trình đào tạo. Điều này cho phép chúng đào tạo nhanh hơn và xử lý các tập dữ liệu lớn hơn như COCO hoặc Objects365 , cuối cùng cho phép triển khai hiệu quả trên các nền tảng từ máy chủ đám mây đến các thiết bị biên như NVIDIA Jetson .
  2. Xử lý ngôn ngữ tự nhiên (NLP): Việc đào tạo các mô hình ngôn ngữ lớn (LLM) như GPT-3BERT đòi hỏi nhiều tính toán. Đào tạo độ chính xác hỗn hợp rất quan trọng để quản lý bộ nhớ và yêu cầu tính toán, giúp đào tạo các mô hình này cho các tác vụ như tạo văn bản , dịch máyphân tích tình cảm .

Những cân nhắc và khái niệm liên quan

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:

  • Hỗ trợ phần cứng: Tăng tốc tối ưu yêu cầu phần cứng được thiết kế riêng để tính toán FP16 được tăng tốc (ví dụ: NVIDIA Volta, Turing, Ampere hoặc GPU mới hơn).
  • Tính ổn định số: Cần xử lý cẩn thận, thường thông qua các công cụ khung tự động và tính toán tổn thất để tránh các vấn đề liên quan đến phạm vi hạn chế của FP16.
  • Tích hợp khung: Tận dụng sự hỗ trợ tích hợp trong các khung học sâu như PyTorch hoặc TensorFlow giúp đơn giản hóa việc triển khai.

Đ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.

Đọc tất cả