FLOPsがAIモデルの計算複雑度を測定する方法を学びましょう。Ultralytics YOLO26のFLOPsを計算し、エッジAI向けに性能を最適化する方法を発見してください。
FLOPs(Floating Point Operations)は、機械学習モデルの計算複雑度を測定するために使用される標準的な指標です。これは、画像や文章などの単一の入力を処理するために、ニューラルネットワークが実行する必要がある数学的計算(主に小数を含む加算と乗算)の数を具体的に数えます。ディープラーニングの世界では、FLOPsはモデルがどれほど「重い」か、つまり計算コストが高いかを推定するための理論的な尺度として機能します。FLOPsのカウントが高いほど、モデルはより複雑で、実行により多くの処理能力とエネルギーを必要とすることを示唆し、低いカウントは効率のために設計された軽量なアーキテクチャを示します。
人工知能アプリケーションを開発する際、エンジニアはしばしば精度と速度のトレードオフに直面します。FLOPsは推論レイテンシのハードウェアに依存しない代理指標として機能し、開発者はすべての可能なデバイスでベンチマークを行うことなく、異なるアーキテクチャを比較できます。この指標は、特定のデプロイメントシナリオに適したモデルを選択するために不可欠です。例えば、強力なクラウドコンピューティングサーバーで実験を行う研究者は、効率よりも精度を優先し、高いFLOPsを持つモデルを利用するかもしれません。対照的に、エッジAIデバイス向けに構築するエンジニアは、厳格な電力および熱制限内でアプリケーションがスムーズに動作することを保証するために、低いFLOPsを優先する必要があります。
FLOPsの実用的な意味合いは、計算リソースが重要な要素となるさまざまな産業で明らかです。
「FLOPs」(FLOPの複数形)と「FLOPS」(すべて大文字)を区別することが重要です。これらはほとんど同じに見えますが、測定するものが異なります。FLOPs(小文字の「s」)は、モデルが必要とする操作の総量を指し、複雑さの静的な尺度です。FLOPS(大文字の「S」)は「Floating Point Operations Per Second」の略で、GPUなどのハードウェアの速度または性能能力を測定します。FLOPsは車が走行する必要がある距離(行われるべき作業)と考えることができ、FLOPSは車の最高速度(ハードウェアが作業を行う能力)と考えることができます。
Pythonを使用してUltralyticsモデルの計算コストを簡単に計算できます。これは、ニューラルネットワークがハードウェア予算内に収まるようにするため、モデル最適化フェーズで特に役立ちます。以下の例は、YOLO26モデルをロードし、そのFLOPsを決定する方法を示しています。
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")
モデルをよりデプロイ可能にするため、研究者は精度を大幅に犠牲にすることなくFLOPsを削減するいくつかの手法を使用します。モデルプルーニングは、ニューラルネットワーク内の重要度の低い接続を削除し、効果的にネットワークを薄くします。もう1つの手法は量子化であり、計算で使用される数値の精度を低下させます(例:32ビット浮動小数点から8ビット整数へ)。Ultralytics Platformで利用可能なツールは、これらの最適化プロセスを効率化し、TensorRTやOpenVINOのようなターゲットに効率的なモデルをデプロイすることを容易にします。FLOPsを理解し最適化することで、開発者は強力で持続可能なAIシステムを構築できます。

未来の機械学習で、新たな一歩を踏み出しましょう。