文章主题:ChatGPT, 技术细节, 语言模型, 强化学习
一文解读 ChatGPT 的技术细节!
原文传送门
ChatGPT 试用连接:https://chat.openai.com/chat
特色
ChatGPT 和这篇论文中提出的 InstructGPT 使用相似的方法进行训练,这是一个很好的消息,因为这意味着我们可以省去自己动手写东西的时间。
内容
一、挑战
随着语言模型的不断扩展,其规模日益壮大,但这类模型往往无法充分满足用户需求,这一现象在本文中被称作“不匹配”(misalignment)。
二、之前的工作
三、方法
在本研究中,我们主要采用一种名为“从人类反馈中学习”的方法。整个研究框架可以分为三个关键步骤:首先,我们需要人工搜集一定数量的示例数据,然后对这些数据进行有监督的训练,以建立一个初始的模型;其次,我们需要 manually compare and label the output options generated by the model,以此来构建一个能够为模型提供奖励信号的标签模型;最后,我们利用这个标签模型,结合 PPO 算法(强化学习),进一步对模型进行优化训练。
ChatGPT 的价值观念实际上源于标注人员的价值观。标注人员所提供的数据不仅用于最初的监督微调阶段,而且还被利用来训练一个奖励模型,以便在后续的大规模强化学习训练过程中对智能体进行约束。
为了确保其标注过程的一致性和准确性,OpenAI仅雇佣了40名全职标注员,并设定了一套统一的价值取向和标准。这些标注员将会接受严格的筛查,以确保他们拥有正确的价值观念,从而保证整个标注过程的准确性和一致性。
我们先来看一下第一步
在本研究中,我们采用了来自OpenAI GPT3 Playground的prompts大数据集。以下列举了该数据集中部分prompt的示例以及相关情况,以便您对该数据集有更深入的了解。
对于不熟悉prompt的同学们,我们可以将其比作“抛砖引玉”中的砖头。在这个比喻中,你需要先向对方介绍一些基本概念或背景知识,以便让语言模型能够顺利地展开讲述。否则,即使语言模型包含了丰富的知识体系,也会因为缺乏引导而无法找到合适的入口。因此,在向语言模型提问之前,先简要地阐述一下相关领域的基本信息是非常重要的。
注意到,第一步和第二步是有监督学习,因此有 train-valid 的划分。
在接下来的步骤中,我们的标注员将手动针对这些提示提供示例回答,以便让语言模型从中学习。通过这种方式,我们能够构建出一个基础的 GPT-3 语言模型,进而将其转化为我们这里的 SFT 模型。
接下来我们看一下第二步
首先,对于每一个数据集中采样得到的 prompt,先前训练的 SFT 模型都会输出若干个选项,比如图例里面的 ABCD。
接下来,标注员会对于给出的候选输出进行排序。
原本的 prompt (x) 和标注员给的示例回答 (y) 就会用来训练一个奖励模型。我们希望被判定更好的输出得到的奖励数值要更高。由此,奖励模型可以通过最小化下面这样的损失函数来得到。
一个技术细节:要把 K choose 2 个候选对的比较放到同一个 batch 中做梯度下降,不然容易过拟合。
最后我们来看第三步
这一步的数据集都来自于 customer,数据集规模更大一些。这上面的训练就完全靠 reward model 自身的泛化能力来引导了。
在这一步的训练过程中,还不仅仅使用强化学习的优化目标(前面没有被框起来的部分)。还使用了下面的两个正则项来约束模型的表现。
最后,做一下总结:
关于方法的一些常见问题:
1、关于三个阶段所用到的数据集
2、关于方法的选择
3、我自己先前的一个疑问:前面的有监督学习过程,看起来似乎是一轮的,后续咋又要使用强化学习了呢?
研究了一些,这里的对话看起来是建模成多轮的,前后对话有关联,在这一点倒是适合使用强化学习建模。 ChatGPT 里面专门有一个 Reset Thread 的按钮,可以看到这件事情。
四、实验结果
文章要在这三个 H (Helpful、Honest、Harmless)上对于模型做衡量,衡量方式如下:
测试数据集/分布和测试任务:
注意到这里的 API 数据集就是之前 OpenAI 开放让大家试用的时候,收集到的大家奇奇怪怪的问题/输入(prompt)。
Helpfulness 测试
这个测试是通过标注员进行二选一的比较来进行的,标注员在待测试模型的输出和 SFT 模型的输出中选择一个更好的。如果得分为 0.5 则表示该模型和 SFT 相比性能差不多。
效果上来说,直接对于 GPT 加 prompt 也还不错,不过还是没有最后的 PPO-ptx 效果好。
Helpfulness 在评价中是又下面这几项综合起来的,可以看一下他们分项的表现。使用示例样本进行有监督学习会使得模型更少地幻想(hallucination,凭空捏造信息),而基于奖励模型的 PPO 训练则会使得这样的幻想增多。此外,使用更大规模的语言模型也会使得幻想现象增多。
Honest/Truthfulness 测试
使用了 Instruction + QA prompt 来促使模型在不是非常确定的时候不要发表意见。
方法是在模型前加上如下这样的 instruction prompt:
Harmless 测试
类似地,方法也是加上如下的 prompt 从而减少模型产生有害/不礼貌/带有偏见的回答。
通过下面这些配对出现的 entropy 来衡量模型的 bias。
一个总结:
缺陷之一:该模型会时常犯错。
有时候能算对,犯的错误还不太一样,并且是真人常犯的错误。关键是能用各种不同的方法来求解,确实牛,但是有些方法能走通,有些方法走一半搞错了。感觉这已经很强了。
五、总结
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!