gpt4 book ai didi

azure - 将多次运行提交到 AzureML 上的同一节点

转载 作者:行者123 更新时间:2023-12-04 17:09:39 24 4
gpt4 key购买 nike

我想使用 AzureML 执行超参数搜索。我的模型很小(大约 1GB),因此我想在同一个 GPU/节点上运行多个模型以节省成本,但我不知道如何实现这一点。

我当前提交作业的方式如下(导致每个 GPU/节点运行一次训练):

experiment = Experiment(workspace, experiment_name)
config = ScriptRunConfig(source_directory="./src",
script="train.py",
compute_target="gpu_cluster",
environment="env_name",
arguments=["--args args"])
run = experiment.submit(config)

ScriptRunConfig 可以与 distributed_job_config 一起提供。我尝试在那里使用 MpiConfiguration ,但如果这样做,运行会由于 MPI 错误而失败,该错误读取为集群配置为仅允许每个节点运行一次:

Open RTE detected a bad parameter in hostfile: [...]
The max_slots parameter is less than the slots parameter:
slots = 3
max_slots = 1
[...] ORTE_ERROR_LOG: Bad Parameter in file util/hostfile/hostfile.c at line 407

使用 HyperDriveConfig 也默认将一次运行提交到一个 GPU,另外提供 MpiConfiguration 会导致与上面所示的相同错误。

我想我总是可以重写我的训练脚本来并行训练多个模型,s.t.每次运行包含多个训练。不过,我想避免这种选择,因为这样日志记录和检查点写入会变得越来越困惑,并且需要对火车管道进行大规模重构。而且这个功能看起来很基本,我希望有一种方法可以优雅地做到这一点。有什么想法吗?

最佳答案

使用 Run.create_children 方法将启动父运行“本地”的子运行,并且不需要身份验证。

对于 AMLcompute,max_concurrent_runs 映射到将用于运行超参数调整运行的最大节点数。因此每个节点将执行 1 次。

部署了单个服务,但您可以在 init 中加载多个模型版本,然后评分函数根据请求的参数使用特定的模型版本进行评分。或使用新的 ML Endpoints(预览版)。 What are endpoints (preview) - Azure Machine Learning | Microsoft Docs

关于azure - 将多次运行提交到 AzureML 上的同一节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69751254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com