FLOPsがAIモデルの計算複雑性を測定する方法を学びましょう。Ultralytics YOLO26のFLOPs計算方法とエッジAI向けパフォーマンス最適化手法を発見してください。
FLOPs(浮動小数点演算)は、機械学習モデルの計算複雑性を測定する標準的な指標です。具体的には、画像や文章といった単一の入力を処理するためにニューラルネットワークが実行しなければならない数学的計算(主に小数点を含む加算と乗算)の回数を数えます。深層学習の世界では、FLOPsはモデルの「重さ」や計算コストの高さを推定する理論的な物差しとして機能します。FLOPs値が高いほど、モデルはより複雑で実行に多くの処理能力とエネルギーを必要とすることを示唆します。一方、低い値は効率性を重視した軽量なアーキテクチャを示します。
人工知能アプリケーションを開発する際、エンジニアは精度と速度のトレードオフに直面することが多い。FLOPsは推論レイテンシのハードウェア非依存の指標として機能し、開発者があらゆるデバイスでベンチマークを実行することなく異なるアーキテクチャを比較することを可能にする。この指標は特定の展開シナリオに適したモデルを選択する上で不可欠である。 例えば、高性能なクラウドコンピューティングサーバーで実験を行う研究者は、効率性よりも精度を優先し、高いFLOPsを持つモデルを利用することがある。逆に、エッジAIデバイス向けに構築するエンジニアは、厳格な電力・熱制限内でアプリケーションが円滑に動作するよう、低いFLOPsを優先せざるを得ない。
FLOPSの実用的な意義は、計算資源が重要な要素となる様々な産業分野で明らかである。
「FLOPs」(FLOPの複数形)と「FLOPS」(全て大文字)を区別することが重要です。 見た目はほぼ同じですが、測定対象が異なります。FLOPs(小文字の's')はモデルに必要な演算の総量を指し、 複雑さの静的な尺度です。 FLOPS(大文字のS)はFloating Point OperationsPer Second(1秒あたりの浮動小数点演算数)の略称であり、ハードウェアの速度や性能能力を測定します。例えば GPUFLOPSは車の最高速度(ハードウェアの作業遂行能力)と考えることができます。
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を削減する複数の手法を採用している。モデルプルーニングはニューラルネットワーク内の重要度の低い接続を除去し、実質的にネットワークを簡素化する手法である。 別の手法である量子化では、計算に使用される数値の精度を低下させます(例:32ビット浮動小数点から8ビット整数へ)。Ultralytics 利用可能なツールは、これらの最適化プロセスを効率化し、 TensorRT や OpenVINOといったターゲットへの効率的なモデル展開を容易にします。FLOPsを理解し最適化することで、開発者は強力かつ持続可能なAIシステムを構築できます。