From 9241744735a11c589db7f10d91f4095202f05bba Mon Sep 17 00:00:00 2001 From: Ankita Bhagat Date: Fri, 22 Aug 2025 17:39:11 -0500 Subject: [PATCH 1/2] Sample pipeline with dummy dependencies --- .../echo_component.yml | 14 + .../images/Scenario_Pipeline_Flow.png | Bin 0 -> 17841 bytes ...ith_step_sequence_dummy_dependencies.ipynb | 423 ++++++++++++++++++ 3 files changed, 437 insertions(+) create mode 100644 sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/echo_component.yml create mode 100644 sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/images/Scenario_Pipeline_Flow.png create mode 100644 sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/pipeline_with_step_sequence_dummy_dependencies.ipynb diff --git a/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/echo_component.yml b/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/echo_component.yml new file mode 100644 index 0000000000..0c52a33ff4 --- /dev/null +++ b/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/echo_component.yml @@ -0,0 +1,14 @@ +$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json +name: echo_component +display_name: Echo Hello +version: 1 +type: command +description: A component that just echoes hello + +outputs: + output_data: + type: uri_folder + +command: echo "hello" > ${{outputs.output_data}}/message.txt + +environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest \ No newline at end of file diff --git a/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/images/Scenario_Pipeline_Flow.png b/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/images/Scenario_Pipeline_Flow.png new file mode 100644 index 0000000000000000000000000000000000000000..b48407a1aafb3e94ad3fbc5afb8e68be14b67d6a GIT binary patch literal 17841 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 literal 0 HcmV?d00001 diff --git a/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/pipeline_with_step_sequence_dummy_dependencies.ipynb b/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/pipeline_with_step_sequence_dummy_dependencies.ipynb new file mode 100644 index 0000000000..4cf75f861a --- /dev/null +++ b/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/pipeline_with_step_sequence_dummy_dependencies.ipynb @@ -0,0 +1,423 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3e959973-6fbc-481c-99ba-6ed8f057b195", + "metadata": {}, + "source": [ + "# Enabling Step Sequencing in AzureML SDK v2" + ] + }, + { + "cell_type": "markdown", + "id": "b7351744-08a7-4e5e-9727-7745871c904a", + "metadata": {}, + "source": [ + "AzureML SDK v2 does not include a direct equivalent of the `StepSequence` feature from SDK v1. This change means pipelines no longer support explicit ordering through a `StepSequence` object. Instead, SDK v2 relies heavily on data dependencies to define the execution order of steps as mentioned [here](https://learn.microsoft.com/en-us/azure/machine-learning/migrate-to-v2-execution-pipeline?view=azureml-api-2#mapping-of-key-functionality-in-sdk-v1-and-sdk-v2).\n", + "\n", + "**Recommended Workaround** - Dummy Data Dependencies" + ] + }, + { + "cell_type": "markdown", + "id": "126938da-385d-4c5e-a311-5f0ff1426d5e", + "metadata": {}, + "source": [ + "**SDK v1 ↔ SDK v2: Feature Mapping**\n", + "\n", + "The migration documentation highlights how core pipeline concepts translate between versions:\n", + "\n", + "| **SDK v1 Functionality** | **SDK v2 Equivalent** |\n", + "|---------------------------------|-------------------------------------------|\n", + "| `azureml.pipeline.core.Pipeline` | `azure.ai.ml.dsl.pipeline` |\n", + "| `OutputDatasetConfig` | `Output` |\n", + "| `Dataset .as_mount()` | `Input` |\n", + "| `StepSequence` | Data dependency via dummy inputs/outputs |\n", + "\n", + "This reinforces that, in SDK v2, data dependencies are the default mechanism to enforce step order." + ] + }, + { + "cell_type": "markdown", + "id": "8e669bb2-4f4d-4063-a2c9-a55b0cb02277", + "metadata": {}, + "source": [ + "### Scenario: Pipeline Step Execution Flow\n", + "\n", + "The diagram below represents the scenario we are creating with AzureML pipelines. \n", + "\n", + ">- **Step 1** runs first. \n", + ">- It then branches into **Step 2, Step 3, and Step 4** (which run in parallel). \n", + ">- The outputs of **Step 2, Step 3, and Step 4** converge into **Step 5**. \n", + ">- Finally, **Step 6** executes after Step 5 completes.\n", + "\n", + "\n", + "![Scenario Pipeline Flow](images/Scenario_Pipeline_Flow.png)" + ] + }, + { + "cell_type": "markdown", + "id": "7b8b1cbf-8961-4545-9033-a22f936d323c", + "metadata": {}, + "source": [ + "# 1. Connect to Azure Machine Learning Workspace" + ] + }, + { + "cell_type": "markdown", + "id": "9e5f8df8-090d-433a-9aa4-e022b8e80988", + "metadata": {}, + "source": [ + "The [workspace](https://docs.microsoft.com/en-us/azure/machine-learning/concept-workspace) is the top-level resource for Azure Machine Learning, providing a centralized place to work with all the artifacts you create when you use Azure Machine Learning. In this section we will connect to the workspace in which the job will be run." + ] + }, + { + "cell_type": "markdown", + "id": "113b552e-1a68-4062-91b5-e7b1716f7d2f", + "metadata": {}, + "source": [ + "## 1.1 Import the required libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5395a1e7-6d3b-4915-b5a0-d4408ac1adfe", + "metadata": {}, + "outputs": [], + "source": [ + "from azure.ai.ml.entities import CommandComponent\n", + "from azure.ai.ml import dsl\n", + "from azure.ai.ml.entities import AmlCompute\n", + "from azure.ai.ml import load_component\n", + "from azure.ai.ml import MLClient\n", + "from azure.ai.ml.dsl import pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "14b61903-cfbf-4319-bf2f-4d945b8735c0", + "metadata": {}, + "source": [ + "## 1.2 Configure credential" + ] + }, + { + "cell_type": "markdown", + "id": "0027b717-3822-4ad7-8fac-9be670d0dfd0", + "metadata": {}, + "source": [ + "We are using `DefaultAzureCredential` to get access to workspace. `DefaultAzureCredential` should be capable of handling most Azure SDK authentication scenarios.\n", + "\n", + "Reference for more available credentials if it does not work for you: [configure credential example](https://github.com/Azure/azureml-examples/blob/902929725e8d713447c99f80e4530c83075ecd9b/sdk/python/jobs/configuration.ipynb), [azure-identity reference doc](https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity?view=azure-python)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b78708e3-7c6d-4bd2-9b23-18b289242ffd", + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " credential = DefaultAzureCredential()\n", + " # Check if given credential can get token successfully.\n", + " credential.get_token(\"https://management.azure.com/.default\")\n", + "except Exception as ex:\n", + " # Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work\n", + " credential = InteractiveBrowserCredential()" + ] + }, + { + "cell_type": "markdown", + "id": "fd240f09-4a83-462b-b0ee-b520d30d0d52", + "metadata": {}, + "source": [ + "## 1.3 Get a handle to the workspace" + ] + }, + { + "cell_type": "markdown", + "id": "73d2a54f-296d-40d2-8e87-f2103acf40c4", + "metadata": {}, + "source": [ + "We use config file to connect to a workspace. The Azure ML workspace should be configured with computer cluster. [Check this notebook for configure a workspace](https://github.com/Azure/azureml-examples/blob/902929725e8d713447c99f80e4530c83075ecd9b/sdk/python/jobs/configuration.ipynb)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5cff28bc-1bbf-4631-ba40-946ac2313408", + "metadata": {}, + "outputs": [], + "source": [ + "# Get a handle to workspace\n", + "ml_client = MLClient.from_config(credential=credential)\n", + "\n", + "# Retrieve an already attached Azure Machine Learning Compute.\n", + "cluster_name = \"cpu-cluster\"\n", + "print(ml_client.compute.get(cluster_name))" + ] + }, + { + "cell_type": "markdown", + "id": "dd611068-e6a9-43e3-90d4-34f45c2b3352", + "metadata": {}, + "source": [ + "# 2. Define and create components into workspace" + ] + }, + { + "cell_type": "markdown", + "id": "84b8e0d0-1c21-4430-9fb8-982cf6739dda", + "metadata": {}, + "source": [ + "## 2.1 Load components from YAML" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ab169f6-ba10-444f-b840-7acf16bf0422", + "metadata": {}, + "outputs": [], + "source": [ + "parent_dir = \".\"\n", + "\n", + "def test_function():\n", + " return load_component(source=parent_dir + \"/echo_component.yml\")" + ] + }, + { + "cell_type": "markdown", + "id": "9b874901-f4ca-4c06-90ed-3aad2dff9a44", + "metadata": {}, + "source": [ + "## 2.2 Inspect loaded component" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7123ee3d-281e-4d89-aa89-ca7034c4739e", + "metadata": {}, + "outputs": [], + "source": [ + "# Print the component as yaml\n", + "print(test_function())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5b40dc7b-3d47-4871-9892-acfeb96bc4a9", + "metadata": {}, + "outputs": [], + "source": [ + "# Inspect more information\n", + "print(type(test_function()))\n", + "help(test_function()._func)" + ] + }, + { + "cell_type": "markdown", + "id": "3137e9e4-3efc-4ee8-acc3-86028d150a7b", + "metadata": {}, + "source": [ + "## 2.3 Define a component inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce450afe-a0f5-4661-b206-b1497191118d", + "metadata": {}, + "outputs": [], + "source": [ + "# defining a component inline in Python using the SDK\n", + "component_dummy = CommandComponent(\n", + " name=\"dummy_component\",\n", + " display_name=\"Dummy Component\",\n", + " description=\"A dummy component for pipeline steps\",\n", + " command=\"echo hello\",\n", + " environment=\"azureml://registries/azureml/environments/sklearn-1.5/labels/latest\",\n", + " outputs={\"output_data\": {\"type\": \"uri_folder\"}}\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99d6d698-0c5e-4f42-be71-3f6c6f70e8d5", + "metadata": {}, + "outputs": [], + "source": [ + "# Step 1\n", + "@pipeline(name=\"step1_pipeline\", description=\"Step 1\")\n", + "def pipeline_step1():\n", + " step1 = test_function()()\n", + " step1_out = component_dummy()\n", + " return {\"step1_output\": step1_out.outputs.output_data}\n", + "\n", + "# Step 2\n", + "@pipeline(name=\"step2_pipeline\", description=\"Step 2\")\n", + "def pipeline_step2(step_input:str):\n", + " step2 = test_function()()\n", + " dummy_step2 = component_dummy()\n", + " return {\"step2_output\": dummy_step2.outputs.output_data}\n", + "\n", + "# Step 3\n", + "@pipeline(name=\"step3_pipeline\", description=\"Step 3\")\n", + "def pipeline_step3(step_input:str):\n", + " step3 = test_function()()\n", + " dummy_step3 = component_dummy()\n", + " return {\"step3_output\": dummy_step3.outputs.output_data}\n", + "\n", + "# Step 4\n", + "@pipeline(name=\"step4_pipeline\", description=\"Step 4\")\n", + "def pipeline_step4(step_input:str):\n", + " step4 = test_function()()\n", + " dummy_step4 = component_dummy()\n", + " return {\"step4_output\": dummy_step4.outputs.output_data}\n", + "\n", + "# Step 5 (converge)\n", + "@pipeline(name=\"step5_pipeline\", description=\"Step 5\")\n", + "def pipeline_step5(step2_in:str, step3_in:str, step4_in:str):\n", + " step5 = test_function()()\n", + " dummy_step5 = component_dummy()\n", + " return {\"step5_output\": dummy_step5.outputs.output_data}\n", + "\n", + "# Step 6 (final)\n", + "@pipeline(name=\"step6_pipeline\", description=\"Step 6\")\n", + "def pipeline_step6(step5_in:str):\n", + " step6 = test_function()()\n", + " dummy_step6 = component_dummy()\n", + " return {\"final_output\": dummy_step6.outputs.output_data}" + ] + }, + { + "cell_type": "markdown", + "id": "53b0af07-9c3d-409f-a491-9e5f66849eb4", + "metadata": {}, + "source": [ + "# 3. Sample pipeline job" + ] + }, + { + "cell_type": "markdown", + "id": "7918ac4d-ebe1-4d0a-80da-402060e3fc7f", + "metadata": {}, + "source": [ + "## 3.1 Build pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0a91ed96-909e-4859-9780-cdf7d3b02bb0", + "metadata": {}, + "outputs": [], + "source": [ + "# define a pipeline\n", + "@pipeline(name=\"step_sequence_pipeline\", description=\"Step sequence pipeline with branching\")\n", + "def pipeline_with_step_sequence():\n", + " s1 = pipeline_step1()\n", + " s2 = pipeline_step2(s1.outputs.step1_output)\n", + " s3 = pipeline_step3(s1.outputs.step1_output)\n", + " s4 = pipeline_step4(s1.outputs.step1_output)\n", + " \n", + " s5 = pipeline_step5(s2.outputs.step2_output, s3.outputs.step3_output, s4.outputs.step4_output)\n", + " s6 = pipeline_step6(s5.outputs.step5_output)\n", + " \n", + " return {\"pipeline_output\": s6.outputs.final_output}\n", + "\n", + "\n", + "\n", + "pipeline_job = pipeline_with_step_sequence()\n", + "\n", + "# set pipeline level compute\n", + "pipeline_job.settings.default_compute = \"cpu-cluster\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "204cbd25-7e9c-4032-9e41-4dad583439df", + "metadata": {}, + "outputs": [], + "source": [ + "print(pipeline_job)" + ] + }, + { + "cell_type": "markdown", + "id": "af39698f-0259-4786-ae98-34d67f90b447", + "metadata": {}, + "source": [ + "## 3.2 Submit pipeline job" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b48711cd-003c-4157-bc10-c6d1470f6d01", + "metadata": {}, + "outputs": [], + "source": [ + "# submit job to workspace\n", + "pipeline_job = ml_client.jobs.create_or_update(\n", + " pipeline_job, experiment_name=\"pipeline_samples_branching\"\n", + ")\n", + "pipeline_job" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb7e616e-5074-43a5-be04-b22bfbcfa0e6", + "metadata": {}, + "outputs": [], + "source": [ + "# Wait until the job completes\n", + "ml_client.jobs.stream(pipeline_job.name)" + ] + }, + { + "cell_type": "markdown", + "id": "e8296316-862a-4ea7-abb9-13cd545bb15a", + "metadata": {}, + "source": [ + "# Next Steps" + ] + }, + { + "cell_type": "markdown", + "id": "fe39ba20-d988-495e-bbb8-d081ae2fed1d", + "metadata": {}, + "source": [ + "You can see further examples of running a pipeline job [here](https://github.com/Azure/azureml-examples/blob/902929725e8d713447c99f80e4530c83075ecd9b/sdk/python/jobs/pipelines/)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10 - SDK v2", + "language": "python", + "name": "python310-sdkv2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From ab6e236b8cd5a36df1be076c69a10ae64fbf46bd Mon Sep 17 00:00:00 2001 From: Ankita Bhagat Date: Mon, 25 Aug 2025 00:41:28 -0500 Subject: [PATCH 2/2] Rename folder 1m_pipeline_step_sequence_dummy_dependencies to stepsequence --- .../echo_component.yml | 0 .../images/Scenario_Pipeline_Flow.png | Bin ...line_with_step_sequence_dummy_dependencies.ipynb | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename sdk/python/jobs/pipelines/{1m_pipeline_step_sequence_dummy_dependencies => stepsequence}/echo_component.yml (100%) rename sdk/python/jobs/pipelines/{1m_pipeline_step_sequence_dummy_dependencies => stepsequence}/images/Scenario_Pipeline_Flow.png (100%) rename sdk/python/jobs/pipelines/{1m_pipeline_step_sequence_dummy_dependencies => stepsequence}/pipeline_with_step_sequence_dummy_dependencies.ipynb (100%) diff --git a/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/echo_component.yml b/sdk/python/jobs/pipelines/stepsequence/echo_component.yml similarity index 100% rename from sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/echo_component.yml rename to sdk/python/jobs/pipelines/stepsequence/echo_component.yml diff --git a/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/images/Scenario_Pipeline_Flow.png b/sdk/python/jobs/pipelines/stepsequence/images/Scenario_Pipeline_Flow.png similarity index 100% rename from sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/images/Scenario_Pipeline_Flow.png rename to sdk/python/jobs/pipelines/stepsequence/images/Scenario_Pipeline_Flow.png diff --git a/sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/pipeline_with_step_sequence_dummy_dependencies.ipynb b/sdk/python/jobs/pipelines/stepsequence/pipeline_with_step_sequence_dummy_dependencies.ipynb similarity index 100% rename from sdk/python/jobs/pipelines/1m_pipeline_step_sequence_dummy_dependencies/pipeline_with_step_sequence_dummy_dependencies.ipynb rename to sdk/python/jobs/pipelines/stepsequence/pipeline_with_step_sequence_dummy_dependencies.ipynb