FLOPs
FLOPsがどのようにAIモデルの計算複雑性を測定するか学びましょう。Ultralytics YOLO26のFLOPsを計算し、エッジAI向けにパフォーマンスを最適化する方法を発見してください。
FLOPs(Floating Point Operations)は、machine learningモデルの計算複雑度を測定するために使用される標準的な指標です。具体的には、画像や文などの単一の入力を処理するためにneural networkが実行しなければならない数学的計算(主に小数を含む加算と乗算)の回数をカウントします。deep learningの世界において、FLOPsはモデルがどれほど「重い」か、あるいは計算コストが高いかを推定するための理論的な基準として機能します。FLOPsの数値をカウントアップすると、一般的にモデルがより複雑であり、実行により多くの処理能力とエネルギーが必要になることを示し、逆に数値が低い場合は効率性を重視して設計された軽量なアーキテクチャであることを示します。
モデル選択におけるFLOPsの役割#
artificial intelligenceアプリケーションを開発する際、エンジニアは多くの場合、精度と速度のトレードオフに直面します。FLOPsは、inference latencyのハードウェアに依存しないプロキシとして機能し、開発者がすべての可能なデバイスでベンチマークを行うことなく、異なるアーキテクチャを比較できるようにします。この指標は、特定のデプロイシナリオに適したモデルを選択するために不可欠です。たとえば、強力なcloud computingサーバーで実験を実行する研究者は、効率性よりも精度を優先し、FLOPsが高いモデルを利用する場合があります。逆に、edge AIデバイス向けに構築するエンジニアは、厳格な電力制限および熱制限内でアプリケーションがスムーズに動作することを保証するために、低いFLOPsを優先する必要があります。
実社会での応用#
FLOPsの実践的な意味合いは、計算リソースが重要な要素となるさまざまな業界において明らかです。
- Autonomous Drones: agricultural roboticsなどの分野では、カメラを搭載したドローンが作物の健康状態をリアルタイムで分析します。ドローンのバッテリーには制限があるため、あらゆる消費電力が重要になります。エンジニアは、YOLO26のNanoバリアントなどの低いFLOPsを持つモデルを特別に選択し、オンボードプロセッサの負荷を最小限に抑えることで、飛行時間と稼働範囲を最大化します。
- Mobile Augmented Reality: セキュリティのためにfacial recognitionを使用したり、ARフィルターを適用したりするスマートフォンアプリケーションは、効率的な処理に大きく依存しています。これらのアプリは、デバイスの過熱や遅延を引き起こすことなく機能する必要があります。開発者はFLOPsの推定値を使用して、SnapdragonシリーズやAppleのA-series chipsなどのモバイルチップセットの性能に無理なく適合する軽量モデルを選択します。
FLOPs vs. FLOPS(1秒あたりの浮動小数点演算回数)#
「FLOPs」(FLOPの複数形)と「FLOPS」(すべて大文字)を区別することが重要です。これらはほぼ同じように見えますが、測定する対象が異なります。FLOPs(小文字の「s」)は、モデルに必要な操作の総数量を指し、複雑さの静的な測定値です。FLOPS(大文字の「S」)は「Floating Point Operations Per Second(1秒あたりの浮動小数点演算)」の略であり、GPUなどのハードウェアの速度またはパフォーマンス能力を測定します。FLOPsを車が移動する必要がある距離(実行すべき作業)と考え、FLOPSを車の最高速度(作業を実行するハードウェアの能力)と考えると分かりやすいでしょう。
PythonでのFLOPsの測定#
You can easily calculate the computational cost of an Ultralytics model using Python. This is particularly useful during the model optimization phase to ensure your neural network fits within your hardware budget. The following example demonstrates how to load a YOLO26 model and determine its 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の削減#
To make models more deployable, researchers use several techniques to reduce FLOPs without significantly sacrificing accuracy. Model pruning involves removing less important connections in the neural network, effectively thinning it out. Another technique is quantization, which reduces the precision of the numbers used in calculations (e.g., from 32-bit floating point to 8-bit integers). Tools available on the Ultralytics Platform help streamline these optimization processes, making it easier to deploy efficient models to targets like TensorRT or OpenVINO. By understanding and optimizing FLOPs, developers can build AI systems that are both powerful and sustainable.






