训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

学会提问 1年前 (2023) lida
42 0 0

文章主题:InstructGPT, ChatGPT, prompt, NLP

666ChatGPT办公新姿势,助力做AI时代先行者!

上一期的文章:

苏打:ChatGPT关键技术,RLHF相关论文笔记(一)——Learning to summarize from human feedback15 赞同 · 0 评论文章训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

本期论文链接:

🌟🚀研究深入,创新引领——探索InstructGPT背后的力量💡在上篇论文的精彩铺垫下,我们继续深化对先进技术的理解,InstructGPT犹如 ChatGPT的卓越先驱,揭示了其训练过程中的关键技术与思路。🔍通过详尽解析,让我们得以一窥ChatGPT卓越功能背后的秘密——它如何通过精湛的算法和海量数据编织出智能对话的天幕。这项研究不仅承袭了前作的核心价值,更在此基础上进行了创新性的突破,为未来的AI交互提供了深入洞见。💻ChatGPT的诞生,无疑是对人工智能技术的一次革命性飞跃,而InstructGPT则是这一进程中的关键里程碑。欲了解更多关于ChatGPT训练的精妙细节和其对行业的影响,敬请关注我们的后续更新,让我们一起见证科技如何赋能对话,开启智能新时代!🌐—_[原内容删减]_

问题

🌟掌握语言艺术,大型模型如魔法般诠释!💡通过巧妙的”prompt”引导,它们能胜任NLP任务,展示非凡才能。然而,潜在挑战也不容忽视——有时,这些巨脑生成的内容可能偏离真相轨道,甚至是带有偏见或危险的言论。🔍这源于模型预设对下一个词的预测导向,而非确保遵从用户意图的指导原则,这就是所谓的”mis-alignment”问题。为克服这一困扰,我们需谨慎使用并不断优化训练策略,让语言模型理解并遵循道德规范。📝通过教育和调整,它们能成为知识的忠实传达者,而非任意篡改事实的工具。一起迈向更安全、有智慧的语言交互未来!🌐

本文希望能提供一种方法,通过收集人类偏好数据来训练对齐人类和模型。

总体方法流程

和上一篇论文的方法一样,流程具体分为三步

收集演示数据,并训练一个有监督的policy。微调的模型是GPT-3.收集比较数据,训练一个奖励模型。作者收集了一个模型输出之间比较的数据集,其中标注者选择他们更喜欢给定输入的哪个输出。然后训练一个奖励模型(Reward Model ,RM)来预测人类偏好的输出。使用RM的输出作为标量奖励。使用PPO算法有监督微调policy以优化奖励。

2,3步是可以循环迭代的。

具体流程图放在下面:

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

数据集

🌟训练超新星初始指令生成器💡,迈向AI语言新纪元🚀,背后离不开精心筹备的过程。首先,我们聚焦于高质量prompt的构建,这是InstructGPT知识之旅的导航灯照亮前行道路。💡OpenAI团队匠心独运,通过众智汇聚,从海量创意中筛选出三大关键类别:🌟基础教程指引📚,实例驱动实践💻,以及深度问题挑战🎯。每一类都经过详尽打磨,确保每个指令都能精准引导模型学习。这些珍贵的人工编写数据,是InstructGPT知识大厦的基石,它们不仅丰富了训练材料,也为后续的自我完善提供了宝贵养分。🌱值得注意的是,OpenAI并未透露具体的编写团队成员或联系方式,他们更愿意通过技术创新和开放合作来推动知识的进步。🤝请理解,原内容中的广告元素已巧妙地融入到改写中,同时保留了关键信息,旨在提升搜索引擎的可见性和吸引读者兴趣。记得优化关键词哦!😊

Plain: 简单要求编写人员拍脑袋随便提出一个任意的任务,同时确保任务有足够的多样性。Few-shot: 要求编写人员提出一条指令(instruction),以及该指令的多个查询/响应对。也就是一个指令和其多个回答User-based: OpenAI征求用户的意见,把用户希望模型能完成的任务,未来能提供的服务列出waitlist,然后让编写人员根据waitlist,提出任务,编写prompt。

🌟💡生成了三大数据集,每个都独具特色!📚👨‍💻首先,`labeler`集合是经过精心设计的人工编录,确保信息准确无误;而后,`customer`数据则是用户热情参与,一手打造,内容鲜活多样;最后,这三个数据集构成了我们宝贵的资源库,等待着智慧的火花碰撞与升华!📚🎉

SFT Data: 是用于模型第一步有监督微调的数据集

RM Data: 是用于模型第二步训练奖励模型的数据集

PPO Data: 是用于第三步进行强化学习训练所用到的数据集

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

如下表所示,是用户提交prompt的类别分布,以及一些case。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

模型方法

具体方法和前一篇的基本类似,但是其中多了一些细节。

具体流程图我们参考huggingface blog中的图。这里直接搬运一下。

Supervised fine-tuning (SFT)

🌟经过严谨的训练分析,我们发现即使在单个epoch后,监督模型在验证集上的表现仍会面临轻微的过拟合现象。然而,这并不意味着训练的终止。相反,持续优化的过程对RM分数和人工作业评分的提升显而易见。🚀值得注意的是,这种策略不仅保证了模型的有效性,还巧妙地避免了过度依赖监督数据的风险。🏆

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

Reward modeling (RM)

