gpt4 book ai didi

python - 在 AzureML 上管理训练/测试/验证拆分的最佳方法

转载 作者:行者123 更新时间:2023-12-02 23:25:54 27 4
gpt4 key购买 nike

我目前正在使用 AzureML 来处理涉及大型数据集等的相当复杂的工作流程,我想知道管理预处理步骤的拆分结果的最佳方法是什么。我的所有项目都是作为由注册数据集提供的管道构建的。我希望能够跟踪拆分,以便轻松检索例如用于集成测试目的的测试集和验证集。

在那里应用的最佳模式是什么?将每个中间集注册为不同的数据集?使用运行 ID 直接检索中间集? ...

谢谢

最佳答案

我希望我有一个更连贯的答案,好处是你处于最前沿,所以,如果你找到适合你的模式,你可以传播它并使其成为最佳实践!希望您发现我下面的咆哮很有值(value)。

首先 - 如果您还没有这样做,那么您绝对应该使用 PipelineData 作为通过 PipelineStep 传递数据的中间工件。通过这种方式,您可以将 PipelineData 视为半临时的,因为它们会在您需要时具体化,但并不要求保留每个 的每个版本。 >管道数据。您始终可以使用 Azure 存储资源管理器获取它们,或者像您所说的那样,使用 SDK 并从 PipelineRun 对象向下走。

另一个建议是将您的工作流程分成以下管道:

  • 特征化管道(所有连接、修改和特征化)
  • 培训管道
  • 评分管道(如果您有批量评分场景)。

管道内工件是PipelineData,管道间工件将是注册数据集。

为了真正解决将数据拆分与模型关联在一起的问题,我们的团队为此苦苦挣扎——特别是因为对于每个训练、测试、拆分,我们还有一个“额外的列”,其中包含标识符或泄漏变量,模型不应该看到的。

在我们当前的 hack 实现中,我们将“黄金”数据集注册为特征化管道末尾的 Azure ML 数据集。我们训练管道的第一步是PythonScriptStep,“分割数据”,其中包含我们的训练、测试、分割步骤,并将腌制字典输出为data.pkl。然后,我们可以在需要其中一个拆分时随时取消pickle,并可以使用索引重新连接以满足任何报告需求。这是 gist .

关于python - 在 AzureML 上管理训练/测试/验证拆分的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62538688/

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