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 nửa

Tìm hiểu cách độ chính xác một nửa (FP16) tăng tốc AI. Khám phá cách tối ưu hóa. Ultralytics YOLO26 giúp tăng tốc độ suy luận và giảm dung lượng bộ nhớ trên GPU và các thiết bị biên.

Độ chính xác bán phần, thường được ký hiệu là FP16, là một định dạng dữ liệu dấu phẩy động chiếm 16 bit bộ nhớ máy tính, khác với định dạng độ chính xác đơn chuẩn (FP32) sử dụng 32 bit. Trong bối cảnh trí tuệ nhân tạo và học máy, độ chính xác bán phần là một kỹ thuật tối ưu hóa quan trọng được sử dụng để tăng tốc quá trình huấn luyện và suy luận mô hình đồng thời giảm đáng kể mức tiêu thụ bộ nhớ. Bằng cách lưu trữ các giá trị số—chẳng hạn như trọng số và độ dốc của mô hình mạng nơ-ron—sử dụng ít bit hơn, các nhà phát triển có thể đưa các mô hình lớn hơn vào bộ xử lý đồ họa GPU hoặc chạy các mô hình hiện có nhanh hơn nhiều. Việc tăng hiệu quả này rất cần thiết để triển khai các kiến ​​trúc hiện đại, phức tạp như YOLO26 trên các thiết bị có tài nguyên hạn chế mà không làm giảm đáng kể độ chính xác.

Cơ chế hoạt động của các định dạng số thực dấu phẩy động

Để hiểu về độ chính xác một nửa, ta cần so sánh nó với độ chính xác đầy đủ. Một số thực dấu phẩy động 32 bit tiêu chuẩn (FP32) dành nhiều bit hơn cho số mũ và phần định trị, cung cấp phạm vi động rất rộng và độ chính xác số học cao. Tuy nhiên, các mô hình học sâu nổi tiếng là có khả năng chống chịu tốt với các lỗi số học nhỏ. Mạng nơ-ron thường có thể học hiệu quả ngay cả với phạm vi động và độ chi tiết giảm đi do định dạng 16 bit cung cấp.

Việc chuyển sang độ chính xác một nửa giúp giảm một nửa yêu cầu về băng thông bộ nhớ. Điều này cho phép kích thước lô lớn hơn trong quá trình huấn luyện, có thể ổn định việc cập nhật gradient và tăng tốc quá trình huấn luyện tổng thể. Các bộ tăng tốc phần cứng hiện đại, chẳng hạn như... NVIDIA 'S Tensor Các lõi này được tối ưu hóa đặc biệt để thực hiện phép nhân ma trận ở định dạng FP16 với tốc độ nhanh hơn đáng kể so với FP32.

Những lợi ích chính trong quy trình làm việc với AI

Việc áp dụng độ chính xác một nửa mang lại một số lợi thế hữu hình cho các chuyên gia AI:

  • Giảm thiểu dung lượng bộ nhớ sử dụng: Các mô hình chỉ cần một nửa dung lượng VRAM (Bộ nhớ video), cho phép các nhà phát triển huấn luyện các mạng lớn hơn hoặc sử dụng dữ liệu huấn luyện có độ phân giải cao hơn trên cùng một phần cứng.
  • Suy luận nhanh hơn: Đối với các ứng dụng thời gian thực, chẳng hạn như xe tự hành hoặc phân tích video, FP16 có thể tăng gấp đôi thông lượng (khung hình mỗi giây), giảm độ trễ suy luận .
  • Hiệu quả năng lượng: Xử lý ít bit hơn đòi hỏi ít năng lượng hơn, điều này rất quan trọng đối với các thiết bị AI biên và điện thoại di động, nơi thời lượng pin là một yếu tố hạn chế.
  • Huấn luyện độ chính xác hỗn hợp: Nhiều framework hiện đại sử dụng độ chính xác hỗn hợp , trong đó mô hình giữ một bản sao chính của trọng số ở định dạng FP32 để đảm bảo tính ổn định nhưng thực hiện các phép tính phức tạp ở định dạng FP16. Điều này mang lại "những ưu điểm của cả hai" - tốc độ và tính ổn định hội tụ.

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

