From 297292d9673c160bd0fdaa145fba0202b615489b Mon Sep 17 00:00:00 2001 From: Srujan Saggam <41802116+srsaggam@users.noreply.github.com> Date: Thu, 9 Mar 2023 14:11:20 -0800 Subject: [PATCH] Schema improvements for Interactive Jobs (#2109) * new schema changes * black format --- cli/jobs/basics/hello-interactive.yml | 14 +++++----- .../1b_e2e_registered_components/pipeline.yml | 14 +++++----- .../debug-and-monitor/debug-and-monitor.ipynb | 26 ++++++++++--------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/cli/jobs/basics/hello-interactive.yml b/cli/jobs/basics/hello-interactive.yml index b50ab4f033..8feb26b61c 100644 --- a/cli/jobs/basics/hello-interactive.yml +++ b/cli/jobs/basics/hello-interactive.yml @@ -4,17 +4,15 @@ code: src environment: azureml:AzureML-tensorflow-2.7-ubuntu20.04-py38-cuda11-gpu@latest compute: azureml:cpu-cluster -services: - my_vscode: +services: + my_vscode: job_service_type: vs_code - my_jupyter_lab: + my_jupyter_lab: job_service_type: jupyter_lab my_tensorboard: job_service_type: tensor_board - properties: - logDir: "outputs/tblogs" + log_dir: "outputs/tblogs" # my_ssh: # job_service_type: tensor_board -# properties: -# sshPublicKeys: -# nodes: all # Use the `nodes` property for a distributed job to run interactive services on all nodes. If `nodes` are not selected, by default, interactive applications are only enabled on the head node. +# ssh_public_keys: +# nodes: all # Use the `nodes` property for a distributed job to run interactive services on all nodes. If `nodes` are not selected, by default, interactive applications are only enabled on the head node. \ No newline at end of file diff --git a/cli/jobs/pipelines-with-components/basics/1b_e2e_registered_components/pipeline.yml b/cli/jobs/pipelines-with-components/basics/1b_e2e_registered_components/pipeline.yml index 093a60afe4..6720354dd9 100644 --- a/cli/jobs/pipelines-with-components/basics/1b_e2e_registered_components/pipeline.yml +++ b/cli/jobs/pipelines-with-components/basics/1b_e2e_registered_components/pipeline.yml @@ -32,21 +32,19 @@ jobs: learning_rate_schedule: ${{parent.inputs.pipeline_job_learning_rate_schedule}} outputs: model_output: ${{parent.outputs.pipeline_job_trained_model}} - services: - my_vscode: + services: + my_vscode: job_service_type: vs_code - my_jupyter_lab: + my_jupyter_lab: job_service_type: jupyter_lab my_tensorboard: job_service_type: tensor_board - properties: - logDir: "outputs/tblogs" + log_dir: "outputs/tblogs" # my_ssh: # job_service_type: tensor_board - # properties: - # sshPublicKeys: + # ssh_public_keys: # nodes: all # Use the `nodes` property to pick which node you want to enable interactive services on. If `nodes` are not selected, by default, interactive applications are only enabled on the head node. - + score_job: type: command component: azureml:my_score@latest diff --git a/sdk/python/jobs/single-step/debug-and-monitor/debug-and-monitor.ipynb b/sdk/python/jobs/single-step/debug-and-monitor/debug-and-monitor.ipynb index f1e40e5f7f..8d48cd3ebe 100644 --- a/sdk/python/jobs/single-step/debug-and-monitor/debug-and-monitor.ipynb +++ b/sdk/python/jobs/single-step/debug-and-monitor/debug-and-monitor.ipynb @@ -121,6 +121,14 @@ }, "outputs": [], "source": [ + "from azure.ai.ml.entities import (\n", + " JobService,\n", + " SshJobService,\n", + " VsCodeJobService,\n", + " TensorBoardJobService,\n", + " JupyterLabJobService,\n", + ")\n", + "\n", "# create the command\n", "job = command(\n", " code=\"./src\", # local path where the code is stored\n", @@ -129,22 +137,16 @@ " compute=\"cpu-cluster\",\n", " display_name=\"debug-and-monitor-example\",\n", " services={\n", - " \"My_jupyterlab\": JobService(\n", - " job_service_type=\"jupyter_lab\",\n", - " ),\n", - " \"My_vscode\": JobService(\n", - " job_service_type=\"vs_code\",\n", - " ),\n", - " \"My_tensorboard\": JobService(\n", - " job_service_type=\"tensor_board\",\n", + " \"My_jupyterlab\": JupyterLabJobService(),\n", + " \"My_vscode\": VsCodeJobService(),\n", + " \"My_tensorboard\": TensorBoardJobService(\n", " properties={\n", " \"logDir\": \"outputs/tblogs\" # relative path of Tensorboard logs (same as in your training script)\n", " },\n", " ),\n", - " # \"My_ssh\": JobService(\n", - " # job_service_type=\"ssh\",\n", + " # \"My_ssh\": SshJobService(\n", " # nodes=\"all\", # For distributed jobs, use the `nodes` property to pick which node you want to enable interactive services on. If `nodes` are not selected, by default, interactive applications are only enabled on the head node. Values are \"all\", or compute node index (for ex. \"0\", \"1\" etc.)\n", - " # properties={\"sshPublicKeys\": \"\"},\n", + " # ssh_public_keys=\"\",\n", " # ),\n", " }\n", " # experiment_name: debug-and-monitor-example\n", @@ -221,4 +223,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file