使用 Amazon SageMaker 智能筛选在训练期间优化数据 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon SageMaker 智能筛选在训练期间优化数据

SageMaker 智能筛选是 Training SageMaker 的一项功能,可帮助提高训练数据集的效率并减少总训练时间和成本。

大型语言模型 (LLM) 或视觉转换器模型等现代深度学习模型通常需要海量数据集才能达到可接受的精度。例如,LLM 通常需要数万亿个代币或 PB 的数据才能融合。训练数据集规模的增长以及 state-of-the-art 模型的大小可能会增加模型训练的计算时间和成本。

在模型训练期间,数据集中的样本对学习过程的贡献不尽相同。训练期间提供的计算资源中有很大一部分可能花在处理简单样本上,这些样本对模型的整体准确性没有太大贡献。理想情况下,训练数据集将仅包含实际改善模型收敛性的样本。筛选出不太有用的数据可以减少训练时间和计算成本。但是,识别不太有用的数据可能具有挑战性和风险。在训练之前,很难确定哪些样本的信息量较低,如果排除错误的样本或过多的样本,则模型的准确性可能会受到影响。

使用 Amazon 智能筛选数据 SageMaker 可以提高数据效率,从而帮助减少训练时间和成本。 SageMaker 智能筛选算法在训练作业的数据加载阶段评估每个数据的损失值,并排除对模型信息较少的样本。通过使用精炼的数据进行训练,通过消除对未改进的数据进行不必要的向前和向后传递,从而减少训练模型的总时间和成本。因此,对模型精度的影响微乎其微或根本没有影响。

SageMaker 智能筛选可通过 T SageMaker raining Deep Learning Containers (DLC) 获得,并通过该容器支持 PyTorch 工作负载。 PyTorch DataLoader只需更改几行代码即可实现 SageMaker 智能筛选,您无需更改现有的训练或数据处理工作流程。

SageMaker 智能筛选的工作原理

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

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

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

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

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