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

FLOPs

Tìm hiểu về FLOPs trong machine learning! Tìm hiểu cách nó đo lường độ phức tạp của mô hình, tác động đến hiệu quả và hỗ trợ lựa chọn phần cứng.

FLOP, hay Phép toán Dấu phẩy động, đóng vai trò là một thước đo cơ bản để định lượng độ phức tạp tính toán của các mô hình học máy , đặc biệt trong lĩnh vực học sâu. Phép đo này tính toán tổng số phép toán—chẳng hạn như cộng, trừ, nhân và chia liên quan đến số thập phân—cần thiết để hoàn thành một lần duyệt thuận của mạng nơ-ron . Bằng cách xác định số lượng FLOP, các kỹ sư có thể ước tính công suất xử lý cần thiết để thực thi một mô hình, khiến nó trở thành một thống kê quan trọng cho việc lựa chọn và tối ưu hóa phần cứng. Mặc dù khác với kích thước tệp hoặc số lượng tham số, FLOP cung cấp một cơ sở lý thuyết về mức độ "nặng" của một mô hình, điều này liên quan trực tiếp đến mức tiêu thụ năng lượng và tốc độ thực thi trên các bộ xử lý như CPU hoặc GPU .

Tầm quan trọng của FLOP trong phát triển AI

Việc hiểu rõ chi phí tính toán của một mô hình là điều cần thiết để phát triển AI hiệu quả. Số FLOPs thấp hơn thường cho thấy mô hình cần ít phép tính hơn để đưa ra dự đoán, điều này rất quan trọng đối với các môi trường có nguồn lực hạn chế.

  • Lựa chọn phần cứng : Biết FLOP cho phép các nhà phát triển kết hợp các mô hình với khả năng của phần cứng cụ thể, chẳng hạn như dòng NVIDIA Jetson hoặc bộ vi điều khiển nhúng tiêu chuẩn.
  • Hiệu quả của mô hình : Khi so sánh các kiến trúc, chẳng hạn như kiểm tra số liệu hiệu suất YOLO11 , FLOP cung cấp một cách không phụ thuộc vào phần cứng để đánh giá hiệu quả cùng với độ chính xác.
  • Tiêu thụ năng lượng : Trong các thiết bị chạy bằng pin, việc giảm FLOP sẽ trực tiếp kéo dài thời lượng pin vì bộ xử lý thực hiện ít công việc hơn trên mỗi khung hình.

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

Tác động thực tế của FLOP dễ thấy nhất khi các mô hình chuyển từ môi trường nghiên cứu sang môi trường sản xuất, nơi độ trễ và công suất bị hạn chế.

  1. Phát hiện Đối tượng trên Điện thoại thông minh : Đối với một ứng dụng di động thực hiện suy luận thời gian thực , thiết bị phải xử lý khung hình video ngay lập tức mà không bị quá nhiệt hoặc hao pin. Các nhà phát triển có thể chọn một mẫu máy nhẹ như phiên bản Nano của YOLO11 vì số lượng FLOP thấp của nó đảm bảo hiệu suất mượt mà trên các bộ xử lý di động như Qualcomm Snapdragon hoặc Apple Silicon.
  2. Điều hướng máy bay không người lái tự động : Máy bay không người lái được sử dụng trong nông nghiệp chính xác dựa vào máy tính trên máy bay để detect chướng ngại vật và bản đồ địa hình. Vì các thiết bị này có giới hạn trọng lượng nghiêm ngặt, hạn chế kích thước pin, nên các kỹ sư tối ưu hóa FLOP thấp để tối đa hóa thời gian bay trong khi vẫn duy trì khả năng phát hiện vật thể cần thiết.

Tính toán FLOPs với Python

Bạn có thể xác định độ phức tạp tính toán của một Ultralytics mô hình bằng các công cụ lập hồ sơ tích hợp. Đoạn mã sau đây tải một mô hình và tính toán FLOP cần thiết cho một kích thước đầu vào cụ thể.

from ultralytics import YOLO

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

# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)

Phương pháp này đưa ra bảng tóm tắt bao gồm số lượng tham số, độ dốc và GFLOP (GigaFLOP hoặc hàng tỷ phép tính), giúp bạn đánh giá xem mô hình có phù hợp với các ràng buộc triển khai của bạn hay không.

So sánh FLOPs với các chỉ số liên quan

Điều quan trọng là phải phân biệt FLOP với các số liệu khác mô tả kích thước và tốc độ của mô hình vì chúng đo lường các khía cạnh khác nhau của hiệu suất.

  • Tham số so với FLOP : Trọng số mô hình , hay còn gọi là tham số, xác định dung lượng bộ nhớ (RAM) cần thiết để lưu trữ mô hình. Ngược lại, FLOP đo lường khối lượng tính toán cần thiết để chạy mô hình. Một mô hình có thể nhỏ về dung lượng lưu trữ nhưng lại tốn kém về mặt tính toán nếu nó sử dụng lại các tham số thường xuyên, như được thấy trong Mạng Nơ-ron Hồi quy (RNN) .
  • MAC so với FLOP : Thông số kỹ thuật phần cứng thường đề cập đến phép toán Nhân-Tích lũy (MAC) . Một MAC thường bao gồm một phép nhân theo sau là một phép cộng, được tính là hai phép toán dấu chấm động. Do đó, 1 GigaMAC gần tương đương với 2 GFLOP.
  • Độ trễ so với FLOP : Trong khi FLOP thể hiện nỗ lực lý thuyết, độ trễ suy luận là thời gian thực tế (tính bằng mili giây) cần để xử lý một dữ liệu đầu vào. Độ trễ chịu ảnh hưởng của FLOP nhưng cũng phụ thuộc vào băng thông bộ nhớ, các thư viện tối ưu hóa phần mềm như TensorRT và kiến trúc phần cứng.

Những hạn chế của số liệu

Mặc dù FLOP cung cấp một đường cơ sở hữu ích, nhưng chúng không phản ánh toàn bộ hiệu suất của mô hình. Chúng không tính đến chi phí truy cập bộ nhớ (năng lượng và thời gian để truyền dữ liệu đến bộ xử lý), vốn thường là điểm nghẽn trong các hệ thống học sâu hiện đại. Ngoài ra, các phép toán như hàm kích hoạt (ví dụ: ReLU ) hoặc các lớp chuẩn hóa có số lượng FLOP thấp nhưng vẫn tiêu tốn thời gian. Do đó, FLOP nên được sử dụng kết hợp với việc đánh giá hiệu suất thực tế trên phần cứng mục tiêu, chẳng hạn như Raspberry Pi , để có được bức tranh chính xác về hiệu suấ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