モデルサービングへの移行
この記事では、ワークスペースでモデルサービングを有効にし、モデルをサーバレス コンピュート Mosaic AI Model Serving エクスペリエンスに切り替えます。
要件
MLflow モデルレジストリに登録されているモデル。
アクセス制御ガイドで説明されている登録済みモデルに対するアクセス許可。
重要な変更
Model Servingでは、エンドポイントへの要求とエンドポイントからの応答の形式は、レガシ MLflow Model Servingとは少し異なります。新しい形式プロトコルの詳細については、「 モデル エンドポイントのスコアリング 」を参照してください。
Model Servingでは、エンドポイント URL に
model
ではなくserving-endpoints
が含まれます。Model Serving には、 API ワークフローを使用したリソース管理の完全なサポートが含まれています。
Model Serving は運用環境に対応しており、Databricks SLA によってサポートされています。
レガシーのMLflowモデルサービングでサーブされていたモデルをモデルサービングに移行する
Model Serving エンドポイントを作成し、 レガシー MLflow Model Servingを無効にすることなく、ワークフローを提供するモデルを柔軟に移行できます。
次のステップ は、UI を使用してこれを実現する方法を示しています。 レガシ MLflow Model Serving が有効になっているモデルごとに、次の操作を行います。
モデルを Unity Catalogに登録する .
機械学習ワークスペースのサイドバーにある [エンドポイントの提供 ] に移動します。
モデルを使用してサービス提供エンドポイントを作成する方法については、「カスタム モデルサービング エンドポイントの作成」で説明されているワークフローに従います。
サービスを移行して、サービス エンドポイントによって提供される新しい URL と新しいスコアリング形式を使用してモデルをクエリーします。
モデルが移行されると、機械学習ワークスペースのサイドバーにある [モデル ] に移動できます。
レガシー MLflow 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 推論デプロイメントを Mosaic AI Model Serving に移行する方法についてのガイダンスを提供し、ノートブックの例を示します。
次の表は、Databricks での MosaicML 推論とモデルサービングのパリティをまとめたものです。
MosaicML推論 |
Mosaic AI モデルサービング |
---|---|
create_inference_deployment |
|
update_inference_deployment |
|
delete_inference_deployment |
|
get_inference_deployment |
次のノートブックは、 llama-13b
モデルを MosaicML から Mosaic AI Model Serving に移行するガイド付きの例を示しています。