聊聊大模型微调训练全流程的思考

转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote

参考现有的中文医疗模型:MedicalGPT、CareGPT等领域模型的训练流程,结合ChatGPT的训练流程,总结如下:

在预训练阶段,模型会从大量无标注文本数据集中学习领域/通用知识;其次使用{有监督微调}(SFT)优化模型以更好地遵守特定指令;最后使用对齐技术使LLM更有用更安全的响应用户的提示。

训练流程的四个阶段,分别如下:

  1. 预训练(pre-training,pt),基于基座模型,经过海量中文医疗预料训练,得到领域适配的ChatGLM-6B。
  2. 监督微调(supervised finetuning,sft),通过在线问诊等数据,构建训练数据完成指令微调。
  3. RM模型构建(reward modeling, rm),人工对预测答案排序,训练一个打分模型
  4. 强化学习阶段(reinforcement learning, rl),基于PPO算法,采用RL的方式,完成fine-tuned ChatGLM-6B模型的优化。

预训练阶段-PT

该阶段的训练数据格式如下。对应是非结构化的自然语言文本,通过设定max_seq_len和block_size等方式,实现文本数据的chunk,batch化,作为模型的训练数据,处理完的单条数据包含input_ids,attention_mask和labels;训练的目标是模型需要根据提供的文本来预测 下一个单词。

监督微调阶段-SFT

该阶段的训练数据格式如下。一般对应的结构采用instruction/input/output/history,根据不同的场景,input与history可以做缺省处理。但是需要人工标注的指令数据集。

对齐

该阶段的主要目标是将语言模型喻人类的偏好、价值观进行对齐,这也是RHLF机制的作用。

RLHF主要包括两步:

  1. 基于有监督微调模型基础上创建一个reward model(RM)模型;
  2. 基于RM模型使用PPO/DPO算法微调SFT模型,返回最佳response。

奖励模型-RM

该阶段是RHLF的第一个阶段,训练得到一个rm模型用于rl阶段的模型打分,其结构格式如下:

有多种格式的数据,可自己选择,但需要程序做额外的处理,且这些数据都是人工标注好的。

强化学习-RL

该阶段是RHLF的第二个阶段,也是核心部分,用于优化一个RM模型,并完成打分。数据格式同SFT。一般在此阶段会使用特定的算法(DPO/PPO)来实现;引导优化后的大模型生成更符合人类偏好的内容。

总结

对于模型的微调,一开始我是想的太简单了,觉得只要按照基座官方模型文档调试即可;随着了解的深入与不断的学习,微调是个大工程而且对于领域模型来说,其训练流程:预训练 --> 监督微调 --> RHLF 中包含的事项与知识太多。

参考:【中文医疗大模型】训练全流程源码剖析

转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote

首发于个人公众号

相关推荐
GPU实战笔记10 小时前
L40S 云端任务验证:从推理、微调到生成工作流的边界
人工智能·模型微调·gpu租用·nvidia l40s·gpu 云服务器
SoulRoar.10 小时前
在 Windows 上面部署 StartLux
windows·大模型·startlux
zybsjn12 小时前
Chrome 10 月 27 日剔除 eMudhra 根:3 万张证书的排查命令与迁移清单
人工智能·大模型
一级新生13 小时前
Dify 接入大模型:本地还是云端?实战与选型
人工智能·大模型·dify·ollama
小朱爱编程12314 小时前
AI点了两次发布,我多了两篇事故
数据库·人工智能·大模型·软件工程
自养Agent16 小时前
Agent Harness 从用到会造:prompt 不是问句,是控制面板
人工智能·大模型·llm·prompt
清如许.17 小时前
提示缓存(Prompt Caching)是如何工作的?
人工智能·大模型·llm
一级新生17 小时前
API 到底是什么?用点餐窗口讲明白
人工智能·大模型·api·编程入门
Liaiyang6617 小时前
空圈容错视角 :AI 几乎就是一个“天然的小空圈”
人工智能·大模型·1024程序员节·认知科学·ai幻觉·自我意识·空圈容错理论