介绍
RLHF(基于人类反馈的强化学习)是一种通过人类偏好数据训练奖励模型,并利用强化学习微调语言模型,使其输出更符合人类价值观和偏好的技术。
ChatGPT的RLHF
0、步骤一:领域特定预训练(Domain Specific Pre-Training)
使用因果语言建模目标,在原始文本上对预训练的大语言模型进行微调。目的是让模型适应特定领域的语言风格和知识。
1、步骤二:监督微调 (Supervised Fine-Tuning)- 训练出人类期望初始模型
SFT是在在已经预训练好的领域特定的 LLM 基础模型作为起点,并在一小部分高质量的、由人类标注的“标准答案”数据或任务特定和领域特定的(提示/指令,回答)高质量配对数据上进行微调。这一步让模型初步学会如何更好地遵循指令,为后续的强化学习阶段提供一个高质量的“策略”起点。
整个过程可以分解为以下几个关键环节:
- 数据准备
- Prompts & Text Dataset:首先,需要收集或创建一个提示词数据集。这些提示词就是用户可能会向模型提出的问题或指令,例如“解释一下牛顿定律”或“写一首关于月亮的诗”。
- Human Augmented Text:然后,会要求标注人员(人类)为这些提示词编写高质量的回答。这些回答需要准确、有用、无害,并完美地遵循指令。这是“可选的”,意味着在实践中,有时也会直接使用现有的高质量对话或文本数据。
- 模型准备
- Initial Language Model:这是一个已经在大规模通用文本上预训练好的基础语言模型(例如,类似于GPT-3的模型)。它拥有丰富的语言知识和生成能力,但可能不擅长精确地遵循特定指令。
- 训练过程
- Train Language Model:使用上面准备好的“提示词-高质量回答”配对数据,以监督学习的方式对这个基础模型进行微调。
- 具体做法:将提示词输入模型,让模型生成回答,然后将其与人类编写的标准答案进行对比,通过计算损失函数和反向传播,来调整模型的参数,使其输出逐渐向人类期望的答案靠拢。
2、步骤三:RLHF(基于人类反馈的强化学习)
- 奖励模型训练(Reward Model Training):训练一个语言模型,用于判断回答的“好”与“坏”(例如“点赞”或“点踩”)。
- RLHF 微调(RLHF Fine-Tuning):使用由人类专家标注的**(提示,好回答,坏回答)** 数据,结合奖励模型对 LLM 进行对齐训练,使其生成更符合人类偏好的回答。
1、训练奖励模型 - 学习人类的偏好
训练一个能够代替人类来给模型回答打分的“裁判”模型。方法是让上一步微调好的模型对同一个提示生成多个不同的回答。让人类标注员对这些回答进行排序,指出哪个更好,哪个更差。一旦奖励模型训练好,它就可以自动、快速地给海量的模型生成内容打分,从而替代昂贵且耗时的人类标注。具体步骤如下:
生成候选文本
- 起点:从Prompts Dataset中采样一批提示。
- 生成:将这些提示输入到第一步产生的SFT模型中。对于同一个提示,让模型生成多个(通常为4到9个)不同的回答。
人类进行排序和打分
- Human Scoring:将上一步生成的多组文本(每组对应一个提示)呈现给人类标注员。
- Outputs are ranked:标注员的任务不是直接打分,而是对这些文本进行质量排序(例如,从最好到最差)。如使用ELO评分系统(国际象棋等竞技游戏中常用)是一种将排序转化为精确分数的有效方法。
- 结果:最终,每个生成的文本都会获得一个量化的分数(如7.0),这个分数代表了其在人类评判中的相对质量。
训练奖励模型
- Train on (sample, reward) pairs:现在,我们拥有了一个训练数据集。其中每个样本都是一对数据:
- 样本:一段模型生成的文本。
- 奖励:该文本对应的人类偏好分数。
- Reward (Preference) Model:我们初始化一个新的模型(通常基于SFT模型的结构进行修改),其任务是学习一个映射关系:输入一段文本,输出一个标量奖励值。
- 训练过程:通过大量的
(文本, 分数)配对数据,训练这个奖励模型,让它学会预测人类会给某段文本打多少分。它的目标是最小化自己的预测值与人类给出的真实分数之间的差距。
3、强化学习微调 - 用“奖励”来引导模型
使用强化学习**(PPO),利用训练好的奖励模型作为“指南针”,来进一步优化语言模型,使其生成更受人类偏好的回答。具体是利用第二步训练好的奖励模型作为指导,使用强化学习来进一步优化第一步得到的SFT模型**,使其生成的回答能获得更高的奖励,同时避免模型为了“刷分”而产生乱码或荒谬的内容。
- 输入与生成
Initial Language Model:即第一步得到的SFT模型,作为参考的“基线”或“锚点”。它可能生成
y: a furry mammal。Tuned Language Model (RL Policy):这是我们正在通过强化学习进行微调的、当前版本的模型(即“策略”)。它可能生成
y: man's best friend。从Prompts Dataset中取出一个提示,例如
x: A dog is...。将这个提示同时输入给两个模型:
- 计算奖励
- 将当前策略生成的回答
y: man's best friend输入给Reward Model。 - 奖励模型会给出一个标量奖励
r_θ(y|x),比如7.5。这个分数代表了人类对这个回答的偏好程度。
- 施加约束
- 为了防止模型为了获得高奖励而“走火入魔”(例如,生成一堆无意义的、但恰好能骗过奖励模型的词),我们引入了一个KL散度惩罚项:
λ_KL * D_KL(π_PPO(y|x) || π_base(y|x))。 D_KL(...):衡量的是当前策略π_PPO和初始基线模型π_base的输出分布之间的差异。如果差异过大,就会被惩罚。λ_KL:是一个超参数,用于控制惩罚的力度。- 作用:这个惩罚项像一根“缰绳”,确保模型在追求高奖励的同时,不会偏离它从预训练和SFT中学到的基本语言知识和常识太远,从而保证输出的文本既符合偏好,又保持连贯和合理。
- 组合最终奖励并更新模型
- 最终奖励 = 奖励模型分数 - KL惩罚项
- 这个组合后的最终奖励被送入Reinforcement Learning Update (e.g. PPO)算法中。
- PPO算法会根据这个奖励信号,计算梯度
∇_θ J(θ),并按照θ ← θ + ∇_θ J(θ)的方式更新Tuned Language Model的参数θ。
LLaMA2的改进版RLHF
LLaMA 2 采用的一种更先进、更复杂的 RLHF 流程。
引入安全相关的人类偏好(Safety Reward Model)
能够流水线式的执行训练流水线,可以使用拒绝采样(Rejection Sampling)解决训练过程中的高质量数据和稳定性问题
基于AI反馈的RLAIF(未来方向)
减少对人类标签的依赖:RLAIF通过利用大型语言模型(LLMs)生成的偏好标签来代替人类反馈,从而减少了对耗时且成本高昂的人类标注工作的依赖。
提高可扩展性:由于减少了对人工标注的需求,RLAIF大大提高了强化学习训练流程的可扩展性,使得在大规模数据集上训练语言模型变得更加可行和高效。
保持或提高性能:根据实验结果,RLAIF在多个文本生成任务上达到了与RLHF相当甚至更优的性能,包括摘要、有益对话生成和无害对话生成,这表明AI反馈是一种有效的替代人类反馈的方法。
处理领域偏移:实验表明,RLAIF在处理领域偏移问题上表现出色,即使在训练和测试数据分布不一致的情况下,也能保持较高的性能。
直接利用LLM反馈:通过直接提示LLM获取奖励分数,RLAIF绕过了将LLM偏好标签提炼成奖励模型的步骤,这种方法在某些情况下比传统的RLHF设置更有效。
AI偏好生成的优化:通过研究不同的AI偏好生成技术,如链式推理和详细的前言提示,RLAIF为最大化AI生成偏好与人类偏好的一致性提供了有效的策略。
可解释性和调整性:RLAIF提供了一种机制,通过直接调整AI生成的偏好,可以进一步提高模型的可解释性和根据特定需求进行微调的能力。
RLHF开发库
1、Hugging Face TRL 库
这是一个专门用于实现基于人类反馈的强化学习的Python库。TRL是Transformer Reinforcement Learning的缩写,它提供了实现RLHF完整流程的工具和接口。
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
第一阶段:从大模型系统设计入手,讲解大模型的主要方法;
第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