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

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

SageMaker 智能筛选的工作原理

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

下图概述了 SageMaker 智能筛选算法是如何设计的。

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

简而言之, SageMaker 智能筛选在训练期间会随着数据加载而运行。 SageMaker 智能筛选算法对批次进行损失计算,并在每次迭代向前和向后传递之前筛选出未改善的数据。然后,改进后的批次数据将用于前向和后向传递。

注意

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

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