機械学習モデルを訓練しても、本番アプリケーションから使えなければ価値は生まれません。Databricks Model Servingは、MLflowで記録したカスタムモデル、DBRX・LlamaなどのFoundation Model、OpenAI・AnthropicなどのExternal Modelを、統一的なREST APIエンドポイントとして公開するサーバーレス基盤です。インフラ管理不要でオートスケール・GPU対応・Scale to zeroに対応し、推論結果のロギングやA/Bテストまでカバーします。
Model Servingは、Databricksが提供するフルマネージドのリアルタイム推論基盤です。ユーザーがモデルをデプロイすると、Databricks側でコンテナ化・ロードバランシング・オートスケールが自動的に行われ、HTTPS経由のREST APIとして外部アプリケーションからモデルを呼び出せます。
主な特徴は4つあります。
Model Servingには3つのエンドポイントタイプがあり、用途に応じて使い分けます。試験ではこの3つの違いと適用シナリオの判断が問われます。
| タイプ | 対象モデル | ホスト場所 | 代表的なユースケース |
|---|---|---|---|
| Custom Models | MLflowで記録した任意のモデル(scikit-learn, PyTorch, Transformers等) | Databricks内 | 自社データで訓練した需要予測・不正検知・レコメンデーション |
| Foundation Model APIs | DBRX, Llama 3, Mixtral, BGE等のOSSモデル | Databricks内(pay-per-token) | テキスト生成・要約・Embedding生成(データ外部送信なし) |
| External Models | OpenAI 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を使うのが一般的です。
Databricksワークスペース左メニューの「Serving」→「Create serving endpoint」から、モデル名・バージョン・インスタンスサイズ・スケール設定を指定して作成します。プロトタイピングや設定の確認に適しています。
以下は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でトラフィックがない間のコストを削減できます。
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
}
]
}
}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をルックアップします。
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
}
}推論テーブルにはリクエストのタイムスタンプ、入力データ、モデルの出力、レイテンシ、ステータスコードが記録されます。このデータを使って以下の運用タスクを実行できます。
LLMやディープラーニングモデルなど、GPU推論が必要なモデルには GPU最適化インスタンス(GPU workload type)を指定できます。workload_typeにGPU_SMALL、GPU_MEDIUM、GPU_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 Models | Databricks側: リクエスト数 × 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 Professional試験では「Feature Servingを使う場合と使わない場合の違い」「A/Bテストで新モデルの性能を検証する手順」「推論テーブルのデータを使ったドリフト検出」の3つが頻出です。Custom Models / Foundation Model APIs / External Modelsの3タイプの違いは全試験共通で問われます。
ML Professional
問題 1
MLエンジニアがscikit-learnで訓練した不正検知モデルを本番環境にデプロイしたい。推論時にはリクエストに含まれるuser_idをキーにして、Feature Tableから最新のユーザー行動特徴量を取得してモデルに入力する必要がある。最も適切な構成はどれか。
正解: 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パターンの実装が出題範囲です。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全7試験・難易度・勉強法
Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...
Databricks試験の難易度ランキング|全7資格を徹底比較
Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...