优化数据处理和流式传输工具 提升AI模型训练效率
LitData是一个开源的数据处理和优化工具,专注于提升AI模型训练效率。它提供并行数据处理、向量嵌入创建、分布式推理和大规模网站抓取功能。LitData优化数据集以加速模型训练,支持云端大规模数据流式传输,并实现远程数据的无本地加载使用。这些特性使LitData成为提高数据处理效率和AI模型训练速度的有力工具。
大规模转换数据集。 优化数据以加速AI模型训练。
<pre> 转换 优化 ✅ 并行化数据处理 ✅ 流式传输大型云数据集 ✅ 创建向量嵌入 ✅ 将训练速度提高20倍 ✅ 运行分布式推理 ✅ 暂停和恢复数据流传输 ✅ 大规模抓取网站 ✅ 使用远程数据而无需本地加载 </pre><a target="_blank" href="https://lightning.ai/docs/overview/prep-data/optimize-datasets-for-model-training-speed"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/880afd9b-f333-4be6-911e-a60627db778e.svg" height="36px" alt="开始使用"/> </a> </div>
LitData可以在本地或云端机器上扩展数据处理任务(数据抓取、图像调整大小、分布式推理、嵌入创建)。它还能优化数据集以加速AI模型训练,并在不进行本地加载的情况下处理大型远程数据集。
首先,安装LitData:
pip install litdata
选择您的工作流程:
<details> <summary>高级安装</summary>
安装所有额外功能
</details>pip install 'litdata[extras]'
通过优化数据集以直接从云存储流式传输,加速模型训练(速度提高20倍)。无需本地下载即可处理远程数据,具备加载数据子集、访问单个样本和可恢复流式传输等功能。
第1步:优化数据 此步骤将格式化数据集以实现快速加载。数据将以分块二进制格式写入。
import numpy as np from PIL import Image import litdata as ld def random_images(index): fake_images = Image.fromarray(np.random.randint(0, 256, (32, 32, 3), dtype=np.uint8)) fake_labels = np.random.randint(10) # 您可以使用任何键值对。请注意,它们的类型在样本之间不能改变,Python列表必须始终包含相同数量的相同类型的元素。 data = {"index": index, "image": fake_images, "class": fake_labels} return data if __name__ == "__main__": # optimize函数以优化格式写入数据。 ld.optimize( fn=random_images, # 应用于每个输入的函数 inputs=list(range(1000)), # 函数的输入(这里是一个数字列表) output_dir="my_optimized_dataset", # 优化后的数据存储在这里 num_workers=4, # 同一机器上的工作进程数 chunk_bytes="64MB" # 每个块的大小 )
第2步:将数据上传至云端
将数据上传到Lightning Studio(由S3支持)或您自己的S3存储桶:
aws s3 cp --recursive my_optimized_dataset s3://my-bucket/my_optimized_dataset
第3步:在训练期间流式传输数据
通过将PyTorch的DataSet和DataLoader替换为StreamingDataset和StreamingDataloader来加载数据
import litdata as ld dataset = ld.StreamingDataset('s3://my-bucket/my_optimized_dataset', shuffle=True) dataloader = ld.StreamingDataLoader(dataset) for sample in dataloader: img, cls = sample['image'], sample['class']
主要优势:
✅ 加速训练: 优化后的数据集加载速度提高20倍。
✅ 流式传输云数据集:无需下载即可处理云端数据。