【论文解读】InstructGPT : Training language models to follow instructions with human feedback

InstructGPT是通过人类反馈微调GPT-3,以提高模型遵循用户意图的能力。通过有监督学习和基于人工排序的强化学习(使用PPO算法),InstructGPT在减少参数量的情况下,其性能超过了未经优化的GPT-3。文章强调了强化学习在大型语言模型中的应用价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近抽空想梳理下GPT的相关工作,现在大模型越来越重要了,可以解决很多很复杂的问题。这里简单梳理一下InstructGPT的相关工作,论文链接:https://arxiv.org/pdf/2203.02155.pdf

一、前言

InstructGPT做了什么,从论文的摘要来描述是:

使语言模型变得更大并不意味着它们本身就能更好地遵循用户的意图。 例如,大型语言模型可能会生成不真实、有毒或对用户毫无帮助的输出。 换句话说,这些模型与其用户不一致。 在本文中,我们展示了一种通过根据人类反馈进行微调,使语言模型与用户在各种任务上的意图保持一致的途径。 从一组标记器编写的提示和通过 OpenAI API 提交的提示开始,我们收集了所需模型行为的标记器演示数据集,我们使用该数据集通过监督学习来微调 GPT-3。 然后,我们收集模型输出排名的数据集,用于通过人类反馈的强化学习进一步微调该监督模型。 我们将生成的模型称为 InstructGPT。 在对我们的即时分布的人类评估中,1.3B 参数 InstructGPT 模型的输出优于 175B GPT-3 的输出,尽管参数少了 100 倍。

简单总结就是:我们能从现实中获取的数据普遍质量不高,导致模型没法深层次理解人类的意图从而输出了一些意义不是很深的结果,这个问题没法通过模型的结构或者参数量进行修复。为此,引入了人工强化学习,直接借助人工提取出更高质量的,能够更深层次反应人类意图的数据信息。

二、InstructGPT 做了什么

先看模型的整体训练流程:
在这里插入图片描述

InstructGPT训练流程中,涉及到两套训练数据集的获取:一套用于有监督微调训练得到一个基础的GPT模型,另外一套用于人工排序训练得到一个激励模型reward model (RM)。

InstructGPT展示了3个训练流程:
(1)先有监督微调训练得到一个基础GPT模型;
(2)人工排序数据集训练得到一个激励模型reward model (RM);
(3)利用步骤(1)的GPT模型和步骤(2)激励模型RM反复交替训练,进行人工强化训练。

步骤(1)就是简单的有监督微调,没啥说的,重点说下步骤(2)和步骤(3)。

步骤(2)中当给定一段输入和对应的4个答案输出ABCD,会让人工进行排序,排序觉得更符合自己期望的答案的在前面。如框架图中展示的D>C>A=B。

现在来到重点,激励模型怎么训练呢?根据上面这个人工排好的顺序,类似于做了一个对比学习,激励模型输出的分数答案靠前的要大于答案靠后的,比如Score_D > Score_C.

在这里插入图片描述

训练好得到激励模型RM后,开始进入步骤(3),步骤(3)就是采用的人工强化学习中的PPO算法进行训练。整体流程结束。
在这里插入图片描述

三、简单总结

总体来说InstructGPT不管在模型的结构上还是训练方式上都没有很大的创新,模型结构保持了GPT的传统结构,仅仅使用了transformer的解码器进行深度堆叠。训练方式上也是直接沿用了传统的强化学习的PPO算法。

InstructGPT最大的贡献是验证了强化学习对当前大模型的重要影响和意义,因为回顾近几年大模型的工作,无非就是两个方向:数据越来越大、模型越来越大。而强化学习属于很早就存在的算法,近几年有些冷门,没怎么受到重要,只是可能很多人都没有想到引入强化学习后可以对大模型带来这么巨大的影响,这是一个很有魄力的尝试。

希望我的分享对你的学习有所帮助,如果有问题请及时指出,谢谢~

### 如何通过人类反馈训练语言模型以遵循指令 通过人类反馈训练语言模型以使其能够更好地遵循指令是一个复杂的过程,涉及多个阶段和技术方法。以下是对此过程的详细介绍: #### 数据收集与准备 为了使模型具备理解并执行指令的能力,数据的质量至关重要。最初的数据来源于互联网文本,这些数据用于预训练大型语言模型的基础架构[^2]。然而,这种基础模型的目标仅仅是预测下一个单词,并未针对特定的任务优化。 在项目初期,由于缺乏现成的支持指令交互的模型,研究人员采用了人工生成的方式获取高质量的输入-输出对。具体来说,OpenAI 雇佣了承包商来手动创建三类提示及其对应的理想响应[^3]。这种方法虽然劳动密集型较高,但它为后续更高效的自动化流程奠定了坚实的基础。 #### 微调 (Fine-tuning) 一旦积累了足够的高质量样本集之后,则可以利用它们进一步微调预先存在的大体量参数化神经网络结构。此步骤旨在调整原有通用性较强的语言建模能力向更加专注于理解和回应各种形式的具体指示方向转变。即让机器学习如何依据给定条件产生恰当的结果而不是单纯依赖统计规律推测可能延续的内容片段[^1]。 #### 基于偏好排序的学习机制引入 除了传统的监督式教学外,在本案例里还特别强调了一种新颖的技术手段—基于偏好的强化学习(RLHF, Reinforcement Learning from Human Feedback) 。它的工作原理大致如下:先由真人审阅若干候选答案版本;接着根据其主观判断给出相对优劣评价等级作为奖励信号反馈至算法内部;最后借助这些累积起来的经验指导系统逐步改进直至达到预期效果为止。 ```python def train_with_human_feedback(model, dataset): """ A simplified pseudo-code representation of training a model using human feedback. Args: model: Pretrained language model instance. dataset: Dataset containing input-output pairs along with preference rankings. Returns: Trained model that better follows instructions based on human preferences. """ for epoch in range(num_epochs): for batch in dataset: outputs = model(batch['input']) # Obtain human-generated ranking or direct labels as rewards reward_signal = get_reward_from_humans(outputs) # Update model parameters via reinforcement learning techniques update_model_parameters(model, reward_signal) return model ``` 上述伪代码展示了如何结合人类反馈来进行模型训练的一个简化框架。其中`get_reward_from_humans()`函数代表从真实用户处获得关于不同输出选项之间比较的信息源流转换操作序列集合体实例对象列表数组等等概念术语定义说明文档链接地址引用标记.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值