Databricks

Databricks Model Serving完全解説|リアルタイム推論

2026-03-26
更新: 2026-03-27
NicheeLab編集部

機械学習モデルを訓練しても、本番アプリケーションから使えなければ価値は生まれません。Databricks Model Servingは、MLflowで記録したカスタムモデル、DBRX・LlamaなどのFoundation Model、OpenAI・AnthropicなどのExternal Modelを、統一的なREST APIエンドポイントとして公開するサーバーレス基盤です。インフラ管理不要でオートスケール・GPU対応・Scale to zeroに対応し、推論結果のロギングやA/Bテストまでカバーします。

Model Servingの概要

Model Servingは、Databricksが提供するフルマネージドのリアルタイム推論基盤です。ユーザーがモデルをデプロイすると、Databricks側でコンテナ化・ロードバランシング・オートスケールが自動的に行われ、HTTPS経由のREST APIとして外部アプリケーションからモデルを呼び出せます。

主な特徴は4つあります。

  • サーバーレス: VM・コンテナ・Kubernetesの管理が不要。デプロイ後の運用はDatabricksが担う
  • REST API: 標準的なHTTPリクエストで推論を呼び出せるため、言語やフレームワークに依存しない
  • オートスケール: リクエスト量に応じてインスタンス数を自動調整。トラフィックがなければ0にスケールダウン可能
  • GPU対応: GPU最適化インスタンスを選択でき、LLMやディープラーニングモデルの高速推論に対応

3つのエンドポイントタイプ

Model Servingには3つのエンドポイントタイプがあり、用途に応じて使い分けます。試験ではこの3つの違いと適用シナリオの判断が問われます。

タイプ対象モデルホスト場所代表的なユースケース
Custom ModelsMLflowで記録した任意のモデル(scikit-learn, PyTorch, Transformers等)Databricks内自社データで訓練した需要予測・不正検知・レコメンデーション
Foundation Model APIsDBRX, Llama 3, Mixtral, BGE等のOSSモデルDatabricks内(pay-per-token)テキスト生成・要約・Embedding生成(データ外部送信なし)
External ModelsOpenAI GPT-4, Anthropic Claude, Cohere等外部プロバイダ(プロキシ経由)外部LLMの統一ガバナンス・レート制限・ログ集約

Custom Modelsは自社モデルのデプロイに使います。MLflow Model Registryに登録したモデルのバージョンを指定してエンドポイントを作成します。Foundation Model APIsはDatabricksが事前ホストしているOSSモデルをトークン単位の従量課金で利用でき、自前のGPUクラスタを用意する必要がありません。External Modelsは外部APIのプロキシで、Unity Catalogによるアクセス制御やペイロードロギングを外部モデル呼び出しに統一適用する目的で使います。

エンドポイントの作成手順

エンドポイントはUI・REST API・Python SDKの3つの方法で作成できます。本番運用ではCI/CDパイプラインに組み込むためAPIまたはSDKを使うのが一般的です。

UIでの作成

Databricksワークスペース左メニューの「Serving」→「Create serving endpoint」から、モデル名・バージョン・インスタンスサイズ・スケール設定を指定して作成します。プロトタイピングや設定の確認に適しています。

Python SDKでのMLflowモデルデプロイ

以下はMLflowで記録したモデルをPython SDKでエンドポイントとして公開する例です。

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import (
    EndpointCoreConfigInput,
    ServedEntityInput,
)

w = WorkspaceClient()

w.serving_endpoints.create_and_wait(
    name="fraud-detection-endpoint",
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name="models:/fraud_detector",
                entity_version="3",
                workload_size="Small",
                scale_to_zero_enabled=True,
            )
        ]
    ),
)

entity_nameにはUnity Catalog登録モデルのパス(例: catalog.schema.model_name) またはMLflow Model Registryのモデル名を指定します。workload_sizeはSmall / Medium / Largeから選択し、scale_to_zero_enabled=Trueでトラフィックがない間のコストを削減できます。

REST APIでの作成

POST /api/2.0/serving-endpoints

{
  "name": "fraud-detection-endpoint",
  "config": {
    "served_entities": [
      {
        "entity_name": "catalog.schema.fraud_detector",
        "entity_version": "3",
        "workload_size": "Small",
        "scale_to_zero_enabled": true
      }
    ]
  }
}

Feature Servingとの統合

