CPU
AIにおけるCPUの重要な役割を探ります。データの前処理と後処理を最適化し、エッジデバイス上でUltralytics YOLO26の推論を実行する方法を今すぐ学びます。
中央処理装置(CPU)は、コンピューターの主要コンポーネントであり、「頭脳」として機能し、ハードウェアとソフトウェアからの命令を解釈して実行します。人工知能(AI)の分野では、CPUはデータ処理、システムオーケストレーション、推論の実行において基本的な役割を果たします。特に、電力効率が重要となるエッジデバイスで重要です。GPUのような専用ハードウェアは、ディープラーニングモデルのトレーニングにおける大規模な処理を担うものとして広く利用されていますが、CPUは機械学習(ML)パイプライン全体にとって依然として不可欠です。
AIワークフローにおけるCPUの役割#
トレーニング中の高い並列処理性能でGPUが評価されている一方、CPUはコンピュータービジョン(CV)のライフサイクルにおける多くの重要な段階を担うワークホースです。そのアーキテクチャは通常、x86(Intel、AMD)またはARMの設計に基づいており、逐次処理と複雑なロジック制御に最適化されています。
- データ前処理: ニューラルネットワークが学習する前に、データを準備する必要があります。CPUは、ファイルの読み込み、データクリーニング、NumPyやOpenCVなどのライブラリを使用した複雑な変換といったタスクを得意とします。
- エッジ推論: 実環境にデプロイする場合、大規模なサーバー上でモデルを実行することが常に現実的とは限りません。CPUを使用すると、ノートパソコンでUltralytics YOLO26を実行したり、Raspberry Piでモデルを動かしたりするなど、コンシューマー向けハードウェアに効率的にモデルをデプロイできます。
- 後処理: モデルが生の確率値を出力した後、CPUは物体検出における非最大抑制(NMS)などの最終的なロジックを処理し、重複する予測を除外して結果を調整します。
CPUとGPUとTPUの比較#
機械学習オペレーション(MLOps)を最適化するには、ハードウェア環境を理解することが重要です。これらのプロセッサは、アーキテクチャと適したユースケースが大きく異なります。
- CPU: 汎用性と複雑なロジック処理向けに設計されています。少数の高性能コアを備え、タスクを逐次処理します。データ拡張、パイプライン管理、小規模バッチでの低レイテンシ推論に適しています。
- GPU(GPU): 元々はグラフィックス処理向けに開発されたGPUは、並列処理向けに設計された数千個の小規模なコアを備えています。CPUよりも行列演算をはるかに高速に実行できるため、モデルのトレーニングの標準となっています。
- TPU(TPU): テンソル演算専用に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形式にエクスポートできます。OpenVINOは、x86アーキテクチャ向けにニューラルネットワーク構造を最適化します。データセットの管理とこれらのデプロイのオーケストレーションには、Ultralytics Platformなどのツールを使用することで、アノテーションからエッジでの実行までのワークフローを簡素化できます。









