Model Serving への移行
この記事では、ワークスペースで Model Serving を有効にし、サーバーをレス コンピュート上に構築された新しい Model Serving エクスペリエンスにモデルを切り替える方法について説明します。
要件
MLflow モデルレジストリに登録されているモデル。
アクセス制御ガイドに記載されている登録済みモデルに対するアクセス許可。
重要な変更
Model Servingでは、エンドポイントへの要求とエンドポイントからの応答の形式は、レガシ MLflow Model Servingとは少し異なります。新しい形式プロトコルの詳細については、「 モデル エンドポイントのスコアリング 」を参照してください。
Model Servingでは、エンドポイント URL に
model
ではなくserving-endpoints
が含まれます。Model Serving には、 API ワークフローを使用したリソース管理の完全なサポートが含まれています。
Model Serving は運用環境に対応しており、Databricks SLA によってサポートされています。
従来の MLflow Model Serving 提供モデルを Model Serving に移行する
Model Serving エンドポイントを作成し、 レガシー MLflow Model Servingを無効にすることなく、ワークフローを提供するモデルを柔軟に移行できます。
次のステップ は、UI を使用してこれを実現する方法を示しています。 レガシ MLflow Model Serving が有効になっているモデルごとに、次の操作を行います。
機械学習ワークスペースのサイドバーにある [エンドポイントの提供 ] に移動します。
モデルを使用してサービス提供エンドポイントを作成する方法については、「カスタム モデルサービング エンドポイントの作成」で説明されているワークフローに従います。
サービスを移行して、サービス エンドポイントによって提供される新しい URL と新しいスコアリング形式を使用してモデルをクエリーします。
モデルが移行されると、機械学習ワークスペースのサイドバーにある [モデル ] に移動できます。
レガシー MLflow Model Servingを無効にするモデルを選択します。
サービング タブで、 停止 を選択します。
確認メッセージが表示されます。 [ 配信を停止] を選択します。
デプロイされたモデル バージョンを Model Serving に移行する
以前のバージョンの Model Serving 機能では、サービス エンドポイントは、登録されたモデル バージョンのステージ ( Staging
または Production
) に基づいて作成されていました。 そのエクスペリエンスからサービス対象のモデルを移行するには、新しい Model Serving エクスペリエンスでその動作を複製できます。
このセクションでは、 Staging
モデルバージョンと Production
モデルバージョンに対して個別のモデルサービスエンドポイントを作成する方法について説明します。 次のステップは、各サーブドモデルのサービングエンドポイント API を使用してこれを実現する方法を示しています。
この例では、登録されたモデル名 modelA
、モデルステージ Production
のバージョン1、モデルステージ Staging
のバージョン2を持っています。
登録済みモデル用に 2 つのエンドポイント (1 つは
Staging
モデル バージョン用、もう 1 つはProduction
モデル バージョン用) を作成します。Staging
モデルバージョンの場合:POST /api/2.0/serving-endpoints { "name":"modelA-Staging" "config":{ "served_entities":[ { "entity_name":"model-A", "entity_version":"2", // Staging Model Version "workload_size":"Small", "scale_to_zero_enabled":true }, ], }, }
Production
モデルバージョンの場合:POST /api/2.0/serving-endpoints { "name":"modelA-Production" "config":{ "served_entities":[ { "entity_name":"model-A", "entity_version":"1", // Production Model Version "workload_size":"Small", "scale_to_zero_enabled":true }, ], }, }
エンドポイントのステータスを確認します。
ステージング エンドポイントの場合:
GET /api/2.0/serving-endpoints/modelA-Staging
実稼働エンドポイントの場合:
GET /api/2.0/serving-endpoints/modelA-Production
エンドポイントの準備ができたら、次を使用してエンドポイントをクエリーします。
ステージング エンドポイントの場合:
POST /serving-endpoints/modelA-Staging/invocations
実稼働エンドポイントの場合:
POST /serving-endpoints/modelA-Production/invocations
モデルのバージョン遷移に基づいてエンドポイントを更新します。
新しいモデル バージョン 3 が作成されるシナリオでは、モデル バージョン 2 を
Production
に移行し、モデル バージョン 3 をStaging
に移行し、モデル バージョン 1 をArchived
に移行できます。 これらの変更は、次のように個別のモデル サービス エンドポイントに反映できます。Staging
エンドポイントの場合は、Staging
の新しいモデル バージョンを使用するようにエンドポイントを更新します。PUT /api/2.0/serving-endpoints/modelA-Staging/config { "served_entities":[ { "entity_name":"model-A", "entity_version":"3", // New Staging model version "workload_size":"Small", "scale_to_zero_enabled":true }, ], }
Production
エンドポイントについては、Production
の新しいモデルバージョンを使用するようにエンドポイントを更新します。PUT /api/2.0/serving-endpoints/modelA-Production/config { "served_entities":[ { "entity_name":"model-A", "entity_version":"2", // New Production model version "workload_size":"Small", "scale_to_zero_enabled":true }, ], }
MosaicML 推論ワークフローをモデルサービングに移行する
このセクションでは、MosaicML 推論デプロイを Databricks モデルサービングに移行する方法に関するガイダンスを提供し、ノートブックの例を含めます。
次の表は、Databricks での MosaicML 推論とモデルサービングのパリティをまとめたものです。
モザイクML推論 |
Databricks モデルサービング |
---|---|
create_inference_deployment |
|
update_inference_deployment |
|
delete_inference_deployment |
|
get_inference_deployment |
次のノートブックは、 llama-13b
モデルを MosaicML から Databricks モデルサービングに移行するガイド付き例を示しています。