Во время обучающего скрипта, выполняемого на целевой вычислительной машине, мы пытаемся загрузить зарегистрированный набор данных из хранилища данных ADLS2. Проблема в том, что для загрузки ~ 1,5 ГБ (разбитых на ~ 8500 файлов) в целевой объект вычислений с помощью следующего метода требуется часов:
from azureml.core import Datastore, Dataset, Run, Workspace
# Retrieve the run context to get Workspace
RUN = Run.get_context(allow_offline=True)
# Retrieve the workspace
ws = RUN.experiment.workspace
# Creating the Dataset object based on a registered Dataset
dataset = Dataset.get_by_name(ws, name='my_dataset_registered')
# Download the Dataset locally
dataset.download(target_path='/tmp/data', overwrite=False)
Важное примечание: набор данных регистрируется по пути в Datalake, который содержит множество подпапок (а также подпапок, ..), содержащих небольшие файлы размером около 170 КБ.
Примечание. Я могу загрузить полный набор данных на локальный компьютер в течение нескольких минут с помощью az copy
или Storage Explorer. Кроме того, набор данных определяется на этапе папки с подстановочным знаком ** для сканирования вложенных папок: datalake/relative/path/to/folder/**
Это известная проблема? Как я могу улучшить скорость передачи?
Спасибо !