メインコンテンツまでスキップ

カスタム モデルサービング エンドポイントの作成

この記事では、 モデルサービングを使用してDatabricksカスタムモデル を提供するモデルサービングエンドポイントを作成する方法について説明します 。

モデルサービングには、サービングエンドポイントの作成に関する次のオプションがあります。

  • サービングUI
  • REST API
  • MLflow Deployments SDK

生成AI モデルを提供するエンドポイントの作成については、「 エンドポイントを提供する基盤モデルの作成」を参照してください。

必要条件

  • ワークスペースは、サポートされているリージョンにある必要があります。
  • カスタムライブラリまたはプライベートミラーサーバーのライブラリをモデルで使用する場合は、モデルエンドポイントを作成する前に、 モデルサービングでカスタム Python ライブラリを使用する を参照してください。
  • MLflow Deployments SDK を使用してエンドポイントを作成するには、MLflow Deployment クライアントをインストールする必要があります。 インストールするには、次のコマンドを実行します。
Python
import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

アクセス制御

エンドポイント管理のためのモデルサービングエンドポイントのアクセスコントロールオプションを理解するには、「 モデルサービングエンドポイントのアクセス許可を管理する」を参照してください。

また、次のこともできます。

エンドポイントを作成する

サービング UI を使用して、モデル・サービングのエンドポイントを作成できます。

  1. サイドバーの 「Serving 」をクリックして、Serving UIを表示します。

  2. サービングエンドポイントの作成 をクリックします。

    Databricks UI のモデルサービングペイン

ワークスペース モデルレジストリに登録されているモデルまたは Unity Catalog内のモデルの場合:

  1. [ 名前 ] フィールドに、エンドポイントの名前を入力します。

  2. [Served entities ] セクションで

    1. [エンティティ ] フィールドをクリックして、[ 提供済みエンティティの選択 ] フォームを開きます。

    2. サービスを提供するモデルのタイプを選択します。フォームは、選択内容に基づいて動的に更新されます。

    3. 提供するモデルとモデルバージョンを選択します。

    4. 配信モデルにルーティングするトラフィックの割合を選択します。

    5. 使用するコンピュートのサイズを選択します。 ワークロードには、CPUまたはGPUコンピュートを使用できます。 使用可能な GPU コンピュートの詳細については、「 GPU ワークロードの種類 」を参照してください。

    6. [コンピュート スケールアウト ] で、このサーブ モデルが同時に処理できる要求の数に対応するコンピュート スケールアウトのサイズを選択します。この数値は、QPS x モデルの実行時間とほぼ等しくする必要があります。

      1. 使用可能なサイズは、0 から 4 の要求の場合は Small要求は Medium 8 から 16、要求は Large です ( 16 から 64 の要求の場合)。
    7. 使用していないときにエンドポイントを 0 にスケーリングするかどうかを指定します。本番運用エンドポイントでは、ゼロにスケーリングすると容量が保証されないため、ゼロへのスケーリングは推奨されません。

    8. 「詳細設定」では、次のことができます。

  3. [AI Gateway ] セクションでは、エンドポイントで有効にするガバナンス機能を選択できます。Mosaic AI Gatewayの紹介を参照してください。

  4. [ ルートの最適化 ] セクションでは、エンドポイントのルート最適化を有効にできます。「サービスエンドポイントでのルート最適化」を参照してください。

  5. 作成 をクリックします。[ エンドポイントの提供中 ] ページが表示され、 提供エンドポイントの状態 が [準備ができていません] と表示されます。

    モデルサービングエンドポイントを作成する

また、次のこともできます。

GPU ワークロードの種類

GPU デプロイメントは、次のパッケージバージョンと互換性があります。

  • PyTorch 1.13.0 - 2.0.1
  • TensorFlow 2.5.0 - 2.13.0
  • MLflow 2.4.0 以降

GPU を使用してモデルをデプロイするには、エンドポイントの作成時にエンドポイント設定に workload_type フィールドを含めるか、API を使用してエンドポイント設定の更新として含めます。 Serving UI を使用して GPU ワークロードのエンドポイントを設定するには、 コンピュート タイプ ドロップダウンから目的の GPU タイプを選択します。

Bash
{
"served_entities": [{
"entity_name": "catalog.schema.ads1",
"entity_version": "2",
"workload_type": "GPU_MEDIUM",
"workload_size": "Small",
"scale_to_zero_enabled": false,
}]
}

次の表は、サポートされている使用可能な GPU ワークロードの種類をまとめたものです。

GPU ワークロードの種類

GPU インスタンス

GPUメモリ

GPU_SMALL

1xT4

16ギガバイト

GPU_MEDIUM

1xA10Gの

24ギガバイト

MULTIGPU_MEDIUM

4xa10g

96ギガバイト

GPU_MEDIUM_8

8xA10G

192ギガバイト

カスタムモデルのエンドポイントを変更する

カスタムモデルエンドポイントを有効にした後、必要に応じてコンピュート設定を更新できます。 この構成は、モデルに追加のリソースが必要な場合に特に役立ちます。 ワークロードのサイズとコンピュートの設定は、モデルを提供するためにどのリソースが割り当てられるかにおいて重要な役割を果たします。

新しい設定の準備が整うまで、古い設定は予測トラフィックを提供し続けます。 更新が進行中の間は、別の更新を行うことはできません。 ただし、進行中の更新は Serving UI からキャンセルできます。

モデル エンドポイントを有効にした後、[ エンドポイントの編集 ] を選択して、エンドポイントのコンピュート構成を変更します。

次の操作を実行できます。

  • いくつかのワークロードサイズから選択すると、オートスケールはワークロードサイズ内で自動的に設定されます。
  • 使用していないときにエンドポイントを 0 にスケールダウンするかどうかを指定します。
  • サービス済みモデルにルーティングするトラフィックの割合を変更します。

進行中の設定更新をキャンセルするには、エンドポイントの詳細ページの右上にある [更新のキャンセル ] を選択します。この機能は、サービングUIでのみ使用できます。

モデルエンドポイントのスコアリング

モデルをスコアリングするには、モデルサービング エンドポイントに要求を送信します。

追加のリソース

ノートブックの例

次のノートブックには、モデルサービングエンドポイントを使用して起動して実行するために使用できる、さまざまな登録済みモデル Databricks が含まれています。 その他の例については、「 チュートリアル: カスタム モデルのデプロイとクエリ」を参照してください。

モデルの例は、「 ノートブックのインポート」の指示に従ってワークスペースにインポートできます。 いずれかの例からモデルを選択して作成したら、 Unity Catalogで登録するモデルサービングの UI ワークフロー手順に従います。

モデルサービングノートブックのscikit-learnモデルをトレーニングして登録する

Open notebook in new tab

モデルサービングノートブック用のHuggingFaceモデルをトレーニングして登録する

Open notebook in new tab