openvinotoolkit/model_server
A scalable inference server for models optimized with OpenVINO™
OpenVINO™ Model Server (OVMS)
何であるか – 標準的なネットワークAPIを介して機械学習モデル(LLM、ビジョン・ランゲージモデル、古典的なビジョン/分類モデルなど)を公開できるプロダクショングレードのC++推論サーバーです。OpenVINOツールキットに基づき、Intel CPU、GPU、NPUに最適化されています。
なぜ重要か – 生成AIワークロード(テキスト生成、埋め込み、画像生成、音声処理)および従来のディープラーニング推論を、OpenAI互換のREST APIまたはKServe gRPC APIの背後で実行でき、ハードウェアアクセラレーションと、継続的バッチ処理、ストリーミング、モデルバージョニング、ホットリロードなどの機能を提供します。
コア機能
| カテゴリ | ハイライト |
|---|---|
| 生成AI | チャット/コンプリーション、埋め込み、画像生成、音声(ASR/TTS)用のOpenAI互換エンドポイント。継続的バッチ処理、推測デコード、構造化出力、GGUFモデルフォーマットをサポート。 |
| 古典的推論 | 分類、検出、OCRなどに適したKServe互換のgRPC/REST。TensorFlow、ONNX、PaddlePaddle、OpenVINO IR、MediaPipeグラフ、Python実行ノード、動的形状を処理。 |
| デプロイ | Dockerイメージ(CPUのみ、CPU+GPU/NPU)、Linux/Windows用のバーマルバイナリ、Kubernetes/OpenShift用のHelmチャート。モデルリポジトリはローカル、S3、GCS、Azure Blob、HuggingFace Hubから選択可能。 |
| 管理 | モデルバージョニング、ホットリロード、Prometheusメトリクス、gRPCストリーミング、ネイティブアプリにサーバーを埋め込むためのC API。 |
| ハードウェアアクセラレーション | OpenVINOを介してIntel Xeon CPU、統合/デスクトップGPU、Intel NPUに最適化。 |
一般的なユースケース
- ローカルLLMの公開(例:Qwen3‑4B‑int4)をOpenAI互換エンドポイントの背後で実行し、チャットアプリ、RAGパイプライン、内部ツールに利用。
- 古典的ビジョンモデル(ResNet‑50、YOLO、OCR)をKServe gRPC経由で下流サービスに公開し、マイクロサービスアーキテクチャでのスケーラブルな推論を実現。
- テキスト、画像、音声モデルを組み合わせたマルチモーダルエージェントを、「AI Agents with MCP servers」デモを使って実行。
- クラウドベースのAPIが望ましくない環境(エッジやオンプレミスサーバー)でIntel CPU/GPUを活用してデプロイ。
クイックスタート
- Dockerイメージの取得
docker pull openvino/model_server:latest # CPUのみ # または docker pull openvino/model_server:latest-gpu # CPU + Intel GPU/NPU - モデルの実行 – Linux上でのHuggingFace LLM(Qwen3‑4B‑int4)の例:
mkdir -p $HOME/models docker run --rm -p 8000:8000 \ --user $(id -u):$(id -g) -v $HOME/models:/models:rw \ openvino/model_server:latest \ --source_model OpenVINO/Qwen3-4B-int4-ov \ --model_repository_path /models \ --rest_port 8000 - APIの呼び出し(Python、OpenAIクライアント):
from openai import OpenAI client = OpenAI(base_url="http://localhost:8000/v1", api_key="unused") stream = client.chat.completions.create( model="OpenVINO/Qwen3-4B-int4-ov", messages=[{"role": "user", "content": "パリの主要観光地は3つは何ですか?"}], stream=True) for chunk in stream: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="") - 古典的モデルの例 – KServe gRPC経由でResNet‑50 IRモデルを公開:
その後、READMEに示されているTritonクライアントを使って画像を送信し、トップ1クラスを取得します。docker run --rm -d -u $(id -u) -v $(pwd):/models -p 9000:9000 \ openvino/model_server:latest \ --model_name resnet --model_path /models/resnet50.xml \ --mean "[123.675,116.28,103.53]" --scale "[58.395,57.12,57.375]" \ --layout "NHWC:NCHW" --port 9000
エコシステムと統合
- クライアントライブラリ – 任意のHTTP/RESTクライアントが動作;公式例ではOpenAI Python SDKとTriton gRPCクライアントを使用。
- モデルフォーマット – TensorFlow、ONNX、PaddlePaddle、OpenVINO IR、MediaPipe、GGUF。
- 可観測性 – Prometheus互換のメトリクスエンドポイント;ログは標準的なDocker/Kubernetes規則に従います。
- 拡張性 – サーバーを埋め込むためのC API、カスタム前処理/後処理用のPython実行ノード、MediaPipeグラフによるカスタムパイプラインのサポート。
ライセンスと貢献
- ライセンス:Apache 2.0(READMEのバッジ参照)。
- 貢献:GitHubでプルリクエストとイシューを歓迎;セキュリティポリシーを提供。
結論:OpenVINO Model Serverは、Intel最適化ハードウェアと現代のAIワークロード(大規模言語モデルから古典的ビジョンパイプラインまで)の間のギャップを埋める、実際の運用可能な推論サーバープラットフォームです。OpenAIおよびKServe APIを提供することで、簡単に統合が可能になっています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch