从 ADLS2 传输到计算目标的速度非常慢 Azure 机器学习

der*_*t71 5 python azure azure-data-lake azure-machine-learning-service azure-data-lake-gen2

在计算目标上执行训练脚本期间,我们尝试从 ADLS2 数据存储区下载已注册的数据集。问题是使用以下方法将 ~1.5Gb(分成 ~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)
Run Code Online (Sandbox Code Playgroud)

重要提示:数据集注册到 Datalake 中的一个路径,该路径包含许多子文件夹(以及子子文件夹,..),其中包含大约 170Kb 的小文件。

注意:az copy我可以使用存储资源管理器在几分钟内将完整的数据集下载到本地计算机。此外,数据集是在文件夹阶段定义的,并使用 ** 通配符扫描子文件夹:datalake/relative/path/to/folder/**

这是一个已知问题吗?如何提高传输速度?

谢谢 !

Mon*_*Kei 3

编辑得更像答案:

如果包含以下内容会很有帮助:您正在使用什么版本的 azureml-core 和 azureml-dataprep SDK、您作为计算实例运行的 VM 类型以及您的数据集是什么类型的文件(例如 jpg?txt?)使用。另外,您想通过将完整的数据集下载到您的计算机来实现什么目的?

目前,计算实例映像预装了 azureml-core 1.0.83 和 azureml-dataprep 1.1.35,它们已经存在 1-2 个月了。您可能正在使用更旧的版本。您可以尝试通过在笔记本中运行来升级:

%pip install -U azureml-sdk
Run Code Online (Sandbox Code Playgroud)

如果您没有看到您的场景有任何改进,您可以在官方文档页面上提交问题,让某人帮助调试您的问题,例如FileDataset的参考页面。

(于 2020 年 6 月 9 日编辑,删除了实验版本的提及,因为这种情况不再发生)