暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
32-大模型(LLMs)增量预训练篇.pdf
55
6页
0次
2025-07-08
5墨值下载
大模型(LLMs)增量预训练篇
来自: AiGC面试宝典
宁静致远 20240127 20:47
1. 为什么要增量预训练?
有一种观点,预训练学知识,指令微调学格式,强化学习对齐人类偏好LIMA等论文算是这一观点的证据。
所以要想大模型有领域知识,得增量预训练。(靠指令微调记知识不靠谱,不是几十w条数据能做到的。)
2. 进行 增量预训练 需要做哪些准备工作?
主流是LLaMA,因为scaling法则,可能LLaMA做了充分预训练。(当然有版权问题)
这里备选BLOOM,感觉基座比LLaMA差,但是也有7B版本。
FalconCPM-beeAquilaBaichuan待实验,license友好,但生态和效果都是问题。其实,因为结构上都类
LLaMA,未来估计会出现整合这些模型的项目。
Falcon公布的训练语料中没有中文)
这里没列ChatGLMChatGLM2,因为有种说法在SFT模型上增量预训练效果比较差。(未证实)
这里最经典的开源预训练数据还是wudao200Gthepile这两个数据集(怀念一下Open-Llama
加起来有1T的文本量,足够前期玩耍了。
其实,刚开始实践的时候,不需要太多样本,先收集GB量级的领域文本跑通流程即可。
当然这里数据治理可能是chatgpt魔法的最关键的部分,最基础的是把网页爬取数据中的广告清理掉。
Falcon论文里介绍了数据清洗的手段,对于我们很有参考意义。
3. 增量预训练 所用 训练框架?
大模型(LLMs)增量预训练篇
1. 为什么要增量预训练?
2. 进行 增量预训练 需要做哪些准备工作?
3. 增量预训练 所用 训练框架?
4. 增量预训练 训练流程 是怎么样?
5. 增量预训练 一般需要多大数据量?
6. 增量预训练 过程中,loss 上升正常么?
7. 增量预训练 过程中,lr 如何设置?
8. 增量预训练 过程中,warmup_ratio 如何设置?
9. warmup 的步数 大模型继续预训练 是否有影响?
10. 学习率 大小 大模型继续预训练 上下游任务影响?
11. 在初始预训练中使用 Rewarmup 大模型继续预训练 性能 影响?
致谢
1. 模型底座选型
1. 数据收集
1. 数据清洗
1. 超大规模训练
扫码加
查看更多
如果是真大规模炼丹,那没什么好说的,直接3D并行。
Megatron-Deepspeed拥有多个成功案例,炼LLaMA可以参考LydiaXiaohongLi大佬的实现。(实在太强)
https://github.com/microsoft/Megatron-DeepSpeed/pull/139
BLOOM可以直接找到Bigsciencegit仓库。
然而,转checkpoint还是挺费劲的。
小门小户一共就几台机器几张卡的话,3D并行有点屠龙术了。
张量并行只有在nvlink环境下才会起正向作用,但提升也不会太明显。
可以分2种情况:
https://github.com/RapidAI/Open-Llama
https://github.com/HuangLK/transpeeder
如果资源特别少,显存怎么也不够,可以上LoRA
https://github.com/shibing624/MedicalGPT
4. 增量预训练 训练流程 是怎么样?
参考LLaMA的预训练长度,也把数据处理成2048长度(如果不够,做补全)
这里要吐槽,tencentpretrain数据处理脚本的默认长度竟然是128
有很多工作加LLaMA中文词表,但是考虑到没有定论说加中文词表会更好,先用原版的吧,500k
tokenizer.model
https://github.com/ymcui/Chinese-LLaMA-Alpaca
可以使用一个中文增量预训练后的版本,当然这里坑挺大的,各家框架的模型层名不太一样。
为了快速跑通,用脚本快速转一下,能成功加载就行。
如果显存不够,可以zero3+offload。其他参数暂时默认吧。(事实上没有想象中慢)
多机的话可以配一下deepspeedhostfile
这一点可能是最重要的,跑通只是第一步,根据训练情况反复调整比较重要。
可以使用wandb,记录lossflops,吞吐速度,已消耗的token数,和测试ppl
不同框架的checkpoint格式不同,还会根据并行度分成很多个文件。
ZeRO为例,我的转换流程(很挫)是:
转为标准huggingface格式后可以用各种支持llama的前端加载,比如text-generation-webui
1. 少量节点训练
单节点或者多节点(节点间通信快):直接deepspeed ZeRO吧。(笔者用了linly的增量预训练代码,但有
能力的最好用其他代码)比如,Open-Llamafork版本。
多节点(但节点间通信慢):考虑用流水线并行,参考另一个大佬的实现。
1. 少量卡训练
1. 数据预处理
1. 分词器
1. 原始模型
1. 训练参数
1. 观测训练进展
1. 模型转换
zero to f32
f32 to fp16
fp16 to huggingface格式
1. 模型测试
of 6
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