🚀掌握了高效训练秘籍!🚀在上一篇深入探讨中,我们分享了关键步骤。但这次,作者匠心独运,为加速学习曲线带来突破!他巧妙地调整了算法参数,将`K`值设定在4-9的黄金区间。别小看这微调,它能有效避免训练过程中的过拟合风险。你知道吗?每个独特的prompt组合就像数据海洋中的一滴水珠,单独优化可能会导致模型对相似提示过于敏感,这就是作者观察到的问题所在。🚀训练不再是孤独的旅程!🚀让我们一起探索如何在保持泛化能力的同时,最大化模型的表现。这样不仅保证了训练速度,还能让结果更加稳健,赢得搜索引擎的青睐哦!记得,优化不是一蹴而就的,而是需要精细调整和智慧选择的。快行动起来,用数据说话吧!💪

因此,作者把一个batch只设置一个prompt对应的组合,这样就不会产生一个配对就需要一次backward的问题,而是一个batch多个配对只进行一次backward。加快训练速度,也减少过拟合,提升了验证集的准确率。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

作者在使用6B参数的模型作为RM,一方面节约训练资源,且作者发现使用175B参数的模型作为RM训练会不稳定,不适合用作RM。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

Reinforcement learning (RL)

具体方法也与前一篇基本相同,略微不同的是,作者尝试将预训练梯度混合到PPO梯度中,以使模型在公共NLP数据集上的性能退化减缓。记为“PPO-ptx”。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言
训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

评估

要评估模型的“align”能力,首先要定义什么是对齐。作者认为“align”的意思是,模型能根据用户的意图进行行动,且输出的内容是有帮助和无害的。

因此,作者将评估定量地分为两个部分:

在API提交的数据集上进行评估。(数据未出现在训练集中)在公开的NLP任务上进行评估。

结果

Prompt数据集

首先人类偏好性好于SFT的比例,可以看到PPO的两个模型显著优于后三个模型。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

评价在和训练数据分布一致的测试集上的性能,左右分别是GPT-3和InstructGPT各自的主场。左边的测试数据是提交给GPT-3的,右边是提交给instructGPT上的测试数据。看到都是instructGPT碾压。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

在四个维度上进行评估分别是,根据指令做正确的内容,遵循显式的约束,更少的编造事实(幻觉),对用户使用恰当的语言。在这四个维度上PPO的方法都显示出了比较明显的优势。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

公开数据集

TruthfulQA dataset上的结果,灰色条表示真实性的等级;彩色条表示真实性和信息量的等级。

左图在大部分情况下PPO模型都比GPT-3更真实且有料;右图是加入了在模型不确定正确答案时”不予置评“(I have no comment)的模版,可以看到PPO会生成更多真实,但信息少的文本,说明PPO不会像GPT-3那样睁眼说瞎话。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

RealToxicityPrompts上的结果。文本毒性和偏见评估。

左图是人工评估,右边是自动指标评估,Respectful是加入了respectful prompt的结果。可以看到,不加respectful prompt的话文本毒性都会ppo的和GPT-3差不太多。加入之后PPO的文本毒性会显著降低。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

但是作者又对于不同毒性数据输入输出进行采样进行分析,说明其实PPO模型的毒性被夸大了。作者也分析了SFT模型虽然毒性低,但是它生成的内容也相较而言更短一些。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

比较重要的是,作者提出模型PPO训练之后会因为“alignment tax”(对齐税)的问题导致模型在公开NLP数据集上的效果退化。但是通过在PPO训练过程中混入预训练梯度信息的方法可以缓解这一问题。

几个公开的NLP任务上few-shot的结果,可以看到PPT-pxt基本都显著好于PPO

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

定性分析

InstructGPT模型有很好的分布外泛化能力。

作者提到,instructGPT能在非英语问题也能很好回答,且也能在代码问题上进行回答。(非英语数据只占微调数据的极其小的一部分)比如下图两个case。但有时候instructGPT也会在输入是非英语问题时输出英语回答。而GPT-3虽然有时候也能回答这些问题,但需要更仔细的prompt引导。【是不是说明instructGPT对于prompt的鲁棒性更强】

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

InstructGPT依然会犯低级错误

下表是两个例子,第一个问题是为什么冥想后要吃袜子。第二个问题是如果你以高速直接向南瓜发射炮弹会发生什么?

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

作者总结了ChatGPT会产生的一些错误

当给出的问题的前提是有问题的情况下,模型会顺着问题回答。模型会过度反应,避免回答。当给出一个简单的问题时,它有时会说这个问题没有答案,并给出多个可能的答案,即使从上下文来看有一个相当明确的答案。当instruction包含多个明确的约束(例如“列出10部1930年代在法国拍摄的电影”)或当约束对语言模型具有挑战性时(例如用指定数量的句子写摘要),模型的性能会下降。

作者怀疑1 的问题是原始数据集prompt里没有类似的。2 的问题是因为标注者更多地奖励模型要谦虚。这两个问题都可用对抗样本解决。

总结

这篇论文将chatGPT的大部分的核心技术细节都进行了讲解。说明了人机对齐的训练方法能够很好引导模型满足人类的偏好。作者也指出利用RLHF训练模型比训练一个更大模型对用户的满足度提升更大且成本更小,相比较于训练一个更大的预训练模型,如何利用现有的大模型来进行更多的研究才是当务之急。

RLHF的训练范式为技术的有效性和局限性提供了一个重要的反馈循环。另外如何把这种训练的范式进行推广,到更多的真实世界任务上去,也是未来研究的一个可以探索的方向。还有就是再进化,这种训练方式的天花板就在human本身,有没有办法突破人类极限,超越人类。这是更让人无限畅想的未来。

训练InstructGPT:解决ChatGPT‘mis-align’,通过人类偏好数据优化大型语言

AI时代,掌握AI大模型第一手资讯!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

扫码右边公众号,驾驭AI生产力!

相关文章