前面这个写过,但觉得写的不是很好,这次是参考命令运行脚本,讲解各个参数含义。后续尽可能会更新,可以关注一下专栏!!
*这是个人写的参数解读,我并非该领域的人如果那个大佬看到有参数解读不对或者有补充的请请反馈!谢谢(后续该文章可能会持续更新) *
LLaMA-Factory项目的地址:https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md
在LLaMA-Factory项目中,单显卡可以用命令或web页面训练,多显卡只能用用命令的方式,此文章以命令和单显卡为主讲解*(我就一个菜鸡,目前只掌握了单显卡,也是多显卡买不起) *
命令运行的脚本地址:https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md
下面是预训练运行脚本的解读
预训练的简单解释
“预训练”这个训练模式,其实就是先在大量的通用数据上训练模型,让它学到一些基础的知识和处理能力,然后再用特定的较小数据集来进行进一步训练,使模型更适应特定的任务。这个过程有点像人先上小学到大学学习通识教育,然后再通过专业课程或者工作经验来精专某个领域。
使用情况
预训练模式特别适用于以下几种情况:
- 数据稀缺:对于一些特定任务,可能没有足够的标注数据来从头开始训练一个复杂的模型
这时,可以利用预训练模型作为起点,它已经学习了大量的通用知识,能够更好地处理数据稀缺的情况。- 提高效率:从预训练模型开始,可以显著减少训练时间和计算资源,因为模型已经有了一个很好的知识基础。
- 提升性能:在许多任务中,预训练模型通常能达到比从零开始训练更好的性能,尤其是在自然语言处理和图像识别领域。
优点
- 效率高:使用预训练模型可以节省大量的训练时间和计算资源。
- 性能好:预训练模型通常能提供更好的泛化能力,尤其是在数据较少的情况下。
- 灵活性强:预训练模型可以适用于多种不同的任务,只需要针对特定任务进行少量的调整和微调。
缺点
- 可能存在过拟合问题:如果微调的数据很少,模型可能会过度适应这些数据,导致泛化能力下降。
- 迁移学习的局限性:预训练模型是在特定的数据集上训练的,可能会带有这些数据集的偏见,迁移到完全不同的任务时可能效果不佳。
- 资源消耗:虽然预训练模型可以节省训练时间,但是预训练一个模型本身需要大量的数据和计算资源。
命令解读
- CUDA_VISIBLE_DEVICES=0 python …/…/src/train_bash.py
CUDA_VISIBLE_DEVICES=0:
这是一个环境变量设置,用于指定哪些GPU设备可被CUDA应用程序(如基于TensorFlow或PyTorch的深度学习训练脚本)使用。
CUDA_VISIBLE_DEVICES=0 表示只有编号为0的GPU设备可被使用。如果有多个GPU,可以设置为 CUDA_VISIBLE_DEVICES=0,1,2 来使用编号为0、1、2的GPU。
这个设置对于在多GPU环境中管理资源非常有用,尤其是当多个用户或多个进程需要独立使用特定GPU时。
- stage pt
指定训练阶段为预训练(pre-training)。