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

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

Neptune ML 中的模型训练制作的文物

模型训练后,Neptune ML 使用最佳训练的模型参数来生成启动推理端点和提供模型预测所必需的模型工件。这些工件由培训作业打包并存储在最佳 SageMaker 培训作业的 Amazon S3 输出位置中。

以下各节介绍了各种任务的模型工件中包含的内容,以及模型转换命令如何使用预先存在的训练模型生成构件,即使在新的图形数据上也是如何生成工件。

为不同任务生成的工件

训练过程生成的模型工件的内容取决于目标机器学习任务:

  • 节点分类和回归— 对于节点属性预测,工件包括模型参数、来自GNN 编码器、模型预测以及推理端点的一些配置文件。为节点分类和节点回归预先计算模型预测,以减少查询延迟。

  • 边缘分类和回归— 对于边缘属性预测,工件还包括模型参数和节点嵌入。模型解码器的参数对于推断尤其重要,因为我们通过将模型解码器应用于边缘源顶点和目标顶点的保存嵌体来计算边缘分类或边缘回归预测。

  • 链接预测— 对于链接预测,除了为边缘属性预测生成的工件之外,DGL 图还包括为对象,因为链接预测需要训练图来执行预测。链接预测的目标是预测可能与源顶点组合以形成图表中特定类型边缘的目标顶点。为此,将源顶点的节点嵌入和边缘类型的学习表示法与所有可能的目标顶点的节点嵌入结合在一起,以便为每个目标顶点生成边可能性分数。然后对分数进行排序,以便对潜在的目的地顶点进行排名并返回顶级候选人。

生成新的模型工件

在 Neptune ML 中模型训练之后生成的模型工件直接与训练图相关。这意味着推理端点只能为原始训练图中的实体提供预测。

为了获得已添加到图表的新实体的模型预测,需要为新的图形数据重新计算新模型工件。这是使用modeltransform命令。

由于模型训练会在训练过程结束时隐含地执行模型转换,因此训练作业始终在训练图数据上重新计算模型对象。但是,modeltransform命令还可以计算未用于训练模型的图形数据上的模型伪影。为此,必须使用与原始图形数据相同的要素编码来处理新的图形数据,并且必须遵守相同的图形模式。

您可以首先创建一个新的数据处理作业,该作业是在原始训练图数据上运行的数据处理作业的克隆,然后在新的图表数据上运行该作业(请参阅处理 Neptune ML 的更新图表数据)。然后,打电话给modeltransform用新的命令dataProcessingJobId和旧的modelTrainingJobId以便在更新的图表数据上重新计算模型工件。

对于节点属性预测,节点嵌入和预测将根据新的图表数据重新计算,即使对于原始训练图中存在的节点也是如此。

对于边缘属性预测和链接预测,也会重新计算节点嵌入,并类似地覆盖任何现有的节点嵌入。为了重新计算节点嵌入,Neptune ML 将之前训练模型中学习的 GNN 编码器应用到新图数据的节点及其新功能。

对于没有特征的节点,将重复使用从原始模型训练中学到的初始表示法。对于没有要素且不存在于原始训练图中的新节点,Neptune ML 将其表示形式初始化为原始训练图中所学到的该节点类型初始节点表示法的平均值。如果您有许多没有功能的新节点,这可能会导致模型预测的性能下降,因为它们都将初始化为该节点类型的平均初始嵌入。

如果你的模型经过训练concat-node-embed设置为 true,然后通过将节点要素与可学习的初始表示连接来创建初始节点制图表达。因此,对于更新的图形,新节点的初始节点表示形式也使用平均初始节点嵌入,并与新的节点要素串联起来。

此外,目前不支持删除节点。如果已在更新的图表中移除了节点,则必须根据更新的图表数据重新训练模型。

重新计算模型工件会在新图表上重复使用学习的模型参数,并且只有在新图与旧图非常相似的情况下才能完成。如果您的新图表不够相似,则需要重新训练模型,以便在新图表数据上获得类似的模型性能。什么构成足够相似的取决于图形数据的结构,但作为一项经验法则,如果新数据与原始训练图数据的不同超过 10-20%,则应重新训练模型。

对于所有节点都有要素的图形,阈值的较高端(20% 不同)适用,但对于许多节点没有要素且添加到图表中的新节点没有属性的图形,那么较低端(10% 不同)甚至可能太高。

请参阅模型变换命令有关模型转换作业的更多信息。