AutoML с MLOps приводит ко мне сообщение об ошибке: не удалось найти предоставленный model_path

#azure #azure-devops #automl #mlops

#azure #azure-devops #automl #mlops

Вопрос:

Я пытаюсь обучить модель, используя функцию automl Azure, используя простой набор данных, который отлично работает при выполнении этого вручную или через ноутбук, но не работает в конвейере Azure devops. Создан конвейер Azure devops с обязательным подключением службы к рабочей области ML.

В приведенном ниже коде python указано, что необходимые файлы загружены, но я не могу найти модель при выполнении приведенной ниже команды для регистрации, тогда как код, указанный ниже, загрузил ее:

Я пытаюсь обучить модель с помощью команды az cli, а не с помощью python. Любое предложение. Сослался https://github.com/SaschaDittmann/MLOps-Lab в качестве ссылки, но изменен для части automl, поскольку этот репозиторий git не предназначен для автоматического ml, но остальные шаги те же.

регистр модели az ml -g $(azureml.ResourceGroup) -w $(azureml.workspaceName) -n $(model.Name ) -f metadata/run.json -выходные данные пути активов/модели/ abc.pkl -d «test» -тег «data»=»test» -model-framework ScikitLearn -t metadata/model.json

Приведенная выше команда всегда выдает мне:- {‘Azure-cli-ml Version’: ‘1.12.0’, ‘Error’: ModelPathNotFoundException: Сообщение: не удалось найти предоставленные выходы model_path/models/abc.pkl

##local_run — это другой идентификатор запуска для automl, а run.getContext() — текущий идентификатор запуска.

 automl_config = AutoMLConfig(task = 'classification',
                             primary_metric = 'accuracy',
                             X = X_train, 
                             y = y_train,
                             n_cross_validations = 2,
                             **automl_settings)

local_run = exp.submit(automl_config, show_output = True)

local_run = list(exp.get_runs())[0]

children = list(local_run.get_children())
metricslist = {}
for run in children:
    properties = run.get_properties()
    metrics = {k: v for k, v in run.get_metrics().items() if isinstance(v, float)}
    metricslist[int(properties['iteration'])] = metrics

rundata = pd.DataFrame(metricslist).sort_index(1)

best_run, fitted_model = local_run.get_output()
model_path = os.path.join(outputs_folder, model_filename)
#dump(fitted_model, model_path)

# upload the model file explicitly into artifacts

print("Uploading the model into run artifacts   RUN ***** ...")
run.upload_file(name="./outputs/models/"  `enter code here` model_filename, path_or_stream=model_path1)
run.upload_file("outputs/models/abc.pkl", path_or_stream=model_path1)
print("Uploaded the model {} to experiment {}".format(model_filename, run.experiment.name))
dirpath = os.getcwd()
print(dirpath)
print("Following files are uploaded ")
print(run.get_file_names())


print("Uploading the model into run artifacts  NEW **** ...")
local_run.upload_file(name="./outputs/models/"   model_filename, path_or_stream=model_path1)
local_run.upload_file("outputs/models/abc.pkl", path_or_stream=model_path1)
print("Uploaded the model {} to experiment {}".format(model_filename, local_run.experiment.name))
dirpath = os.getcwd()
print(dirpath)
print("Following files are uploaded ")
print(local_run.get_file_names())

run.complete()
  

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

1. Можете ли вы показать свой конвейер?

2. Привет @Ajay Singh, вы не могли бы поделиться примером здесь?