スケーラビリティ
AIとMLにおけるスケーラビリティが、Ultralytics YOLOような実世界のアプリケーションにおいて、一貫したパフォーマンス、適応性、効率性をどのように保証するかをご覧ください。
人工知能(AI)や
機械学習(ML)においてスケーラビリティとは
人工知能(AI)や機械学習(ML)においてスケーラビリティとは、データ量の増加、ユーザートラフィックの増加、計算の複雑化など、増大するワークロードを性能を損なうことなく処理するシステムの能力のことである。
などの増大する作業負荷を、パフォーマンスを損なうことなく処理する能力を指す。スケーラブルなアーキテクチャーは、需要が高まるにつれて、システムがより多くのリソースを利用したり、最適化したりすることで適応できることを保証する。
より多くのリソースを利用したり、既存のリソースを最適化することで、低推論レイテンシと高スループットを維持することができます。
推論レイテンシーと高スループットを維持します。どのような場合でも
コンピュータビジョンモデルを単一の
エッジ・デバイスに展開する場合でも、クラウド経由で数百万のリクエストに対応する場合でも、スケールを考慮した設計はAIアプリケーションの長期的な成功の基本です。
基本です。
AIでスケーラビリティが重要な理由
スケーラビリティは堅牢な
機械学習オペレーション(MLOps)の要である。これがないと、プロトタイピングの段階では非常に優れた性能を発揮するモデルでも、本番環境によくある高速データストリームにさらされると失敗する可能性がある。
本番環境で典型的な高速データストリームにさらされると、失敗する可能性があります。効果的な管理
ビッグデータを効果的に管理するには、水平展開(マシンの増設)または垂直展開が可能なシステムが必要である。
(または垂直方向(既存のマシンにさらにパワーを追加)に拡張できるシステムが必要です。)
主な利点は次のとおりです。
- 信頼性:トラフィックの急増時に一貫したサービスのアップタイムを保証します。
-
コスト効率:多くの場合、クラウド・コンピューティング・サービスによって管理される。
クラウドコンピューティングサービスによって管理されることが多い。
-
将来性:以下のような、より新しく複雑なアルゴリズムに対応します。
トランスフォーマーなど、より複雑な
インフラのオーバーホールを必要としません。
スケーラビリティを実現するための戦略
スケーラブルなAIソリューションを構築するには、モデル・アーキテクチャと導入インフラの両方を最適化する必要がある。
-
分散トレーニング:データセットが1つのプロセッサーでは大きすぎる場合、
分散トレーニングは、複数のGPUやTPU
複数のGPUやTPUにまたがる。次のようなフレームワークがあります。
PyTorch Distributedのようなフレームワークを使うことで
計算を並列化し、訓練時間を大幅に短縮することができます。
-
効率的なモデル・アーキテクチャ:正しいモデルを選択することは非常に重要である。
Ultralytics YOLO11は軽量かつ高速に設計されています、
軽量かつ高速に設計されているため
エッジAIデバイスからエンタープライズサーバーまで、多様なハードウェアで高い拡張性を発揮します。
-
コンテナ化とオーケストレーション:アプリケーションを
Dockerによるアプリケーションのパッケージ化により、環境間で一貫した動作が保証されます。
コンテナの大規模なクラスタを管理するために、Kubernetesはデプロイとスケーリングを自動化します。
スケーリングを自動化し、リソースの割り当てを動的に処理します。
-
モデルの最適化:モデルの量子化
モデルの量子化や
モデルの量子化や枝刈りのような技術は、メモリフットプリントと計算量を削減します。
モデルのメモリフットプリントと計算要件を削減します。次のようなツールがあります。 NVIDIA TensorRTのようなツールはさらに
推論をさらに高速化し、既存のハードウェアでより高いスループットを可能にします。
コード例バッチ推論
推論中のスケーラビリティを向上させる簡単な方法の一つは、入力を逐次処理するのではなく、バッチ処理することである。
これによりGPU 利用率が最大化され、スループットが向上する。
from ultralytics import YOLO
# Load a scalable YOLO11 model
model = YOLO("yolo11n.pt")
# Define a batch of images (URLs or local paths)
# Processing multiple images at once leverages parallel computation
batch_images = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
# Run inference on the batch
results = model(batch_images)
# Results contain predictions for both images
print(f"Processed {len(results)} images.")
実際のアプリケーション
スケーラビリティによって、AIは研究所からグローバルな産業へと移行することができる。
-
スマート・マニュファクチャリング製造業におけるAI
製造業におけるAIでは、システムは
組み立てラインでは1時間に何千もの部品を検査しなければならない。スケーラブルな
スケーラブルな物体検出システムは
ボトルネックになることなく、高い精度を維持することができます。
ボトルネックになることなく、高い精度を維持することができます。
-
Eコマースの推奨:大規模小売プラットフォームは
レコメンデーションシステムは
パーソナライズされた提案を即座に提供します。スケーラブルなインフラを使用することで、これらのプラットフォームはブラックフライデーのようなイベントに対応することができます。
フライデーのような、トラフィックが100倍に急増するようなイベントにも対応できるようになります。
アマゾン ウェブ サービス(AWS)を介してサーバーノードを動的に追加プロビジョニングすることで、トラフィックが100倍に急増するブラックフライデーのようなイベントに対応できます。
スケーラビリティと関連概念の比較
関連はあるが、スケーラビリティはパフォーマンスや効率とは異なる。
-
スケーラビリティとパフォーマンス:
パフォーマンス:パフォーマンスとは通常、特定の瞬間(例えば1秒あたりのフレーム数)において
性能とは通常、特定の瞬間におけるシステムの速さや正確さを指す(例:1秒あたりのフレーム数)。スケーラビリティとは、負荷が増加してもそのパフォーマンスを維持できるシステムの能力です。
負荷が増加してもそのパフォーマンスを維持できるシステムの能力を表します。
-
スケーラビリティと効率の比較:効率性:効率性は、タスクを完了するために使用されるリソースを測定する。
エネルギー消費量など)。システムは効率的だがスケーラブルではない(より多くの並列タスクを処理できない場合)、またはスケーラブルだが非効率的である(増加に対応するために過剰なリソースを使用する場合)。
スケーラブルであるが非効率的である場合(並列タスクの増加に対応するために過剰なリソースを使用している場合)がある。
-
スケーラビリティ対柔軟性:柔軟性とは、システムがさまざまな種類のタスク(たとえば
例えば YOLO11検出とセグメンテーションの処理など)。
スケーラビリティは、同じタスクや類似のタスクをより多く処理することに特化している。