CPU
AIにおけるCPUの不可欠な役割を探ります。データの前処理や後処理を最適化し、エッジデバイスでUltralytics YOLO26の推論を実行する方法を学びましょう。
Central Processing Unit (CPU) は、コンピュータの中核部品であり、「脳」として機能し、ハードウェアやソフトウェアからの命令を解釈して実行します。人工知能(AI)の文脈において、CPUはデータ処理、システムオーケストレーション、および推論の実行において基本的な役割を果たします。特に電力効率が極めて重要なエッジデバイスではその傾向が顕著です。GPUのような特化型ハードウェアがディープラーニングモデルのトレーニングという重負荷な処理に関連付けられることが多い一方で、CPUは機械学習(ML)パイプライン全体において依然として不可欠な存在です。
AIワークフローにおけるCPUの役割#
GPUはトレーニング中の高い並列処理能力で知られていますが、CPUはコンピュータビジョン(CV)ライフサイクルの多くの必須ステージにおいて主役となります。通常、x86(Intel、AMD)またはARMの設計に基づくそのアーキテクチャは、逐次処理と複雑なロジック制御に最適化されています。
- データ前処理: ニューラルネットワークが学習を行う前に、データを準備する必要があります。CPUは、ファイル読み込み、データクリーニング、およびNumPyやOpenCVなどのライブラリを使用した複雑な変換といったタスクを得意としています。
- エッジ推論: 実世界への導入において、大規模サーバー上でモデルを実行することが常に現実的とは限りません。CPUを使用することで、ノートパソコンやRaspberry Pi上でUltralytics YOLO26を実行するなど、コンシューマー向けハードウェア上での効率的なモデルデプロイが可能になります。
- 後処理: モデルが生の確率を出力した後、CPUは多くの場合、重複する予測をフィルタリングして結果を洗練させるために、物体検出における非最大値抑制(NMS)などの最終ロジックを処理します。
CPUとGPUとTPUの比較#
機械学習運用(MLOps)を最適化するには、ハードウェアの状況を理解することが極めて重要です。これらのプロセッサは、アーキテクチャや理想的なユースケースにおいて大きく異なります。
- CPU: 汎用性と複雑なロジック向けに設計されています。タスクを逐次処理する強力なコアを少数備えています。データオーグメンテーション、パイプライン管理、および小バッチでの低レイテンシ推論に最適です。
- GPU(Graphics Processing Unit): 元々はグラフィックス用でしたが、GPUには並列処理用に設計された多数の小型コアがあります。CPUよりもはるかに高速に行列乗算を実行できるため、モデルトレーニングの標準となっています。
- TPU(Tensor Processing Unit): テンソル計算専用にGoogle Cloudが開発した特殊回路(ASIC)です。特定ワークロードに対して非常に効率的ですが、CPUが持つような汎用的な柔軟性に欠けています。
実社会での応用#
CPUは、コスト、可用性、エネルギー消費が膨大な生の処理能力の必要性を上回るアプリケーションにおいて、よく選択されるハードウェアです。
-
スマートセキュリティカメラ: セキュリティ警報システムにおいて、カメラは多くの場合、ビデオフィードをローカルで処理します。CPUベースの物体検出モデルにより、クラウドにビデオを送信することなく人物や車両を特定してアラートをトリガーできるため、帯域幅とユーザーのプライバシーを保護できます。
-
産業オートメーション: 工場の現場では、予知保全システムがCPUを使用して機械のセンサーデータを監視します。これらのシステムは振動や温度の急上昇をリアルタイムで分析して障害を予測し、高価なGPUクラスターを必要とせずにスムーズな製造オートメーションを保証します。
UltralyticsでCPU上で推論を実行する#
開発者は、サーバーレスコンピューティング環境や低電力デバイスとの互換性を検証するために、CPU上でモデルをテストすることがよくあります。Ultralytics APIを使用すると、CPUを簡単にターゲットに指定でき、アプリケーションがどこでも実行できるように保証されます。
次の例は、軽量モデルをロードし、CPU上で具体的に推論を実行する方法を示しています。
from ultralytics import YOLO
# Load the lightweight YOLO26 nano model
# Smaller models are optimized for faster CPU execution
model = YOLO("yolo26n.pt")
# Run inference on an image, explicitly setting the device to 'cpu'
results = model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
# Print the detection results (bounding boxes)
print(results[0].boxes.xywh)Intel CPUでのパフォーマンスをさらに向上させるため、開発者はモデルをOpenVINO形式にエクスポートできます。これにより、ニューラルネットワークの構造がx86アーキテクチャ向けに特別に最適化されます。データセットの管理やこれらのデプロイのオーケストレーションには、Ultralytics Platformなどのツールにより、アノテーションからエッジ実行までのワークフローが簡素化されます。






