您的功能请求是否与问题相关?请描述。
LLM训练成本高昂,允许样本打包是一种更高效的训练方式。
描述使用场景
我正在尝试使用2022年5月的Apache 2培训数据集训练一个LLM,以生成基于蓝图的楼层平面图。
描述您希望的解决方案
"该方法旨在在您的序列长度内尽可能容纳尽可能多的样本,填充任何剩余空间。此外,还执行额外的计算以防止同一批次中的样本之间发生污染,并尽量减少对预设超参数的影响。"
使用样本打包来减少训练时间。
https://arxiv.org/pdf/2107.02027.pdf
描述您考虑过的替代方案
购买更多的GPU或花费更多时间。
附加上下文
4条答案
按热度按时间ffx8fchx1#
嘿,@fire,感谢提出这个问题!最近我也一直在思考这个问题,很高兴知道有人对此感兴趣!
一个问题:我的理解是,如果你在训练过程中有足够的余量来容纳额外的样本(一旦我们去掉填充),这种技术主要对你有益。这种方法可能表现为,你不得不减少
max_sequence_length
以避免CUDA OOMs,因为有些批次比其他批次长得多,导致训练过程中出现随机错误。你有类似的经历吗?7hiiyaii2#
我仍然是一个机器学习模型微调的新手,所以我没有访问相关硬件的权限,但是我的同事建议为我的游戏显卡进行这个改进。
我想提交一份正式报告,以免忘记。
对于那些可以使用大内存GPU的人来说,他们也可以使用大型上下文窗口模型。我想象性能的提升会随着钱包的增加而增加。
inkz8wg93#
我的数据集非常短。
https://sketchfab.com/3d-models/cbf-architype-03-b855f5ec8f944a4ba476fdd41e5adcb0
https://huggingface.co/spaces/ifire/Architext_deployed
cclgggtu4#
感谢提供额外背景信息的@fire!为了确保我理解您当前遇到的问题:您是否发现训练时间比预期更长,或者您遇到了内存不足的错误,还是其他问题?解决您的问题可能需要采用其他最佳解决方案,例如梯度检查点等。
此外,您能分享一下您当前的Ludwig配置和使用的GPU的一些详细信息吗?