介绍
大语言模型的一般训练过程(3步):1、预训练学知识,2、指令微调学格式,3、强化学习对齐人类偏好
预训练
所以要想大模型有领域知识,得增量预训练(靠指令微调记知识不靠谱,不是几十w条数据能做到的)
1. 准备工作
准备基座模型->收集数据->数据清洗
2. 增量预训练所用训练框架
超大规模训练:选用 3D 并行,Megatron-Deepspeed拥有多个成功案例
少量节点训练:选用张量并行,但张量并行只有在 nvlink 环境下才会起正向作用,但提升也不会太明显。
少量卡训练:如果资源特别少,显存怎么也不够,可以使用 LoRA 进行增量预训练。
3. 增量预训练
先用大规模通用语料预训练,再用小规模领域语料二次训练
直接进行大规模领域语料预训练
通用语料比例混合领域语料同时训练
4. 流程
数据预处理:参考 LLaMA 的预训练长度,也把数据处理成2048长度(如果不够,做补全)。
分词器:如果使用 LLaMA 可能需要添加中文词表,目前有不少人做了相关工作,当然也可以自己添加自己需要的词表。
原始模型:各家框架的模型层名不太一样,训练时可能需要做一些调整,在预训练时尽量选择基座模型,不选 Chat 模型。
训练模型:跑通只是第一步,根据训练情况反复调整比较重要。
模型转换:不同框架的checkpoint格式不同,还会根据并行度分成很多个文件。
模型测试:简单测试下续写能力,验证下模型是否正常。
本文详细介绍了大语言模型的训练过程,包括预训练的知识获取、增量预训练策略(如使用基座模型和增量式数据)、训练框架选择(如3D并行和张量并行),以及关键步骤如数据准备、模型调整和测试。
5315

被折叠的 条评论
为什么被折叠?



