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を活用してデプロイ。

クイックスタート

  1. Dockerイメージの取得
    docker pull openvino/model_server:latest   # CPUのみ
    # または
    docker pull openvino/model_server:latest-gpu   # CPU + Intel GPU/NPU
    
  2. モデルの実行 – 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
    
  3. 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="")
    
  4. 古典的モデルの例 – KServe gRPC経由でResNet‑50 IRモデルを公開:
    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
    
    その後、READMEに示されているTritonクライアントを使って画像を送信し、トップ1クラスを取得します。

エコシステムと統合

  • クライアントライブラリ – 任意の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