Установка частного колеса Python из учетной записи хранения

Я использую общую учетную запись хранения во всех наших рабочих областях AML. Я регистрирую эту учетную запись хранения в каждой рабочей области и использую ее для обмена данными и библиотеками при нацеливании на вычисления AML. Чтобы установить частное колесо Python, нам в настоящее время необходимо загрузить пакет локально и использовать Environment.add_private_pip_wheel, чтобы загрузить его и получить удаленный URL-адрес пакета. Я хотел бы знать, есть ли способ передать ссылку на пакет в общей учетной записи хранения вместо того, чтобы перемещать ее в учетную запись хранения рабочей области по умолчанию.

Я попытался передать полный URL-адрес большого двоичного объекта (например, https://mystorageaccount.blob.core.windows.net/mypackage.whl) в параметре зависимости pip_packages к классу оценки TensorFlow, но выполнение эксперимента завершается ошибкой 404: указанный ресурс не существует для url https://mystorageaccount.blob.core.windows.net/mypackage.whl

from azureml.train.dnn import TensorFlow
from azureml.core.runconfig import MpiConfiguration

project_folder = "./myproject"

dependencies = ["https://mystorageaccount.blob.core.windows.net/mypackage.whl"]

script_params={
  "--data_dir":data_dir.as_mount(),
  "--output_dir":output_data.as_mount(),
  "--do_train":"True",
  "--do_eval":"False",
  "--do_predict":"False",
}

mpiConfig = MpiConfiguration()
mpiConfig.process_count_per_node = 1
estimator= TensorFlow(source_directory=project_folder,
                      compute_target=compute_target,
                      script_params=script_params,
                      entry_script='./train_classifier.py',
                      node_count=1,
                      distributed_training=mpiConfig,
                      pip_packages=dependencies,
                      framework_version='1.13',
                      use_gpu=True)

Поскольку учетная запись хранения была зарегистрирована в рабочей области, я ожидаю, что смогу установить частный пакет напрямую (используя приведенный выше код) из общей учетной записи хранения в вычисление AML без необходимости загружать его локально и затем вызывать функцию Environment.add_private_pip_wheel.

Вместо этого я получаю следующую ошибку, и эксперимент терпит неудачу:

(из -r /azureml-environment-setup/condaenv.kc80np3o.requirements.txt (строка 1)) из-за ошибки HTTP 404. Ошибка клиента: указанный ресурс не существует. для URL: https://mystorageaccount.blob.core.windows.net/mypackage.whl ...

CondaValueError: pip вернул ошибку


person MMM    schedule 15.08.2019    source источник


Ответы (1)


Если вы не хотите, чтобы ваша учетная запись хранения была общедоступной для чтения, вы можете создать URL-адрес SAS для вашего пакета whl, а затем передать его в зависимости pip. Тогда служба должна иметь доступ к пакету.

person Roope Astala - MSFT    schedule 15.08.2019
comment
Я понимаю, что это вариант, но мне было интересно, почему пакет SDK azureml не может использовать учетные данные, которые я передал при регистрации учетной записи / контейнера в качестве хранилища данных в рабочей области. - person MMM; 15.08.2019