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

LLM基础8_使用人类反馈进行微调(RLHF)

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn

为什么需要人类反馈?

适应人类需求。

RLHF 的三大阶段

阶段1:监督微调(SFT)

  • 目标:模型生成人类想要的回答

  • 方法:人类示范优质回答

  • 数据:人工编写的问答对

用户:如何做煎蛋?
人类示范:首先,在平底锅加少许油,中火加热。然后打入鸡蛋...

阶段2:奖励模型训练

训练一个"裁判模型"来评判回答质量:

收集对比数据

  • 给模型同一个问题生成多个回答

  • 人类标注哪个回答更好

问题:解释量子纠缠
回答A:量子纠缠是量子力学现象...(专业但晦涩)★
回答B:想象两个心灵感应的粒子...(通俗易懂)★★★

训练奖励模型

  • 输入:问题 + 回答

  • 输出:质量评分

  • 目标:准确预测人类偏好

关键点:奖励模型学会人类价值观:简洁性、安全性、有用性

阶段3:强化学习微调(PPO)

原始模型->>+奖励模型: 生成回答
奖励模型->>-原始模型: 评分反馈
原始模型->>原始模型: 根据评分调整参数

使用近端策略优化(PPO) 算法:

  1. 模型生成回答

  2. 奖励模型打分

  3. 模型调整策略获得更高分

  4. 避免偏离原始能力(KL散度约束)

RLHF 的效果 

经过RLHF训练的模型:

能力提升效果
有用性回答更精准解决用户问题
诚实性减少"一本正经胡说八道"
无害性过滤有害/偏见内容
风格适配能调整正式/幽默等风格

RLHF实战 

# 伪代码 - PPO核心训练循环
for epoch in range(num_epochs):# 1. 生成回答responses = model.generate(prompts)# 2. 获取人类/奖励模型评分rewards = reward_model.score(prompts, responses)# 3. 计算原始模型评分(KL约束)with torch.no_grad():old_log_probs = original_model(responses)# 4. PPO优化loss = ppo_loss(current_log_probs, old_log_probs, rewards)optimizer.zero_grad()loss.backward()optimizer.step()

 

相关文章:

  • Could not initialize Logback logging from classpath:logback-spring.xml
  • 清理电脑C磁盘,方法N:使用【360软件】中的【清理C盘空间】
  • @Validation 的自定义校验实现, Spring Boot 和 java
  • 算法学习笔记:3.广度优先搜索 (BFS)——二叉树的层序遍历
  • 探索现代 Web 开发:从 HTML5 到 Vue.js 的全栈之旅
  • 一致性hash
  • LINUX613计划测put
  • ubuntu调整硬盘大小-使用gparted
  • CRaxsRat v7.6 安装与使用教程(附工具下载)
  • 一文讲清网络变压器、芯片和 RJ45 之间的接线
  • OSPF基础实验案例
  • 利用DeepSeek将docx生成程序迁移至minidocx
  • 前端开发中的可访问性设计:让互联网更包容
  • 快递接口调用选择:快递鸟、快递100、阿里云大对比
  • 上海市计算机学会竞赛平台2022年4月月赛丙组圆环独立集(一)
  • 开发者视角的网络调试流程进化:抓包工具实践指南与Sniffmaster使用笔记
  • Docker Buildx 简介与安装指南
  • 在C#中的乐观锁和悲观锁
  • 智能出入库管理系统:自动化管控平台
  • 高级定时器TIM1、TIM8
  • 专业的营销型网站培训中心/关于进一步优化
  • 做dj音叉网站平台/需要优化的地方
  • 小程序平台收费/郑州seo服务技术
  • 图片网站建设/百度关键词热度查询工具
  • 在什么网站做兼职翻译/做个公司网站大概多少钱
  • 有没有专门做航拍婚礼网站/chrome 谷歌浏览器