パイプライン エンドポイントを SDK v2 にアップグレードする

パイプラインを起動して実行すると、パイプラインを発行することができるため、さまざまな入力で実行されます。 これは公開済みパイプラインと呼ばれていたものです。

どのような点が変わりましたか?

Batch Endpoint では、永続的な API で実行されている複数の資産を処理するための同様の強力な方法が提案されています。そのため、発行されたパイプライン機能はバッチ エンドポイントのパイプライン コンポーネント デプロイに移動されました。

バッチ エンドポイントは、インターフェイス (エンドポイント) を実際の実装 (デプロイ) から切り離し、エンドポイントの既定の実装を提供するデプロイをユーザーが決定できるようにします。 バッチ エンドポイントでパイプライン コンポーネントのデプロイを使用すると、ユーザーはパイプラインではなくパイプライン コンポーネントをデプロイできるようになります。これにより、MLOps プラクティスを効率化しようとしている組織向けに、再利用可能なアセットをより有効に使用できます。

次の表は、各概念の比較を示しています。

概念 SDK v1 SDK v2
呼び出し用のパイプラインの REST エンドポイント パイプライン エンドポイント バッチ エンドポイント
エンドポイント下のパイプラインの特定のバージョン 公開されたパイプライン パイプライン コンポーネント デプロイ
呼び出し時のパイプラインの引数 パイプライン パラメーター ジョブの入力
公開されたパイプラインから生成されるジョブ パイプライン ジョブ バッチ ジョブ

最初のパイプライン コンポーネント デプロイを作成する方法については、バッチ エンドポイントでパイプラインをデプロイする方法に関するページを参照してください。

バッチ エンドポイントへの移動

バッチ エンドポイントの概念を使用して SDK v1 から SDK v2 に移行する方法については、次のガイドラインを使用してください。

パイプラインを発行する

パイプラインの公開が v1 から v2 でどのように変わったかを比較します。

  1. まず、公開するパイプラインを取得する必要があります。

    pipeline1 = Pipeline(workspace=ws, steps=[step1, step2])
    
  2. パイプラインは次のようにして公開できます。

    from azureml.pipeline.core import PipelineEndpoint
    
    endpoint_name = "PipelineEndpointTest"
    pipeline_endpoint = PipelineEndpoint.publish(
        workspace=ws, 
        name=endpoint_name,
        pipeline=pipeline, 
        description="A hello world endpoint for component deployments"
    )
    

パイプライン エンドポイントにジョブを送信する

パイプラインの既定のバージョンを呼び出すには、次を使用できます。

pipeline_endpoint = PipelineEndpoint.get(workspace=ws, name="PipelineEndpointTest")
run_id = pipeline_endpoint.submit("PipelineEndpointExperiment")

また、特定のバージョンにジョブを送信することもできます。

run_id = pipeline_endpoint.submit(endpoint_name, pipeline_version="0")

すべてのパイプラインをデプロイする

all_pipelines = PublishedPipeline.get_all(ws)

REST API を使用して

URL 呼び出しの REST API を使用して、エンドポイントからジョブを作成できます。 v1 から v2 で呼び出しがどのように変わったかについては、次の例を参照してください。

pipeline_endpoint = PipelineEndpoint.get(workspace=ws, name=endpoint_name)
rest_endpoint = pipeline_endpoint.endpoint

response = requests.post(
    rest_endpoint, 
    headers=aad_token, 
    json={
        "ExperimentName": "PipelineEndpointExperiment",
        "RunSource": "API",
        "ParameterAssignments": {"argument1": "united", "argument2":45}
    }
)

次のステップ