You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据直接从Azure Blob存储复制到计算实例SSD?

解决Azure ML自定义Docker环境下数据直接下载到计算实例SSD的问题

方法1:指定DataReference的计算实例SSD路径并配置Docker挂载

Azure ML默认的as_download()会将数据重定向到任务的网络临时挂载目录(/mnt/...),你需要显式指定计算实例本地SSD的路径,并让Docker容器挂载该路径,确保数据直接落盘到SSD且容器可访问:

  1. 确认计算实例SSD挂载点:登录计算实例执行df -h,本地SSD通常挂载在/datadrive(空间更大且稳定)。
  2. 定义指向SSD路径的DataReference:
from azureml.core import Datastore
from azureml.pipeline.steps import PythonScriptStep

# 获取你的Blob存储数据存储
datastore = Datastore.get(your_workspace, name="your_blob_datastore")
# 指定数据下载到计算实例SSD的路径
data_ref = datastore.path("blob_storage_data_path").as_download(path_on_compute="/datadrive/tmp/dataset")
  1. 配置Docker挂载该路径:在自定义环境中添加挂载参数,让容器内路径与计算实例路径完全一致:
from azureml.core import Environment

custom_env = Environment.get(your_workspace, name="your_custom_docker_env")
# 添加挂载:将计算实例的SSD目录映射到容器内同一路径
custom_env.docker.run_options = ["-v /datadrive/tmp/dataset:/datadrive/tmp/dataset"]
  1. 构建PythonScriptStep:确保输入参数指向该DataReference,脚本内直接使用/datadrive/tmp/dataset作为数据目录。

方法2:在训练脚本内手动下载数据到SSD

放弃as_download(),直接在训练脚本中调用Azure ML Dataset的download()方法,强制将数据下载到计算实例SSD目录:

  1. 训练脚本(train.py)中的下载逻辑:
from azureml.core import Dataset, Run

run = Run.get_context()
# 获取数据集
dataset = Dataset.get_by_name(run.experiment.workspace, name="your_dataset")
# 下载到计算实例SSD路径
dataset.download(target_path="/datadrive/tmp/dataset", overwrite=True)

# 后续训练代码使用该路径
data_dir = "/datadrive/tmp/dataset"
  1. 配置Docker挂载SSD路径:同样在自定义环境中添加挂载参数,让容器能访问该目录:
custom_env.docker.run_options = ["-v /datadrive/tmp/dataset:/datadrive/tmp/dataset"]

关键注意事项

  • 避免使用/tmp作为下载路径:Azure ML任务容器默认/tmp会映射到网络挂载的临时目录,无法利用SSD性能,务必使用计算实例本地SSD的挂载路径(如/datadrive)。
  • 权限验证:确保自定义Docker环境的用户对挂载目录有读写权限,可在Dockerfile中添加RUN chmod -R 755 /datadrive/tmp/dataset或指定匹配计算实例的用户ID。
  • 空间检查:提前确认计算实例SSD剩余空间足够存储下载的数据集。

内容的提问来源于stack exchange,提问作者Sina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:01:15