Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

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

Tăng cường hiệu quả học sâu với huấn luyện độ chính xác hỗn hợp! Đạt được tốc độ nhanh hơn, giảm mức 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 tối ưu hóa mạnh mẽ trong học sâu , kết hợp chiến lược các định dạng số khác nhau—cụ thể là các kiểu dữ liệu dấu phẩy động 16-bit (độ chính xác bán phần) và 32-bit (độ chính xác đơn phần)—để tăng tốc độ huấn luyện mô hình và giảm mức sử dụng bộ nhớ. Bằng cách thực hiện các phép toán chuyên sâu ở độ chính xác thấp hơn trong khi vẫn duy trì bản sao chính của các trọng số mô hình ở độ chính xác cao hơn, phương pháp này mang lại tốc độ đáng kể trên phần cứng hiện đại mà không ảnh hưởng đến độ chính xác hoặc tính ổn định của mạng cuối cùng. Nó cho phép các nhà nghiên cứu và kỹ sư huấn luyện các mạng nơ-ron lớn hơn hoặc tăng kích thước lô trong cùng một giới hạn phần cứng.

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

Cơ chế cốt lõi của độ chính xác hỗn hợp dựa trên kiến trúc của các bộ tăng tốc hiện đại, chẳng hạn như các bộ được trang bị NVIDIA Tensor Cores , có thể thực hiện phép nhân ma trận ở chế độ bán chính xác (FP16) nhanh hơn nhiều so với chế độ chính xác đơn tiêu chuẩn (FP32). Quy trình này thường bao gồm ba bước chính:

  1. Ép kiểu: Các phép toán như tích chập và nhân ma trận được ép kiểu sang FP16. Điều này giúp giảm băng thông bộ nhớ cần thiết và tăng tốc độ tính toán.
  2. Bảo trì Trọng số Chính: Một bản sao chính của các tham số mô hình được lưu trữ trong FP32. Trong quá trình lan truyền ngược , các gradient được tính toán trong FP16 nhưng được áp dụng cho các trọng số chính của FP32. Điều này bảo toàn các bản cập nhật gradient nhỏ có thể bị mất do phạm vi giới hạn của FP16, ngăn ngừa các sự cố như gradient biến mất .
  3. Tỷ lệ mất mát: Để đảm bảo tính ổn định về mặt số học, giá trị của hàm mất mát thường được nhân với một hệ số tỷ lệ. Điều này chuyển các giá trị gradient sang một phạm vi mà FP16 có thể biểu diễn hiệu quả hơn, tránh lỗi tràn dưới trước khi chúng được chuyển đổi trở lại để cập nhật trọng số.

Các Ứng dụng Thực tế

Độ chính xác hỗn hợp đã trở thành thông lệ tiêu chuẩn trong nhiều lĩnh vực trí tuệ nhân tạo do khả năng tối đa hóa hiệu quả phần cứng.

  • Đào tạo các Mô hình Thị giác Tiên tiến: Việc phát triển các kiến trúc thị giác máy tính hiệu suất cao, chẳng hạn như Ultralytics YOLO11 , liên quan đến việc đào tạo trên các tập dữ liệu khổng lồ như COCO . Độ chính xác hỗn hợp cho phép các lần chạy đào tạo này hoàn thành nhanh hơn đáng kể, cho phép lặp lại nhiều lần tinh chỉnh siêu tham số hơn và chu kỳ triển khai nhanh hơn.
  • Mô hình Ngôn ngữ Lớn (LLM): Việc tạo ra các mô hình nền tảngMô hình Ngôn ngữ Lớn đòi hỏi phải xử lý hàng terabyte dữ liệu văn bản. Độ chính xác hỗn hợp rất quan trọng ở đây, vì nó giảm gần một nửa bộ nhớ cần thiết cho các hoạt động kích hoạt, cho phép các mô hình với hàng tỷ tham số phù hợp với các cụm GPU .

Triển khai Độ chính xác hỗn hợp với Ultralytics

Các ultralytics Thư viện này đơn giản hóa việc sử dụng Automatic Mixed Precision (AMP). Theo mặc định, các quy trình đào tạo sẽ kiểm tra phần cứng tương thích và kích hoạt AMP để đảm bảo hiệu suất tối ưu.

from ultralytics import YOLO

# Load the YOLO11 model for training
model = YOLO("yolo11n.pt")

# Train using Automatic Mixed Precision (AMP)
# 'amp=True' is the default setting, ensuring faster training on supported GPUs
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)

Độ chính xác hỗn hợp so với các thuật ngữ liên quan

Sẽ rất hữu ích khi phân biệt độ chính xác hỗn hợp với các khái niệm tối ưu hóa và biểu diễn dữ liệu khác:

  • So với Half Precision : Pure Half Precision (FP16) lưu trữ và tính toán mọi thứ ở định dạng 16-bit. Mặc dù điều này tối đa hóa tốc độ, nhưng nó thường dẫn đến sự mất ổn định về số và hội tụ kém trong quá trình huấn luyện. Mixed Precision giảm thiểu vấn đề này bằng cách giữ lại một bản sao chính FP32 để cập nhật trọng số ổn định.
  • So với Lượng tử hóa Mô hình : Lượng tử hóa làm giảm độ chính xác hơn nữa, thường chuyển đổi trọng số thành số nguyên (INT8) để tối ưu hóa độ trễ suy luận và kích thước mô hình khi triển khai trên các thiết bị AI biên . Độ chính xác hỗn hợp chủ yếu là tối ưu hóa thời gian đào tạo bằng cách sử dụng số dấu phẩy động, trong khi lượng tử hóa thường được áp dụng sau khi đào tạo để suy luận.
  • Vs. Bfloat16 : Brain Floating Point (Bfloat16) là một định dạng 16-bit thay thế được phát triển bởi Google Không giống như chuẩn IEEE 754 FP16, Bfloat16 duy trì cùng dải số mũ như FP32, giúp nó mạnh mẽ hơn trước hiện tượng tràn dữ liệu mà không cần điều chỉnh mất mát quá mức. Nó thường được sử dụng trong huấn luyện độ chính xác hỗn hợp trên TPU và GPU mới hơn.

Được hỗ trợ bởi các khuôn khổ như PyTorch AMP , độ chính xác hỗn hợp vẫn là một trong những cách hiệu quả nhất để dân chủ hóa quyền truy cập vào học sâu hiệu suất cao, cho phép các nhà phát triển đào tạo các mô hình phức tạp trên phần cứng có thể truy cập được.

Tham gia Ultralytics cộng đồng

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

Tham gia ngay