本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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 智能筛选在训练期间如何运行的架构图。](images/smartsifting-arch.png)
简而言之, SageMaker 智能筛选在训练期间会随着数据加载而运行。 SageMaker 智能筛选算法对批次进行损失计算,并在每次迭代向前和向后传递之前筛选出未改善的数据。然后,使用经过细化的数据批处理进行向前和向后传递。
SageMaker 智能筛选适用于具有经典分布式数据并行性的 PyTorch基于训练作业,它可以在每个 GPU 工作器上生成模型副本并执行。AllReduce
它可与 PyTorch DDP 和 SageMaker 分布式数据并行库配合使用。