Model Serving への移行

この記事では、ワークスペースで Model Serving を有効にし、サーバーをレス コンピュート上に構築された新しい Model Serving エクスペリエンスにモデルを切り替える方法について説明します。

要件

重要な変更

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

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

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

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

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

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

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

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

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

以前のバージョンの 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
          },
       ],
    }
    

MosaicML 推論ワークフローをモデルサービングに移行する

このセクションでは、MosaicML 推論デプロイを Databricks モデルサービングに移行する方法に関するガイダンスを提供し、ノートブックの例を含めます。

次の表は、Databricks での MosaicML 推論とモデルサービングのパリティをまとめたものです。

モザイクML推論

Databricks モデルサービング

create_inference_deployment

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

update_inference_deployment

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

delete_inference_deployment

モデルサービング エンドポイントの削除

get_inference_deployment

モデルサービングエンドポイントのステータスを取得する

次のノートブックは、 llama-13b モデルを MosaicML から Databricks モデルサービングに移行するガイド付き例を示しています。

MosaicML 推論から Databricks モデルサービング ノートブックへの移行

ノートブックを新しいタブで開く