ludwig 实现样本打包以提高LLM训练效率

py49o6xq  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(30)

您的功能请求是否与问题相关?请描述。

LLM训练成本高昂,允许样本打包是一种更高效的训练方式。

描述使用场景

我正在尝试使用2022年5月的Apache 2培训数据集训练一个LLM,以生成基于蓝图的楼层平面图。

描述您希望的解决方案

"该方法旨在在您的序列长度内尽可能容纳尽可能多的样本,填充任何剩余空间。此外,还执行额外的计算以防止同一批次中的样本之间发生污染,并尽量减少对预设超参数的影响。"
使用样本打包来减少训练时间。
https://arxiv.org/pdf/2107.02027.pdf

描述您考虑过的替代方案

购买更多的GPU或花费更多时间。

附加上下文

查看 axolotl-ai-cloud/axolotl#285

ffx8fchx

ffx8fchx1#

嘿,@fire,感谢提出这个问题!最近我也一直在思考这个问题,很高兴知道有人对此感兴趣!
一个问题:我的理解是,如果你在训练过程中有足够的余量来容纳额外的样本(一旦我们去掉填充),这种技术主要对你有益。这种方法可能表现为,你不得不减少max_sequence_length以避免CUDA OOMs,因为有些批次比其他批次长得多,导致训练过程中出现随机错误。你有类似的经历吗?

7hiiyaii

7hiiyaii2#

我仍然是一个机器学习模型微调的新手,所以我没有访问相关硬件的权限,但是我的同事建议为我的游戏显卡进行这个改进。
我想提交一份正式报告,以免忘记。
对于那些可以使用大内存GPU的人来说,他们也可以使用大型上下文窗口模型。我想象性能的提升会随着钱包的增加而增加。

inkz8wg9

inkz8wg93#

我的数据集非常短。
https://sketchfab.com/3d-models/cbf-architype-03-b855f5ec8f944a4ba476fdd41e5adcb0
https://huggingface.co/spaces/ifire/Architext_deployed

two bedrooms and two bathrooms
{"the bathroom is not adjacent to the living room [layout] bathroom": [9.507042253521128, 12.112676056338028, 7.464788732394367, 12.112676056338028, 7.464788732394367, 11.056338028169014, 9.507042253521128, 11.056338028169014], "bedroom1": [13.661971830985916, 10.070422535211268, 10.563380281690142, 10.070422535211268, 10.563380281690142, 9.014084507042254, 9.507042253521128, 9.014084507042254, 9.507042253521128, 4.859154929577465, 13.661971830985916, 4.859154929577465], "bedroom2": [13.661971830985916, 12.112676056338028, 9.507042253521128, 12.112676056338028, 9.507042253521128, 11.056338028169014, 10.563380281690142, 11.056338028169014, 10.563380281690142, 10.070422535211268, 13.661971830985916, 10.070422535211268], "living_room": [9.507042253521128, 9.014084507042254, 4.366197183098592, 9.014084507042254, 4.366197183098592, 3.8732394366197185, 9.507042253521128, 3.8732394366197185], "kitchen": [6.408450704225352, 14.15492957746479, 4.366197183098592, 14.15492957746479, 4.366197183098592, 10.070422535211268, 6.408450704225352, 10.070422535211268], "corridor": [10.563380281690142, 11.056338028169014, 7.464788732394367, 11.056338028169014, 7.464788732394367, 10.070422535211268, 4.366197183098592, 10.070422535211268, 4.366197183098592, 9.014084507042254, 10.563380281690142, 9.014084507042254]}

cclgggtu

cclgggtu4#

感谢提供额外背景信息的@fire!为了确保我理解您当前遇到的问题:您是否发现训练时间比预期更长,或者您遇到了内存不足的错误,还是其他问题?解决您的问题可能需要采用其他最佳解决方案,例如梯度检查点等。
此外,您能分享一下您当前的Ludwig配置和使用的GPU的一些详细信息吗?

相关问题