32-大模型(LLMs)增量预训练篇.pdf

32-大模型(LLMs)增量预训练篇.pdf_第1页
32-大模型(LLMs)增量预训练篇.pdf_第2页
32-大模型(LLMs)增量预训练篇.pdf_第3页
大模型(LLMs)增量预训练篇来自:AiGC面试宝典宁静致远2024年01月27日20:471.为什么要增量预训练?有一种观点,预训练学知识,指令微调学格式,强化学习对齐人类偏好,LIMA等论文算是这一观点的证据。所以要想大模型有领域知识,得增量预训练。(靠指令微调记知识不靠谱,不是几十w条数据能做到的。)2.进行增量预训练需要做哪些准备工作?主流是LLaMA,因为scaling法则,可能LLaMA做了充分预训练。(当然有版权问题)这里备选BLOOM,感觉基座比LLaMA差,但是也有7B版本。Falcon、CPM-bee、Aquila、Baichuan待实验,license友好,但生态和效果都是问题。其实,因为结构上都类似LLaMA,未来估计会出现整合这些模型的项目。(Falcon公布的训练语料中没有中文)这里没列ChatGLM和ChatGLM2,因为有种说法在SFT模型上增量预训练效果比较差。(未证实)这里最经典的开源预训练数据还是wudao的200G和thepile这两个数据集(怀念一下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可以直接找到Bigscience的git仓库。然而,转checkpoint还是挺费劲的。小门小户一共就几台机器几张卡的话,3D并行有点屠龙术了。张量并行只有在nvlink环境下才会起正向作用,但提升也不会太明显。可以分2种情况:https://github.com/RapidAI/Open-Llamahttps://github.com/HuangLK/transpeeder如果资源特别少,显存怎么也不够,可以上LoRA。https://github.com/shibing624/MedicalGPT4.增量预训练训练流程是怎么样?参考LLaMA的预训练长度,也把数据处理成2048长度(如果不够,做补全)这里要吐槽,tencentpretrain数据处理脚本的默认长度竟然是128。有很多工作加LLaMA中文词表,但是考虑到没有定论说加中文词表会更好,先用原版的吧,500k的tokenizer.model。https://github.com/ymcui/Chinese-LLaMA-Alpaca可以使用一个中文增量预训练后的版本,当然这里坑挺大的,各家框架的模型层名不太一样。为了快速跑通,用脚本快速转一下,能成功加载就行。如果显存不够,可以zero3+offload。其他参数暂时默认吧。(事实上没有想象中慢)多机的话可以配一下deepspeed的hostfile。这一点可能是最重要的,跑通只是第一步,根据训练情况反复调整比较重要。可以使用wandb,记录loss,flops,吞吐速度,已消耗的token数,和测试ppl。不同框架的checkpoint格式不同,还会根据并行度分成很多个文件。以ZeRO为例,我的转换流程(很挫)是:转为标准huggingface格式后可以用各种支持llama的前端加载,比如text-generation-webui。1.少量节点训练•单节点或者多节点(节点间通信快):直接deepspeedZeRO吧。(笔者用了linly的增量预训练代码,但有能力的最好用其他代码)比如,Open-Llama的fork版本。•多节点(但节点间通信慢):考虑用流水线并行,参考另一个大佬的实现。1.少量卡训练1.数据预处理1.分词器1.原始模型1.训练参数1.观测训练进展1.模型转换•zerotof32•f32tofp16•...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

发表评论取消回复

参与评论可获取积分奖励  
微风舍
实名认证
内容提供者

微风舍,风起于青萍之末,浪成于微澜之间,舍是漏舍,唯吾德馨。

确认删除?
回到顶部