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

问题描述 投票:0回答:2

在计算目标上执行训练脚本期间,我们正尝试从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)

重要注意事项:数据集已注册到数据湖中的路径,该路径包含许多子文件夹(以及子子文件夹,..),这些子文件夹包含大约170Kb的小文件。

注意:我可以在几分钟内使用az copy或Storage Explorer将完整的数据集下载到本地计算机。同样,在文件夹阶段使用通配符**定义数据集以扫描子文件夹:datalake/relative/path/to/folder/**

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

谢谢!

python azure azure-data-lake azure-machine-learning-service azure-data-lake-gen2
2个回答
0
投票

[DataTransferStep创建一个在其间传输数据的Azure ML管道步骤。

请遵循下面的DataTransferStep类。https://docs.microsoft.com/en-us/python/api/azureml-pipeline-steps/azureml.pipeline.steps.data_transfer_step.datatransferstep?view=azure-ml-py


0
投票

编辑为更具答案的样式:

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

[当前,计算实例映像随附预装了1-2个月的azureml-core 1.0.83和azureml-dataprep 1.1.35。您可能甚至使用了较旧的版本。您可以通过在笔记本中运行来尝试升级:

%pip install -U azureml-sdk

您甚至可以尝试安装experimental version.

%pip install -U --pre azureml-sdk

如果您看不到方案的任何改进,则可以在官方文档页面上提交问题,以找人帮助调试您的问题,例如FileDataset的参考页。

© www.soinside.com 2019 - 2024. All rights reserved.