モデルサービングへの移行

プレビュー

Mosaic AI Model Serving は パブリック プレビュー 段階にあり、 us-east1us-central1でサポートされています。

この記事では、ワークスペースでモデルサービングを有効にし、モデルをサーバレス コンピュート Mosaic AI Model Serving エクスペリエンスに切り替えます。

要件

重要な変更

  • 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 が有効になっているモデルごとに、次の操作を行います。

  1. モデルを Unity Catalogに登録する .

  2. 機械学習ワークスペースのサイドバーにある [エンドポイントの提供 ] に移動します。

  3. モデルを使用してサービス提供エンドポイントを作成する方法については、「カスタム モデルサービング エンドポイントの作成」で説明されているワークフローに従います。

  4. サービスを移行して、サービス エンドポイントによって提供される新しい URL と新しいスコアリング形式を使用してモデルをクエリーします。

  5. モデルが移行されると、機械学習ワークスペースのサイドバーにある [モデル ] に移動できます。

  6. レガシー MLflow Model Servingを無効にするモデルを選択します。

  7. サービング タブで、 停止 を選択します。

  8. 確認メッセージが表示されます。 [ 配信を停止] を選択します。

デプロイされたモデルバージョンをモデルサービングに移行する

以前のバージョンの Model Serving 機能では、サービス エンドポイントは、登録されたモデル バージョンのステージ ( Staging または Production) に基づいて作成されていました。 そのエクスペリエンスからサービス対象のモデルを移行するには、新しい Model Serving エクスペリエンスでその動作を複製できます。

このセクションでは、 Staging モデルバージョンと Production モデルバージョンに対して個別のモデルサービスエンドポイントを作成する方法について説明します。 次のステップは、各サーブドモデルのサービングエンドポイント API を使用してこれを実現する方法を示しています。

この例では、登録されたモデル名 modelA 、モデルステージ Production のバージョン1、モデルステージ Stagingのバージョン2を持っています。

  1. 登録済みモデル用に 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
               },
            ],
         },
      }
    
  2. エンドポイントのステータスを確認します。

    ステージング エンドポイントの場合: GET /api/2.0/serving-endpoints/modelA-Staging

    実稼働エンドポイントの場合: GET /api/2.0/serving-endpoints/modelA-Production

  3. エンドポイントの準備ができたら、次を使用してエンドポイントをクエリーします。

    ステージング エンドポイントの場合: POST /serving-endpoints/modelA-Staging/invocations

    実稼働エンドポイントの場合: POST /serving-endpoints/modelA-Production/invocations

  4. モデルのバージョン遷移に基づいてエンドポイントを更新します。

    新しいモデル バージョン 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
          },
       ],
    }