- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
大模型(LLMs)增量预训练篇
来自:AiGC面试宝典
宁静致远2024年01月27日20:47
•大模型(LLMs)增量预训练篇
•1.为什么要增量预训练?
•2.进行增量预训练需要做哪些准备工作?
•3.增量预训练所用训练框架?
•4.增量预训练训练流程是怎么样?
•5.增量预训练一般需要多大数据量?
•6.增量预训练过程中,loss上升正常么?
•7.增量预训练过程中,lr如何设置?
•8.增量预训练过程中,warmup_ratio如何设置?
•9.warmup的步数对大模型继续预训练是否有影响?
•10.学习率大小对大模型继续预训练后上下游任务影响?
•11.在初始预训练中使用Rewarmup对大模型继续预训练性能影响?
•致谢
1.为什么要增量预训练?
有一种观点,预训练学知识,指令微调学格式,强化学习对齐人类偏好,LIMA等论文算是这一观点的证据。
所以要想大模型有领域知识,得增量预训练。(靠指令微调记知识不靠谱,不是几十w条数据能做到的。)
2.进行增量预训练需要做哪些准备工作?
1.模型底座选型
主流是LLaMA,因为scaling法则,可能LLaMA做了充分预训练。(当然有版权问题)
这里备选BLOOM,感觉基座比LLaMA差,但是也有7B版本。
Falcon、CPM-bee、Aquila、Baichuan待实验,license友好,但生态和效果都是问题。其实,因为结构上都类
似LLaMA,未来估计会出现整合这些模型的项目。
(Falcon公布的训练语料中没有中文)
这里没列ChatGLM和ChatGLM2,因为有种说法在SFT模型上增量预训练效果比较差。(未证实)
1.数据收集
这里最经典的开源预训练数据还是wudao的200G和thepile这两个数据集(怀念一下Open-Llama)
加起来有1T的文本量,足够前期玩耍了。
其实,刚开始实践的时候,不需要太多样本,先收集GB量级的领域文本跑通流程即可。
1.数据清洗
当然这里数据治理可能是chatgpt魔法的最关键的部分,最基础的是把网页爬取数据中的广告清理掉。
Falcon论文里介绍了数据清洗的手段,对于我们很有参考意义。
3.增量预训练所用训练框架?
1.超大规模训练
如果是真大规模炼丹,那没什么好说的,直接3D并行。
Megatron-Deepspeed拥有多个成功案例,炼LLaMA可以参考LydiaXiaohongLi大佬的实现。(实在太强)
/microsoft/Megatron-DeepSpeed/pull/139
炼BLOOM可以直接找到Bigscience的git仓库。
然而,转checkpoint还是挺费劲的。
1.少量节点训练
小门小户一共就几台机器几张卡的话,3D并行有点屠龙术了。
张量并行只有在nvlink环境下才会起正向作用,但提升也不会太明显。
可以分2种情况:
•单节点或者多节点(节点间通信快):直接deepspeedZeRO吧。(笔者用了linly的增量预训练代码,但有
能力的最好用其他代码)比如,Open-Llama的fork版本。
/RapidAI/Open-Llama
•多节点(但节点间通信慢):考虑用流水线并行,参考另一个大佬的实现。
/HuangLK/transpeeder
1.少量卡训练
如果资源特别少,显存怎么也不够,可以上LoRA。
/shibing624/MedicalGPT
4.增量预训练训练流程是怎么样?
1.数据预处理
参考LLaMA的预训练长度,也把数据处理成2048长度(如果不够,做补全)
这里要吐槽,tencentpretrain数据处理脚本的默认长度竟然是128。
1.分词器
有很多工作加LLaMA中文词表,但是考虑到没有定论说加中文词表会更好,先用原版的吧,500k的
tokenizer.model。
/ymcui/Chinese-LLaMA-Alpaca
1.原始模型
可以使用一个中文增
文档评论(0)