Độ chính xác bán phần rất phổ biến trong các hệ thống AI cấp độ sản xuất. Dưới đây là hai ví dụ cụ thể:

  1. Phát hiện đối tượng theo thời gian thực trên thiết bị biên: Hãy xem xét một hệ thống camera an ninh đang chạy Ultralytics YOLO26 để detect những kẻ xâm nhập. Việc triển khai mô hình trong FP16 cho phép nó chạy mượt mà trên một chip nhúng như... NVIDIA Jetson hoặc bộ kit AI Raspberry Pi. Việc giảm tải tính toán đảm bảo hệ thống có thể xử lý nguồn cấp video ở chế độ suy luận thời gian thực mà không bị gián đoạn, điều này rất quan trọng để đưa ra cảnh báo kịp thời.

  2. Triển khai Mô hình Ngôn ngữ Lớn (LLM): Các mô hình AI tạo sinh, chẳng hạn như GPT-4 hoặc các biến thể của Llama, có hàng tỷ tham số. Việc tải các mô hình này ở độ chính xác đầy đủ (FP32) sẽ yêu cầu lượng bộ nhớ máy chủ khổng lồ, thường có chi phí rất cao. Bằng cách chuyển đổi các mô hình này sang FP16 (hoặc thậm chí các định dạng thấp hơn), các nhà cung cấp dịch vụ đám mây có thể cung cấp các mô hình nền tảng cho hàng nghìn người dùng cùng một lúc, giúp các dịch vụ như chatbot và tạo nội dung tự động trở nên khả thi về mặt kinh tế.

Độ chính xác một nửa so với lượng tử hóa

Mặc dù cả hai kỹ thuật đều nhằm mục đích giảm kích thước mô hình, nhưng điều quan trọng là phải phân biệt "Độ chính xác một nửa" với lượng tử hóa mô hình .

  • Độ chính xác một nửa (FP16): Giảm độ rộng bit từ 32 xuống 16 nhưng vẫn giữ dữ liệu ở dạng số thực. Nó duy trì dải động hợp lý và thường là lựa chọn mặc định cho việc huấn luyện và suy luận GPU .
  • Lượng tử hóa (INT8): Chuyển đổi số thực thành số nguyên (thường là 8 bit). Điều này mang lại tốc độ và tiết kiệm bộ nhớ tốt hơn nhưng đôi khi có thể dẫn đến sự suy giảm độ chính xác đáng kể hơn nếu không được thực hiện cẩn thận (ví dụ: thông qua huấn luyện có tính đến lượng tử hóa ). FP16 thường an toàn hơn để duy trì hiệu suất của mô hình, trong khi INT8 được sử dụng để tối ưu hóa tối đa.

Triển khai độ chính xác một nửa với Ultralytics

Các ultralytics Thư viện này giúp việc sử dụng độ chính xác một nửa trở nên dễ dàng. Trong quá trình dự đoán, mô hình có thể tự động chuyển sang độ chính xác một nửa nếu phần cứng hỗ trợ, hoặc có thể được yêu cầu một cách rõ ràng.

Here is a Python example demonstrating how to load a YOLO26 Mô hình và thực hiện suy luận bằng cách sử dụng độ chính xác một nửa. Lưu ý rằng khi chạy trong half=True thường yêu cầu một CUDA -đã bật GPU .

import torch
from ultralytics import YOLO

# Check if CUDA (GPU) is available, as FP16 is primarily for GPU acceleration
device = "cuda" if torch.cuda.is_available() else "cpu"

# Load the latest YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on an image with half-precision enabled
# The 'half=True' argument tells the engine to use FP16
results = model.predict("https://ultralytics.com/images/bus.jpg", device=device, half=True)

# Print the device and precision status
print(f"Inference device: {results[0].orig_img.shape}, Speed: {results[0].speed}")

Đối với người dùng quản lý tập dữ liệu và quy trình huấn luyện, Nền tảng Ultralytics tự động xử lý nhiều tối ưu hóa này trên đám mây, giúp đơn giản hóa quá trình chuyển đổi từ chú thích sang triển khai mô hình được tối ưu hóa.

Đọc thêm và Tài nguyên

Để tìm hiểu thêm về các định dạng số và tác động của chúng đối với AI, hãy tham khảo Tài liệu về Hiệu năng Học sâu NVIDIA . Tensor Các lõi xử lý. Để hiểu rõ hơn về cách các tối ưu hóa này phù hợp với vòng đời phát triển, hãy đọc về các hoạt động học máy (MLOps) .

Ngoài ra, những người quan tâm đến sự đánh đổi giữa các chiến lược tối ưu hóa khác nhau có thể tìm hiểu về phương pháp cắt tỉa (pruning) , phương pháp này loại bỏ các kết nối thay vì giảm độ chính xác bit, hoặc tìm hiểu Tiêu chuẩn IEEE về Số học Dấu phẩy động (IEEE 754) để biết các thông số kỹ thuật của số học kỹ thuật số. Hiểu được những nguyên tắc cơ bản này giúp đưa ra quyết định sáng suốt khi xuất mô hình sang các định dạng như ONNX hoặc TensorRT cho môi trường sản xuất.

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