本文正在参与 人工智能创作者扶持计划

今日偶然间看到了斯坦福大学CS224N——深度学习自然言语处理(NLP with DL)——的prompting和RLHF这一讲的课件,读完之后顿觉醍醐灌顶,再加上课件自身逻辑清晰、内容层层推动且覆盖了NLP范畴最新进展(2023年冬季课程),所以对此课件进行扼要总结,以备后续不时之需。

今日就先总结下最近最火的ChatGPT背后的技能及相关技能的演化进程。

这一讲的标题是prompting(提示词)和RLHF(Reinforcement Learning from Human Feedback,人类反馈的强化学习),主题是从言语模型到人工智能帮手,乍一看就能猜到这一讲大致便是讲怎么利用prompting和RLHF技能使得NLP从言语模型进化到人工智能帮手的。详细分为了下面三节:

  • Zero-Shot (ZS) and Few-Shot (FS) In-Context Learning——基于上下文的零样本学习和少样本学习
  • Instruction finetuning——指令微调
  • Reinforcement Learning from Human Feedback (RLHF)——人类反馈的强化学习

下面就扼要介绍一下这三节首要讲了什么(方便与原始课件对齐,下面的标题均选用英文原始表述)。

Zero-Shot (ZS) and Few-Shot (FS) In-Context Learning

这一节先从GPT模型的演进引入,首要表述了跟着模型参数和练习数据的增大,言语模型逐步涌现(emerging)出了一些才能,这些从GPT对应的论文就可以看出端倪。

GPT-2对应的论文 Language Models are Unsupervised Multitask Learners ,讲述了言语模型是无监督的多使命学习器,在论文中,进一步论述了预练习好的GTP-2模型在没有进行微调和参数更新的的情况下,在8个零样本学习的使命中取得了7个使命的SOTA。这表明此刻的GPT-2已经涌现出了零样本学习的才能。

GPT-3的论文 Language Models are Few-Shot Learners,讲述了言语模型是少样本学习器。在这篇论文里,作者们论述了在简略的使命前添加少量样例的情况下(Specify a task by simply prepending examples of the task before your example),言语模型也可以SOTA的成果。这阐明GPT-3已经涌现出了基于上下文的少样本学习才能。一起,添加到使命前的样例也可以看作是一种prompting。

CS224N 第11讲 prompting和RLHF

可是,关于杂乱的使命(数学运算、逻辑推理等等),简略的给出成果并不能使模型给出正确的成果。此刻,需求将提示词替换一种方式,这就引出了思维链提示词(Chain of Thought prompting,以下简称CoT Prompting)。简略地说,便是将推导的进程添加到提示词中。如下图所示:

CS224N 第11讲 prompting和RLHF

一起,Chain of Thought Prompting这个才能也是跟着模型标准的增大而出现的。

CS224N 第11讲 prompting和RLHF

一起,也有作业探究了Zero-shot CoT Prompting和few-shot CoT Prompting,进而发现了一片新大陆——prompting engineering。

Instruction Finetuning

之所以有这个作业,是由于大模型生成的成果,与人类的偏好仍是有些误差,或者说没有跟用户的意图对齐(not aligned with user intent)。为了坚持模型现有的zero-shot、few-shot、CoT才能,自然而然地想到可以在预练习好的大模型上进行微调(finetuing),只不过这时的微调与之前的微调有所区别——即这时的微调是多使命的微调。详细而言,便是将不同的使命笼统为(instruction, output)二元组,喂给模型,一起更新模型参数。

CS224N 第11讲 prompting和RLHF

需求留意的是,这一步就有点像预练习了,需求很大的数据集和很大的模型。所以课件中戏称instruction finetuning为instruction pretraining,成了两阶段预练习。目前,也已经有了对应的数据集:

  • SuperNaturalInstructions dataset(1,600+使命,3,000,000+样例)
  • BIG-bench

显然,instruction finetuing的缺陷有两个:

  • 数据预备价值巨大
  • 言语模型对过错token的惩罚使用相同的权重,这一点与人类偏好不一样

为了处理上述两个缺陷,RLHF出场了

Reinforcement Learning from Human Feedback (RLHF)

由于涉及到较的公式,这一部分的原理就不再详细解释了,说一下简略的思路。

为了处理instruction finetuning中存在的数据预备价值大的问题,一个直观的想法便是是否可以用模型生成的内容作为人工构造内容的平替。为了达到这个目的,一种做法便是利用强化学习。强化学习基本知识可以参阅王树森和张志华教师写的一本书——《深度强化学习》,这本书还有对应的视频教程,讲解浅显易懂,值得一看。

为了使用强化学习,需求构造出一个reward函数,该函数将言语模型生成的语句作为输入,输出语句对应的评分。怎么构造出reward函数呢,这儿选用了一个神经网络来对奖励进行学习,可是假如直接对语句进行评分的话,人的主观因素对成果影响过大,这儿选用两个语句的相对得分对模型进行练习。

有了reward函数,以及初始的言语模型,再有一个依据reward对言语模型参数进行更新的策略,就可以进行RLHF了。详细如下图所示:

CS224N 第11讲 prompting和RLHF

一起,有篇论文对仅预练习、Instruction Finetuning、RLHF的效果进行了比照,成果如下:

CS224N 第11讲 prompting和RLHF

可是,最终还要阐明一点,选用了RLHF办法的模型,尽管可以产生看上去更权威更有协助的成果,但生成成果的真实性却值得商讨。(Chatbots are rewarded to produce responses that seem authoritative and helpful, regardless of truth)

这一节的内容就到这儿,最终做个总结:

CS224N 第11讲 prompting和RLHF

关注算法工程笔记,回复【prompt】,获取该讲课件和论文,感谢阅览!