当前位置: 首页 > news >正文

说一说大模型后训练的流程

这个流程通常可以分为两个核心阶段:监督微调 (Supervised Fine-Tuning, SFT) 和 基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF)

第一阶段:监督微调 (Supervised Fine-Tuning, SFT)

这个阶段是让模型学会“听懂人话”,也就是遵循指令进行对话或完成特定任务的基础。

  • 目标

    • 指令遵循 (Instruction Following):教会模型理解并执行用户提出的各种指令,例如“写一首关于秋天的诗”、“总结一下这段文字”等。

    • 初步对齐:让模型的输出格式和内容风格初步符合人类的期望。

  • 数据准备

    • 高质量的指令-回答数据对:这是SFT阶段最关键的要素。数据形式通常是 (Prompt, Response) 对。

    • 数据来源

      1. 人工标注:雇佣专业的标注人员,针对各种可能的指令编写高质量的回答。这是质量最高但成本也最高的方式。

      2. 用户真实数据:从现有产品(如API调用)中筛选出高质量的用户指令和模型早期版本的优质回答,再由人工进行筛选和优化。

      3. 开源数据集:使用社区贡献的指令微调数据集,例如 Alpaca、Dolly、ShareGPT 等。

      4. 模型自生成:利用更强大的模型(如GPT-4)根据少量示例(Seed prompts)生成大量的指令和回答数据,然后进行清洗和筛选。

  • 训练过程

    • 模型选择:选择一个已经完成预训练的基础模型(Base Model),例如 LLaMA、Mistral 等。

    • 微调方法:使用准备好的高质量指令数据对,以类似预训练的方式(预测下一个词)对模型进行微调。具体来说,将指令和回答拼接在一起,模型只在回答(Response)部分计算损失函数(Loss),从而学习在给定指令(Prompt)的条件下,生成期望的回答。

    • 结果:经过SFT后,基础模型就从一个只会“文本补全”的模型,转变为一个初步的“指令遵循”或“对话”模型。我们通常称这个阶段得到的模型为 SFT Model

第二阶段:基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF)

SFT能教会模型“做什么”,但很难教会它“做得多好”。例如,对于一个问题,可能有多个正确但质量不同的回答。RLHF的目标就是让模型学会区分回答的好坏,并倾向于生成更高质量、更安全、更有用的内容。

这个阶段通常分为两步:训练奖励模型 (Reward Model, RM) 和 强化学习微调

步骤 2.1: 训练奖励模型 (Reward Model)
  • 目标:训练一个能够给模型输出打分的“裁判”模型。这个模型需要理解人类的偏好。

  • 数据准备

    • 人类偏好排序数据:这是训练奖励模型的核心。

    • 数据收集过程

      1. 选择一个指令(Prompt)。

      2. 使用上一阶段的 SFT Model 对该指令生成多个不同的回答(例如,生成4个或7个)。

      3. 由人工标注者对这些回答进行排序,从最好到最差。例如 Response D > Response B > Response A > Response C。

  • 训练过程

    • 模型架构:奖励模型的架构通常与SFT模型相同或类似,但最后的输出层被修改为一个标量值(分数),而不是词汇表的概率分布。

    • 训练目标:输入一个 (Prompt, Response) 对,奖励模型输出一个分数。训练的目标是让模型给出的分数与人类的排序偏好保持一致。也就是说,对于人类认为更好的回答,奖励模型应该给出更高的分数。

    • 结果:我们得到了一个可以评估任何回答质量的 奖励模型 (RM)

步骤 2.2: 使用强化学习进行微调
  • 目标:利用奖励模型作为指导,通过强化学习算法进一步优化SFT模型,使其生成的回答能获得更高的奖励分数。

  • 训练过程

    • 核心组件

      1. 策略 (Policy):要被优化的SFT模型本身。

      2. 动作空间 (Action Space):模型词汇表中的所有词(Token)。模型每生成一个词,就是执行一个动作。

      3. 奖励函数 (Reward Function):由上一步训练好的奖励模型提供。

      4. 环境 (Environment):接收模型的动作(生成的词),并返回下一个状态。

    • 算法:最常用的算法是 近端策略优化 (Proximal Policy Optimization, PPO)

    • 具体流程

      1. 从一个数据集中随机抽取一个指令(Prompt)。

      2. SFT模型(作为策略)根据这个指令生成一个完整的回答。

      3. 训练好的奖励模型(RM)对这个 (Prompt, Response) 对进行打分,得到一个奖励值。

      4. 这个奖励值被用来更新SFT模型的参数,目标是让模型未来生成的回答能获得更高的奖励分数。

      5. 一个关键约束:为了防止模型为了追求高分而“走火入魔”(例如生成一些无意义但RM喜欢的高频词),通常会引入一个惩罚项(KL散度),确保优化后的模型与原始SFT模型的输出分布不要相差太大,保持语言的流畅性和多样性。

  • 结果:经过RLHF流程,我们最终得到一个在有用性(Helpfulness)、诚实性(Honesty)和无害性(Harmlessness)上都表现更好的最终模型,也叫 RLHF Model 或 Aligned Model

http://www.dtcms.com/a/390772.html

相关文章:

  • 【微实验】激光测径系列(三)
  • Vim 使用从入门到精通
  • 快速实现 Excel 表格转 SVG:Java 教程
  • [极客大挑战 2019]LoveSQL
  • Excel和WPS表格中选中全部空单元格并输入相同内容
  • 日志易制造业安全UEBA解决方案
  • Java 将 HTML 转换为 Excel:实用指南
  • MySQL索引篇---数据结构的选择
  • 【STM32 CubeMX + Keil】 中断、NVIC 、EXTI
  • BIGO一面面试总结
  • Ansible-fetch模块
  • DevExpress WPF中文教程:DataGrid - 服务器数据和大型数据源
  • Vue项目不同页面显示不同的title
  • NW820NW825美光固态闪存NW829NW832
  • aosp13/14/15/16如何实现窗口局部区域高斯模糊毛玻璃效果及Winscope原生重大bug发现
  • Java微服务架构设计模式精解
  • 设计模式面试之单例模式常问知识点
  • 深入解析 MySQL 元数据锁 (MDL) 与 SHOW PROCESSLIST 实战
  • 能不能写一个可以在linux使用的类nano编辑器
  • Rocky10 使用kubeadm部署K8s v1.34 一主两从
  • 深入理解Buffer:数据世界的“蓄水池“
  • 通义万相开源 Wan2.2-S2V-14B,实现图片+音频生成电影级数字人视频
  • windows c++环境 使用VScdoe配置opencv
  • JVM(四)-- 对象的实例化内存布局和直接内存
  • G1垃圾回收器的优势
  • 内存分配策略
  • Python采集Tik Tok视频详情,Tik TokAPI接口(json数据返回)
  • 实时通信技术大比拼:长轮询、短轮询、WebSocket 与 SSE 深度解析及实战指南
  • ICML 2025|图像如何与激光雷达对齐并互补?迈向协调的多模态3D全景分割
  • 基于Web的3D工程应用图形引擎——HOOPS Communicator技术解析