Как отправить входные данные набора данных в качестве параметра в AZ ML CLI выполнить команду submit-pipeline?

#azure #azure-pipelines #azure-cli #azure-machine-learning-service

Вопрос:

Чтобы отправить параметр в команде az ml run submit-pipeline cli, мы используем синтаксис:

 az ml run submit-pipeline –datapaths [DataPATHS Name=datastore/datapath] --experiment-name [Experiment_Name] --parameters [String_parameters Name=Value] --pipeline-id [ID]--resource-group [RGP] --subscription-id [SUB_ID] --workspace-name [AML_WS_NAME]
 

Это приведет к отправке путей к данным и некоторых строковых параметров с конвейером. Как мы отправляем ссылки на набор данных с помощью команды az ml run submit-pipeline cli?

Например, Блокнот документации: aml-конвейеры-демонстрация-набор данных-и-конвейерный параметр

Чтобы отправить ссылку на класс набора данных, мы делаем:

 iris_tabular_ds = Dataset.Tabular.from_delimited_files('link/iris.csv')
pipeline_run_with_params = experiment.submit(pipeline, pipeline_parameters={'tabular_ds_param': iris_tabular_ds})
 

При использовании вызова REST синтаксис таков:

 response = requests.post(rest_endpoint, 
                         headers=aad_token, 
                         json={"ExperimentName": "MyRestPipeline",
                               "RunSource": "SDK",
                               "DataSetDefinitionValueAssignments": { "tabular_ds_param": {"SavedDataSetReference": {"Id": iris_tabular_ds.id}}}
                              }
                        )
 

Каков синтаксис для достижения этой цели с помощью az ml cli ?

Комментарии:

1. az ml run submit-pipeline --datapaths tabular_ds_param=[datastore]/[registered-dataset] --experiment-name [exp-name]-exp --pipeline-id [pipeline-id] --resource-group $(AML_RG) --subscription-id $(AML_SUB_ID) --workspace-name $(AML_WS) не работает.

Ответ №1:

Чтобы использовать это из интерфейса командной строки AZ ML, мы используем следующий синтаксис:

     curl -X POST [Pipeline_REST_Endpoint] -H "Authorization: Bearer $(az account get-access-token --query accessToken -o tsv)" -H "Content-Type: application/json" --data-binary @- <<DATA
{"ExperimentName": "[ExperimentName]",
                               "RunSource": "SDK",
                               "DataSetDefinitionValueAssignments": {"tabular_ds_param": 
                                                                     {"SavedDataSetReference": 
                                                                      {"Id":"[Dataset_ID]"}
                                                                     }
                                                                    }
                              }
DATA
 

Мы используем простой вызов REST, потому az ml run submit-pipeline что в нем нет параметра dataset, а datapath не достигает желаемого результата.