模型训练最佳实践 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

模型训练最佳实践

你可以做一些事情来提高 Neptune ML 模型的性能。

选择正确的节点属性

并非图表中的所有属性都可能都有意义或与机器学习任务相关。在数据导出过程中应该排除任何不相关的属性。

以下是一些最佳实践:

  • 使用领域专家帮助评估功能的重要性以及使用它们进行预测的可行性。

  • 删除您确定的冗余或不相关的功能,以减少数据中的噪音和不重要的相关性。

  • 在构建模型时迭代。随时调整功能、功能组合和调整目标。

特征处理Amazon Machine Learning 开发人员指南中提供了与 Neptune ML 相关的功能处理的其他指南。

处理异常值数据点

异常值是与其余数据显著不同的数据点。数据异常值可能会破坏或误导训练过程,从而导致训练时间更长或模型不准确。除非它们真的很重要,否则应在导出数据之前消除异常值。

移除重复的节点和边

存储在 Neptune 中的图形可能有重复的节点或边缘。这些冗余元素将为机器学习模型训练带来噪音。在导出数据之前消除重复的节点或边缘。

调整图形结构

导出图表时,可以更改处理要素的方式以及图形的构造方式,以提高模型性能。

以下是一些最佳实践:

  • 当边缘属性具有边类别的含义时,在某些情况下,值得将其转化为边缘类型。

  • 用于数值属性的默认标准化策略是min-max,但在某些情况下,其他正常化政策效果更好。您可以预处理该属性并更改标准化策略,如中所述的元素model-HPO-configuration.json文件.

  • 导出过程会根据属性类型自动生成要素类型。例如,它对待String属性作为分类功能和FloatInt属性作为数字要素。如果需要,可以在导出后修改要素类型(请参阅的元素model-HPO-configuration.json文件)。

优化超参数范围和默认值

数据处理操作从图表中推断超参数配置范围。如果生成的模型超参数范围和默认值不适用于图形数据,则可以编辑 HPO 配置文件以创建自己的超参数调整策略。

以下是一些最佳实践:

  • 当图形变大时,默认的隐藏尺寸大小可能不足以包含所有信息。您可以更改num-hidden用于控制隐藏的尺寸大小的超参数。

  • 对于知识图嵌入 (KGE) 模型,您可能需要根据图形结构和预算更改正在使用的特定模型。

    TrainsE模型难以处理一对多 (1-N)、多对一 (N-1) 和多对多 (NN) 关系。DistMult模型很难处理对称关系。RotatE擅长建模各种关系但比昂贵TrainsEDistMult在训练期间。

  • 在某些情况下,当节点标识和节点要素信息都很重要时,应使用`concat-node-embed`告诉 Neptune ML 模型通过将节点的特征与初始嵌入连接来获得节点的初始表示形式。

  • 当你比某些超参数获得相当好的性能时,你可以根据这些结果调整超参数搜索空间。

提前停止 Neptune ML 中的模型训练过程

提前停止可以显著减少模型训练的运行时间和相关成本,而不会降低模型性能。它还可以防止模型对训练数据进行过度拟合。

提前停止取决于对验证集性能的定期测量。最初,随着训练的进行,性能提高,但是当模型开始过度拟合时,它开始再次下降。早期停止功能标识模型开始过度拟合的点,并在此时停止模型训练。

Neptune ML 监控验证指标调用,并将最近的验证指标与过去的验证指标的平均值进行比较n评估,哪里n是使用window-for-early-stop参数。一旦验证指标比平均值差,Neptune ML 就会停止模型训练并保存迄今为止最好的模型。

您可以使用以下参数控制提前停止:

  • call_to_consider_early_stop— 指定开始考虑提前停止的评估调用。原定设置值为 0。

    例如,将此参数设置为 4 会导致 Neptune ML 出于提前停止目的跳过前 3 个评估呼叫,并且只考虑在第四个呼叫时提前停止。忽略一些初步评估调用可以避免训练开始时由于不相关的验证指标振荡所引发的提前停止。

  • window-for-early-stop— 此参数的值是一个整数,它指定在决定提前停止时要平均的最近验证分数。默认值为 3

  • enable_early_stop— 使用此布尔值参数关闭提前停止功能。默认情况下,其值为 true

在 Neptune ML 中提前停止 HPO 流程

Neptune 机器学习中的早停功能还可以使用 SageMaker HPO 热启动功能停止与其他训练作业相比表现不佳的训练作业。这也可以降低成本并提高 HPO 的质量。

请参阅运行热启动超参数调整作业有关如何运作的说明。

暖起步提供了将从以前培训工作中学到的信息传递给后续培训工作的能力,并提供两个明显的好处:

  • 首先,以前训练作业的结果用于选择超参数的良好组合,以便在新的优化作业中进行搜索。

  • 其次,它允许提前停止以访问更多模型运行,从而缩短调整时间。

此功能在 Neptune ML 中自动启用,并允许您在模型训练时间和性能之间取得平衡。如果你对当前模型的性能感到满意,你可以使用该模型。否则,你会运行更多的 HPO,这些 HPO 是以前的运行结果开始的,以便发现更好的模型。

获取专业的支持服务

Amazon提供专业的支持服务,帮助您解决 Neptune 项目中的机器学习问题。如果你陷入困境,请联系Amazon支撑.