Model Serving
モデルサービングが、トレーニング済みモデルと本番環境のギャップをどのように埋めるかを学びます。Ultralytics PlatformでUltralytics YOLO26をデプロイする戦略を確認します。
モデルサービングとは、トレーニング済みの機械学習モデルをホスティングし、ネットワークインターフェースを介してその機能をソフトウェアアプリケーションから利用できるようにするプロセスです。これは、ディスクに保存された静的なモデルファイルと、現実世界のデータを処理する稼働中のシステムをつなぐ橋渡しの役割を果たします。モデルが機械学習 (ML)のトレーニングフェーズを完了すると、画像、テキスト、表形式データなどの入力を受け取り、予測を返せる本番環境に統合する必要があります。これは通常、モデルをアプリケーションプログラミングインターフェース (API)でラップすることで実現し、Webサーバー、モバイルアプリ、IoTデバイスとの通信を可能にします。
AIにおけるモデルサービングの役割#
モデルサービングの主な目的は、予測モデリングの機能を効果的に運用可能にすることです。トレーニングでは精度と損失の最小化に重点を置くのに対し、サービングではレイテンシ(予測が返される速さ)やスループット(1秒あたりに処理できるリクエスト数)などのパフォーマンス指標に重点を置きます。堅牢なサービングインフラストラクチャにより、コンピュータービジョン (CV)システムは高負荷時でも信頼性を維持できます。これには、モデルとその依存関係をパッケージ化して異なるコンピューティング環境間で一貫した動作を確保するDockerなどのツールを使用したコンテナ化のようなテクノロジーがよく使われます。
実世界での利用例#
モデルサービングは、データに基づく即時の意思決定を可能にすることで、さまざまな業界に普及しているAI機能を支えています。
- スマート製造: 製造現場では、製造業におけるAIシステムが提供されたモデルを使用して組立ラインを検査します。部品の高解像度画像がローカルサーバーに送信され、そこでYOLO26モデルが傷や位置ずれなどの欠陥を検出し、不良品を取り除くためのアラートを即座に発します。
- 小売業務の自動化: 小売業者は、顧客体験を向上させるために小売業におけるAIを活用しています。物体検出モデルに接続されたカメラが会計エリア内の商品を識別し、手動でバーコードをスキャンすることなく合計金額を自動的に計算します。
実装方法#
モデルを効果的にサービングするには、モデルをエクスポートしてONNXのような標準化された形式にすることが有効な場合があります。これにより、異なるトレーニングフレームワークとサービングエンジン間の相互運用性が向上します。次の例では、Pythonを使用してモデルをロードし、推論を実行する方法を示します。これは、サービングエンドポイント内に存在するロジックをシミュレートするものです。
from ultralytics import YOLO
# Load the YOLO26 model (this typically happens once when the server starts)
model = YOLO("yolo26n.pt")
# Simulate an incoming API request with an image source URL
image_source = "https://ultralytics.com/images/bus.jpg"
# Run inference to generate predictions for the user
results = model.predict(source=image_source)
# Process results (e.g., simulating a JSON response to a client)
print(f"Detected {len(results[0].boxes)} objects in the image.")適切な戦略の選択#
サービング戦略の選択は、具体的なユースケースに大きく左右されます。オンラインサービングは、RESTやgRPCなどのプロトコルを介して即時に応答を返すため、ユーザー向けWebアプリケーションに不可欠です。一方、バッチサービングは大量のデータをオフラインで処理し、夜間のレポート生成などのタスクに適しています。プライバシーや、インターネットに依存しない低レイテンシが求められるアプリケーションでは、エッジAIによってサービングプロセスをデバイス上で直接実行し、TensorRTのような最適化された形式を利用して、リソースが限られたハードウェア上でパフォーマンスを最大化します。多くの組織は、Ultralytics Platformを活用して、クラウドAPIやエッジデバイスなど、さまざまなエンドポイントへのモデルのデプロイを簡素化しています。
関連用語との違い#
密接に関連していますが、「モデルサービング」はモデルデプロイや推論とは異なります。
- モデルデプロイ: これは、モデルを本番環境にリリースする、より広範なライフサイクル段階を指します。サービングは、デプロイされたモデルを実行するために使用される具体的な仕組みまたはソフトウェア(NVIDIA Triton Inference ServerやTorchServeなど)です。
- 推論: これは、入力から予測を計算する数学的な処理です。モデルサービングは、エンドユーザー向けに推論を確実に実行できるようにするインフラストラクチャ(ネットワーク、スケーラビリティ、セキュリティ)を提供します。
- マイクロサービス: サービングは、マイクロサービスの集合として設計されることが多く、モデルが独立したサービスとして実行され、アプリケーションの他の部分からクエリを受け付けます。データの交換には、JSONのような軽量な形式がよく使用されます。