Model Servingの大きな強みの一つが、Feature Servingとの統合です。推論リクエスト時にクライアントが送るのは主キー(顧客IDなど)だけで、エンドポイント側がFeature Table(Unity Catalog管理のDeltaテーブル)から最新の特徴量を自動的に取得してモデルに入力します。

これにより、クライアント側で特徴量計算を再実装する必要がなくなり、訓練時と推論時の特徴量の不整合(Training-Serving Skew)を構造的に防止できます。

# Feature Serving統合の設定例
from databricks.sdk.service.serving import ServedEntityInput

ServedEntityInput(
    entity_name="catalog.schema.fraud_detector",
    entity_version="3",
    workload_size="Small",
    scale_to_zero_enabled=True,
    # Feature Specで定義されたFeature Tableから自動取得
    # モデル登録時にFeature Specを関連付けておく
)

Feature Servingを使うには、モデルをMLflowに記録する際にFeature Engineering APIのlog_modelメソッドで特徴量テーブルとの紐付け(Feature Spec)を定義しておきます。 エンドポイント側は自動的にこのSpecを読み取り、推論時にFeature Tableをルックアップします。

A/Bテストとトラフィック分割

Model Servingでは、1つのエンドポイントに複数のモデルバージョンをserved_entitiesとして登録し、 トラフィックを割合で分割できます。新旧モデルの性能比較(A/Bテスト)や、 段階的なモデル更新(カナリアデプロイ)に使います。

w.serving_endpoints.create_and_wait(
    name="recommendation-endpoint",
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                name="model-v2",
                entity_name="catalog.schema.recommender",
                entity_version="2",
                workload_size="Small",
                scale_to_zero_enabled=False,
            ),
            ServedEntityInput(
                name="model-v3",
                entity_name="catalog.schema.recommender",
                entity_version="3",
                workload_size="Small",
                scale_to_zero_enabled=False,
            ),
        ],
        traffic_config={
            "routes": [
                {"served_model_name": "model-v2", "traffic_percentage": 80},
                {"served_model_name": "model-v3", "traffic_percentage": 20},
            ]
        },
    ),
)

この例ではv2に80%、v3に20%のトラフィックを割り当てています。推論テーブルに記録されたレスポンスを分析し、v3の精度が十分であればトラフィック配分を100%に切り替えることで安全にモデルを更新できます。traffic_percentageの合計は必ず100になる必要があります。

ペイロードロギングと推論テーブル

Model Servingのエンドポイントには、すべてのリクエストとレスポンスを自動的にDeltaテーブルに記録する 「推論テーブル(Inference Table)」機能があります。エンドポイント作成時にauto_capture_configを有効にすると、Unity Catalogの指定スキーマに推論ログが蓄積されます。

{
  "auto_capture_config": {
    "catalog_name": "ml_prod",
    "schema_name": "inference_logs",
    "table_name_prefix": "fraud_detection",
    "enabled": true
  }
}

推論テーブルにはリクエストのタイムスタンプ、入力データ、モデルの出力、レイテンシ、ステータスコードが記録されます。このデータを使って以下の運用タスクを実行できます。

  • モデルモニタリング: Lakehouse Monitoringと連携し、予測分布のドリフトを検出
  • A/Bテスト分析: モデルバージョン別の予測精度・レイテンシを比較
  • デバッグ: 異常な推論結果のリクエストを特定し、入力データを確認
  • コンプライアンス: 推論の監査ログとして保持

GPUサービング

LLMやディープラーニングモデルなど、GPU推論が必要なモデルには GPU最適化インスタンス(GPU workload type)を指定できます。workload_typeGPU_SMALLGPU_MEDIUMGPU_LARGEを設定すると、対応するGPUインスタンスが割り当てられます。

Foundation Model APIsで提供されるLlama 3やMixtralなどの大規模モデルは、Databricks側がGPUインフラを管理するため、ユーザーがGPUインスタンスを意識する必要はありません。Custom Modelsで自前のLLMやPyTorchモデルをデプロイする場合にGPUワークロードタイプの指定が必要です。

料金体系

Model Servingの課金はDBU(Databricks Unit)ベースの従量課金です。エンドポイントタイプごとに課金モデルが異なります。

タイプ課金単位Scale to zeroコスト特性
Custom Modelsプロビジョニング時間 × DBU対応インスタンス起動中は常にDBU課金。Scale to zero時はゼロ
Foundation Model APIs入力/出力トークン数 × DBU常にゼロスタート使った分だけ。GPUインフラ管理不要
External ModelsDatabricks側: リクエスト数 × DBU + 外部API費用プロキシのため常時待機なしDatabricks課金+外部プロバイダ課金の二重構造

