次の方法で共有


Model Serving への移行

この記事では、ワークスペースで Model Serving を有効にし、モデルを Mosaic AI Model Serving エクスペリエンスに切り替える方法について説明します。

要件

重要な変更

  • Model Serving では、エンドポイントに対する要求の形式とエンドポイントからの応答が、レガシ MLflow Model Serving と若干異なります。 新しいフォーマット プロトコルの詳細については、モデル エンドポイントのスコアリングに関する記事を参照してください。
  • Model Serving では、エンドポイント URL には model ではなく serving-endpoints が含まれます。
  • Model Serving には、API ワークフローを使用したリソースの管理に対する詳細サポートが含まれています。
  • Model Serving は運用環境に対応していて、Azure Databricks SLA によってサポートされています。

レガシ MLflow Model Serving が提供したモデルを Model Serving に移行する

Model Serving エンドポイントを作成し、レガシ MLflow Model Serving を無効にすることなく、ワークフローを提供するモデルを柔軟に切り替えることができます。

次のステップでは、UI でこれを実現する方法を示します。 レガシ MLflow Model Serving が有効になっているモデルごとに、次の手順を実行します。

  1. モデルを Unity カタログに登録します。
  2. 機械学習ワークスペースのサイドバーから [Serving endpoints] (提供エンドポイント) に移動します。
  3. モデルを使用して提供エンドポイントを作成する方法については、「カスタム モデル サービング エンドポイントを作成する」に記載されているワークフローに従います。
  4. 提供エンドポイントによって提供される新しい URL を使用してモデルのクエリを実行するように、新しいスコアリング形式とともにアプリケーションを移行します。
  5. モデルが切り替わると、機械学習ワークスペースのサイドバーにある [モデル] に移動できます。
  6. レガシ MLflow Model Serving を無効にするモデルを選択します。
  7. [提供] タブで、[停止] を選択します。
  8. 確認メッセージが表示されます。 [提供の停止] を選択します。

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

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

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

この例では、登録されたモデル名 modelA にモデル ステージ Production のバージョン 1 とモデル ステージ Staging のバージョン 2 があります。

  1. 登録済みモデルに対して、Staging モデル バージョン用の1 つと、Production モデル バージョン用のもう 1 つの 2 つのエンドポイントを作成します。

    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. エンドポイントの状態を確認します。

    Staging エンドポイント用: GET /api/2.0/serving-endpoints/modelA-Staging

    Production エンドポイント用: GET /api/2.0/serving-endpoints/modelA-Production

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

    Staging エンドポイント用: POST /serving-endpoints/modelA-Staging/invocations

    Production エンドポイント用: 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 推論ワークフローを Model Serving に移行する

このセクションでは、MosaicML 推論デプロイを Mosaic AI Model Serving に移行する方法に関するガイダンスを提供し、ノートブックの例を示します。

次の表は、Azure Databricks で提供される MosaicML 推論とモデル間のパリティをまとめたものです。

MosaicML 推論 Mosaic AI Model Serving
create_inference_deployment Model Serving エンドポイントを作成する
update_inference_deployment Model Serving エンドポイントを更新する
delete_inference_deployment Model Serving エンドポイントを削除する
get_inference_deployment Model Serving エンドポイントの状態を取得する

次のノートブックは、llama-13b モデルを MosaicML から Mosaic AI Model Serving に移行する場合のガイド付き例を示しています。

MosaicML 推論から Mosaic AI Model Serving への移行のノートブック

ノートブックを入手

その他のリソース