SageMaker 智能筛选的工作原理 - 亚马逊 SageMaker AI

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

SageMaker 智能筛选的工作原理

SageMaker 智能筛选的目标是在训练过程中筛选训练数据,只向模型提供信息量更大的样本。在使用 PyTorch 进行典型训练过程中,PyTorch DataLoader 会将数据分批迭代地发送到训练循环和加速器设备(例如 GPU 或 Trainium 芯片)。SageMaker 智能筛选是在此数据加载阶段实现的,因此独立于训练管道中的任何上游数据预处理。SageMaker 智能筛选使用您的模型及其用户指定的损失函数,对加载的每个数据样本进行评估性前向传递。返回低损失值的样本对模型学习的影响较小,因此被排除在训练之外,因为模型已经很容易就能以较高的置信度对这些样本做出正确的预测。同时,模型仍需要学习那些损耗相对较高的样本,因此这些样本会被保留下来用于训练。您可以为 SageMaker 智能筛选设置的关键输入是排除数据的比例。例如,如果将比例设置为 25%,则损失分布(取自用户指定数量的先前样本)最低四分位数的样本将被排除在训练之外。高损耗样本被累积到改进后的批次数据中。改进后的批次数据被发送到训练循环(前向和后向传递),模型在改进后的批次数据上进行学习和训练。

下图显示了 SageMaker 智能筛选算法的设计概览。

SageMaker 智能筛选功能在数据加载训练期间的运行架构图。

简而言之,SageMaker 智能筛选是在加载数据的训练过程中进行的。SageMaker 智能筛选算法对批次进行损耗计算,并在每次迭代的前向和后向传递之前筛选出非改进数据。然后,改进后的批次数据将用于前向和后向传递。

注意

在 SageMaker AI 上对数据进行智能筛选使用额外的前向传递来分析和筛选训练数据。反过来,由于从训练作业中排除影响力较小的数据,因此后向传递的次数也减少了。因此,使用智能筛选时,后向通过时间长或成本高的模型能获得最大的效率提升。同时,如果您的模型前向传递的时间比后向传递的时间长,开销可能会增加总的训练时间。要测量每次传递所花费的时间,您可以运行试点训练作业并收集记录进程时间的日志。还可以考虑使用 SageMaker Profiler,它提供了剖析工具和用户界面应用程序。要了解更多信息,请参阅Amazon SageMaker 探查器

SageMaker 的智能筛选功能适用于基于 PyTorch 的训练作业,它具有典型的分布式数据并行性,可在每个 GPU 工作器上生成模型副本并执行 AllReduce。它与 PyTorch DDP 和 SageMaker AI 分布式数据并行库结合使用。