コスト最適化のポイントは、開発環境ではscale_to_zero_enabled=Trueを設定し、 本番環境では最小インスタンス数を1以上にしてコールドスタートのレイテンシを回避することです。 Foundation Model APIsはGPUクラスタの管理が不要なため、LLM利用のPoC段階では最もコスト効率が高い選択肢です。

試験で問われるポイント

Model ServingはML Associate・ML Professional・GenAI Engineerの3つの認定試験で出題されます。試験レベルごとに問われる深さが異なります。

  • ML Associate: エンドポイントの作成手順、REST APIでの推論呼び出し、Scale to zeroの基本概念
  • ML Professional: A/Bテストのトラフィック分割設定、Feature Serving統合によるTraining-Serving Skew防止、推論テーブルを使ったモデルモニタリング
  • GenAI Engineer: Foundation Model APIsとExternal Modelsの使い分け、RAGパターンでのEmbeddingエンドポイント利用

特にML Professional試験では「Feature Servingを使う場合と使わない場合の違い」「A/Bテストで新モデルの性能を検証する手順」「推論テーブルのデータを使ったドリフト検出」の3つが頻出です。Custom Models / Foundation Model APIs / External Modelsの3タイプの違いは全試験共通で問われます。

問題で確認

ML Professional

問題 1

MLエンジニアがscikit-learnで訓練した不正検知モデルを本番環境にデプロイしたい。推論時にはリクエストに含まれるuser_idをキーにして、Feature Tableから最新のユーザー行動特徴量を取得してモデルに入力する必要がある。最も適切な構成はどれか。

  1. Custom Modelエンドポイントを作成し、Feature Engineering APIでlog_modelする際にFeature Specを定義してモデルを登録する。エンドポイントが推論時にFeature Tableを自動ルックアップする
  2. Foundation Model APIsのエンドポイントを作成し、プロンプトにuser_idを含めて特徴量を生成させる
  3. Custom Modelエンドポイントを作成し、クライアント側でFeature Tableを直接クエリして全特徴量をリクエストに含める
  4. External Modelsのエンドポイントを作成し、OpenAI APIに特徴量取得ロジックを実装する

正解: A

Feature Servingと統合したCustom Modelエンドポイントが正解です。モデル登録時にFeature Specを定義しておくと、エンドポイントは推論時に主キー(user_id)だけを受け取り、Feature Tableから最新の特徴量を自動取得します。これによりTraining-Serving Skewを防止し、クライアントの実装を簡素化できます。BはLLMであり自社訓練モデルのデプロイには使えません。Cはクライアント側での特徴量再実装が必要でSkewのリスクがあります。Dは外部APIプロキシであり自社モデルのホスティングには使えません。

よくある質問

Model ServingのScale to zeroとは何ですか?

Scale to zeroは、エンドポイントにリクエストが一定時間ない場合にコンピュートリソースを0にスケールダウンする機能です。再度リクエストが来るとコールドスタートで起動します。開発・検証環境ではコスト削減に有効ですが、本番環境ではレイテンシが数十秒〜数分発生するため、最小インスタンス数を1以上に設定するのが一般的です。

Foundation Model APIsとExternal Modelsの使い分けは?

Foundation Model APIsはDatabricks上でホストされるOSSモデル(DBRX、Llama、Mixtralなど)を利用します。データがDatabricks環境内に留まるため、データガバナンスやコンプライアンス要件が厳しい場合に適します。External ModelsはOpenAIやAnthropicなど外部プロバイダのAPIをDatabricksのエンドポイント経由でプロキシする仕組みで、Unity Catalogによるアクセス制御やペイロードロギングを統一的に適用できます。

Model Servingはどの認定試験で出題されますか?

ML Associate試験ではModel Servingの基本概念(エンドポイント作成、REST APIでの推論)が出題されます。ML Professional試験ではA/Bテストによるトラフィック分割、Feature Servingとの統合、Foundation Model APIsの使い分けなど、より実践的な設計判断が問われます。GenAI Engineer試験ではFoundation Model APIsとExternal Modelsを使ったRAGパターンの実装が出題範囲です。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (109件)
© 2026 NicheeLab All rights reserved.