文章标签:近期,ChatGPT 问世并取得巨大成功,导致 RLHF、SFT、IFT、CoT 等缩写成为热门话题。;我们首先关注基于语言模型的会话代理的全景。ChatGPT 并非独创,实际上许多组织在 OpenAI 之前就发布了自己的语言模型对话代理 (dialog agents),包括 Meta 的 BlenderBot,Google 的 LaMDA,DeepMind 的 Sparrow,以及 Anthropic 的 Assistant (Anthropic 的 Claude 就是部分基于 Assistant 继续开发而得的)。;来自:Hugging Face;,可以快速了解最新优质的 NLP 前沿技术和相关论文~;语言模型对话代理产品论文链接:;Meta 的 BlenderBot:;Google 的 LaMDA:;DeepMind 的 Sparrow:;Anthropic 的 Assistant:;下表根据是否能公开访问、训练数据、模型架构和评估方向的详细信息对这些 AI 聊天机器人进行了比较。ChatGPT 没有这些信息的记录,因此我们改为使用 InstructGPT 的详细信息,这是一个来自 OpenAI 的指令微调模型,据信它是 ChatGPT 的基础。;我们观察到,尽管在训练数据、模型和微调方面存在许多差异,但也存在一些共性。上述所有聊天机器人的一个共同目标是「指令依从 (instruction following)」,即遵循用户指定的指令。例如,要求 ChatGPT 写一首关于微调的诗。;通常,基础模型的语言建模目标不足以让模型学会以有用的方式遵循用户的指令。模型创建者使用「指令微调 (Instruction Fine-Tuning,IFT)」方法来达到该目的,该方法除了使用情感分析、文本分类、摘要等经典 NLP 任务来微调模型外,还在非常多样化的任务集上向基础模型示范各种书面指令及其输出,从而实现对基础模型的微调。这些指令示范由三个主要部分组成 —— 指令、输入和输出。输入是可选的,一些任务只需要指令,如上文使用 ChatGPT 做开放式文本生成的示例。当存在输入时,输入和输出组成一个「实例 (instance)」。给定指令可以有多个输入和输出实例。如下例 (摘自 Wang 等,22):;IFT 的训练数据通常是人工编写的指令及用语言模型自举 (bootstrap) 生成的实例的集合。在自举时,先使用少样本技术输入一些样本给 LM 用于提示它 (如上图所示),随后要求 LM 生成新的指令、输入和输出。每一轮都会从人工编写的样本和模型生成的样本中各选择一些送给模型。人类和模型对创建数据集的贡献构成了一个谱图,见下图:;谱图的一端是纯模型生成的 IFT 数据集,例如 Unnatural Instructions (Honovich 等,22);另一端是经由社区的努力精心制作的指令如 Super-natural instructions (Wang 等,22)。在这两者之间的工作是使用一小组高质量的种子数据集,然后进行自举生成最终数据集,如 Self-Instruct (Wang 等,22)。为 IFT 整理数据集的另一种方法是将现有的用于各种任务 (包括提示) 的高质量众包 NLP 数据集使用统一模式或不同模板转换为指令。这一系列工作包括 T0 (Sanh 等,22)、Natural instructions 数据集 (Mishra 等,22)、FLAN LM (Wei 等,22) 和 OPT-IML (Iyer 等,22)。;论文链接:;Unnatural Instructions (Honovich 等, 22):;Super-natural instructions (Wang 等, 22):;Self-Instruct (Wang 等, 22):;T0 (Sanh 等
近期,ChatGPT 的巨大成功使其成为人们关注的焦点,同时,一些晦涩的缩写,如RLHF、SFT、IFT、CoT等也开始被更多人提及。那么,这些首字母缩略词到底代表什么含义呢?它们为何如此重要?为了回答这些问题,我们深入研究了相关的重要论文,以便对这些工作有一个全面的了解,并对其未来发展趋势进行预测。
在探讨会话代理的全面视角时,我们需要先了解其基础——基于语言模型的会话代理。尽管 ChatGPT 并非首次提出这一概念,但实际上许多组织在 OpenAI 之前就已经推出了自己的语言模型对话代理。这些对话代理的发展并非一蹴而就,例如 Meta 的 BlenderBot、Google 的 LaMDA、DeepMind 的 Sparrow,还有 Anthropic 的 Assistant。这些助手的发展历程表明,会话代理已经成为人工智能领域的一个重要研究方向。
来自:Hugging Face
关注zenRRan,可以快速了解到最新优质的NLP前沿技术和相关论文~
点击进入——>微信NLP技术交流群语言模型对话代理产品论文链接:
Meta 的 BlenderBot:
https://arxiv.org/abs/2208.03188Google 的 LaMDA:
https://arxiv.org/abs/2201.08239DeepMind 的 Sparrow:
https://arxiv.org/abs/2209.14375Anthropic 的 Assistant:
https://arxiv.org/abs/2204.05862其中一些团队还公布了他们构建开源聊天机器人的计划,并公开分享了路线图 (比如 LAION 团队的 Open Assistant),其他团队肯定也有类似的内容,但尚未宣布。你可以在 Open Assistant 的 GitHub 仓库中找到其愿景 & 路线图文档: https://github.com/LAION-AI/Open-Assistant
在以下的表格中,我们对AI聊天机器人的性能进行了比较,主要依据的是其是否具备公开访问的特性、所使用的训练数据、模型的架构以及具体的评估方向。值得注意的是,ChatGPT并未提供上述信息,因此在评估过程中,我们选择采用InstructGPT的详细信息,这是一种来自OpenAI的指令微调模型,被认为是ChatGPT的基础。
LaMDABlenderBot 3SparrowChatGPT / InstructGPTAssistant组织GoogleMetaDeepMindOpenAIAnthropic能否公开访问否能否有限否大小137B175B70B175B52B预训练基础模型未知OPTChinchillaGPT-3.5未知预训练语料库大小 (词数)2.81T180B1.4T未知400B模型是否可以访问网络✔✔✔✖️✖️有监督微调✔✔✔✔✔微调数据大小质量:6.4K安全性:8K真实性:4KIR:49K大小从 18K 到 1.2M 不等的 20 个 NLP 数据集未知12.7K (此为 InstructGPT,ChatGPT 可能更多)150K+ LM 生成的数据RLHF✖️✖️✔✔✔人为制定的安全规则✔✖️✔✖️✔评价标准1、质量 (合情性、具体性、趣味性)2、安全性 (偏见) 3、真实性1、质量 (参与度、知识运用)2、安全性 (毒性、偏见)1、校直 (有帮助,无害,正确)2、证据 (来自网络)3、是否违反规则4、偏见和刻板印象5、诚信度1、 校直 (有帮助、无害、真实)2、偏见1、校直 (有帮助、无害、诚实)2、偏见用于数据标注的众包平台美国供应商亚马逊 MTurk未知Upwork 和 Scale AISurge AI、Amazon MTurk 和 Upwork在对大量训练数据、模型以及微调过程进行深入观察之后,我们发现尽管各个聊天机器人在具体实施过程中存在诸多差异,但在核心目标上却有着惊人的一致性。它们共同追求的目标是「指令依从 (Instruction Following)」,也就是严格遵循用户所输入的指令。举例来说,ChatGPT 就被要求创作一首关于微调的诗歌。
ChatGPT 指令示例从预测文本到遵循指令
在实际应用中,我们发现基础模型的语言建模目标往往无法满足用户对于模型应具备的高效互动能力的需求。为了克服这一问题,模型创建者采用了“指令微调(Instruction Fine-Tuning,IFT)”策略。此方法不仅运用情感分析、文本分类、摘要等经典的自然语言处理(NLP)任务对模型进行微调,而且还通过展示各种书面指令及其输出,向基础模型学习各种实际应用场景下的书面指令。这样一来,就可以通过对基础模型的不断微调,使其能够更有效地执行用户给出的指令。具体而言,这些指令示范主要包括三大核心部分:指令、输入和输出。其中,输入并非总是必需的,某些任务仅需指令即可,例如在之前的示例中,我们利用ChatGPT进行了开放式文本生成。而当存在输入时,输入和输出便构成了一个完整的“实例”。值得注意的是,针对某个指令,可能会有多个输入和输出实例。例如,在Wang等人(22)的研究中,就给出了一个具体的例子。
指令和实例示例IFT 的训练数据一般由两部分构成:一部分是人工编写的指令,另一部分是由语言模型自动生成的实例。在生成实例的过程中,首先会利用少样本技术向语言模型提供一些初始样本,以便对其进行引导(如图所示)。接着,会要求语言模型根据这些引导生发出新的指令、输入和输出。在每一轮过程中,都会从人工编写的样本和模型生成的样本中各自选取一部分送入模型。这种人类与模型的互动,共同为创建数据集的过程做出了贡献,形成了如下的谱图(如下图所示)。
IFT 谱图在谱图的另一端,是由众多社区成员倾力打造的精美指令集,例如Super-natural instructions (Wang等,22)。而在这两端之间,则是一组精选的高质量种子数据集,经过自举生成最终的数据集,如Self-Instruct (Wang等,22)。对于IFT数据集的整理而言,一种方法在于将适用于多种任务(含提示)的高质量众包NLP数据集,通过统一模式或不同的模板转化为指令。这其中包括T0 (Sanh等,22)、Natural instructions数据集 (Mishra等,22)、FLAN LM (Wei等,22)以及OPT-IML (Iyer等,22)。
论文链接:
Unnatural Instructions (Honovich 等, 22):
https://arxiv.org/abs/2212.09689Super-natural instructions (Wang 等, 22):
https://arxiv.org/abs/2204.07705Self-Instruct (Wang 等, 22):
https://arxiv.org/abs/2212.10560T0 (Sanh 等, 22):
https://arxiv.org/abs/2110.08207Natural instructions 数据集 (Mishra 等, 22):
https://arxiv.org/abs/2104.08773FLAN LM (Wei 等, 22):
https://arxiv.org/abs/2109.01652OPT-IML (Iyer 等, 22):
https://arxiv.org/abs/2212.12017安全地遵循指令
尽管经过指令微调的 LM 在某些情况下能够生成有帮助和安全的响应,但这并不是 always 如此。有时,它可能会通过提供无用的回应来回避问题,比如“对不起,我不明白。”这样的回应。此外,对于涉及敏感话题的用户输入,LM 也可能会产生不安全的响应。为了减少这类行为,模型开发人员采用了有监督微调(Supervised Fine-tuning,简称 SFT)的方法。具体而言,他们会在大量高质量的人类标注数据上对基础语言模型进行微调,以提升模型的有用性和安全性。详情请参见下面的表格(引自 Sparrow 论文的附录 F)。
SFT 和 IFT 联系非常紧密。指令微调可以看作是有监督微调的一个子集。在最近的文献中,SFT 阶段经常被用于提高响应的安全性,而不是接在 IFT 后面提高指令相应的具体性。将来,这种分类和划分应该日臻成熟,形成更清晰的使用场景和方法论。
人工安全规则谷歌的 LaMDA 也根据一组规则 (论文附录 A) 在带有安全标注的对话数据集上进行微调。这些规则通常由模型创建者预先定义和开发,涵盖广泛的主题,包括伤害、歧视、错误信息。
微调模型
同时,OpenAI 的 InstructGPT、DeepMind 的 Sparrow 和 Anthropic 的 Constitutional AI 使用 人类反馈强化学习 (Reinforcement Learning From Human Feedback,RLHF) 来微调模型,该方法使用基于人类偏好的标注数据。在 RLHF 中,根据人类反馈来对模型的响应进行排序标注 (如,根据人类偏好选择文本简介)。然后,用这些带标注的响应来训练偏好模型,该模型用于返回 RL 优化器的标量奖励。最后,通过强化学习训练对话代理来模拟偏好模型。有关更多详细信息,请参阅我们之前关于 RLHF 的文章: ChatGPT 背后的“功臣”——RLHF 技术详解。
思维链 (Chain-of-thought,CoT) 提示 (Wei 等,22) 是指令示范的一种特殊情况,它通过引发对话代理的逐步推理来生成输出。使用 CoT 微调的模型使用带有逐步推理的人工标注的指令数据集。这是 Let’s think step by step 这一著名提示的由来。下面的示例取自 Chung 等,22,橙色高亮的部分是指令,粉色是输入和输出,蓝色是 CoT 推理。
CoT 图解如 Chung 等,22 中所述,使用 CoT 微调的模型在涉及常识、算术和符号推理的任务上表现得更好。
如 Bai 等,22 的工作所示,CoT 微调也显示出对无害性非常有效 (有时比 RLHF 做得更好),而且对敏感提示,模型不会回避并生成 “抱歉,我无法回答这个问题” 这样的回答。更多示例,请参见其论文的附录 D。
CoT 和 RLHF 的对比论文链接:
思维链提示 (Wei 等, 22):
https://arxiv.org/abs/2201.11903Let’s think step by step:
https://arxiv.org/abs/2205.11916CoT 图解示例 (Chung 等, 22):
https://arxiv.org/abs/2210.11416CoT 微调也显示出对无害性非常有效 (Bai 等, 22):
ttps://http://www.anthropic.com/constitutional.pdf要点
与预训练数据相比,您只需要非常小的一部分数据来进行指令微调 (几百个数量级);使用人工标注的有监督微调使模型输出更安全和有用;CoT 微调提高了模型在需要逐步思考的任务上的性能,并使它们在敏感话题上不那么回避。对话代理的进一步工作
这个博客总结了许多关于使对话代理有用的现有工作。但仍有许多悬而未决的问题有待探索。我们在这里列出了其中的一些。
RL 在从人类反馈中学习有多重要?我们能否通过在 IFT 或 SFT 中使用更高质量的数据进行训练来获得 RLHF 的性能?为了安全的角度看,Sparrow 中的 SFT+RLHF 与 LaMDA 中仅使用 SFT 相比如何?鉴于我们有 IFT、SFT、CoT 和 RLHF,预训练有多大的必要性?如何折衷?人们应该使用的最佳基础模型是什么 (公开的和非公开的)?本文中引用的许多模型都经过 红蓝对抗 (red-teaming) 的精心设计,工程师特地搜寻故障模式并基于已被揭示的问题改进后续的训练 (提示和方法)。我们如何系统地记录这些方法的效果并重现它们?红蓝对抗 (red-teaming) 论文地址:
https://arxiv.org/abs/2209.07858P.s. 如果您发现本博客中的任何信息缺失或不正确,请告知我们。
引用:
Rajani et al.,”What Makes a Dialog Agent Useful?”, Hugging Face Blog, 2023.
BibTeX 引用:
❝英文原文:
https://huggingface.co/blog/dialog-agents译者: Matrix Yao (姚伟峰) ,英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。关注zenRRan,可以快速了解到最新优质的NLP前沿技术和相关论文~
点击进入——>微信NLP技术交流群
历史文章
AAAI2023 | 百度+中科院提出USM:一种信息抽取的大一统方法
COLING2022 | 中科院+北邮提出:具有Event-Argument相关性的事件因果关系提取方法
邱锡鹏提出:DiffusionBERT – 用扩散模型改进生成式掩码语言模型
谷歌提出Flan预训练方法,一个模型解决可所有NLP任务,并发布Flan-T5模型
COLING22 | SelfMix:针对带噪数据集的半监督学习方法
近200篇文章汇总而成的机器翻译非自回归生成最新综述,揭示其挑战和未来研究方向
一种全新易用的基于Word-Word关系的NER统一模型,刷新了14种数据集并达到新SoTA
NAACL2021 | 陈丹琦又打破常规,最近流行的实体识别和关系抽取要回到最初状态?
清华刘知远联合新加坡国立大学提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning
让人深思:句法真的重要吗?邱锡鹏组提出一种基于Aspect的情感分析的强大基线
复旦邱锡鹏Lab提出:一个统一的面向基于Aspect的所有情感分析子任务的生成式方法
清华提出:用于细粒度实体分类的Prompt-Learning,并提出可训练Prompt模板
ACL2021 | 一种巧妙解决NER覆盖和不连续问题的方法
NAACL2021 | 苏大&阿里提出:一种统一的基于跨度的意见挖掘方法
近期,ChatGPT 问世并取得巨大成功,导致 RLHF、SFT、IFT、CoT 等缩写成为热门话题。;我们首先关注基于语言模型的会话代理的全景。ChatGPT 并非独创,实际上许多组织在 OpenAI 之前就发布了自己的语言模型对话代理 (dialog agents),包括 Meta 的 BlenderBot,Google 的 LaMDA,DeepMind 的 Sparrow,以及 Anthropic 的 Assistant (Anthropic 的 Claude 就是部分基于 Assistant 继续开发而得的)。;来自:Hugging Face;,可以快速了解最新优质的 NLP 前沿技术和相关论文~;语言模型对话代理产品论文链接:;Meta 的 BlenderBot:;Google 的 LaMDA:;DeepMind 的 Sparrow:;Anthropic 的 Assistant:;下表根据是否能公开访问、训练数据、模型架构和评估方向的详细信息对这些 AI 聊天机器人进行了比较。ChatGPT 没有这些信息的记录,因此我们改为使用 InstructGPT 的详细信息,这是一个来自 OpenAI 的指令微调模型,据信它是 ChatGPT 的基础。;我们观察到,尽管在训练数据、模型和微调方面存在许多差异,但也存在一些共性。上述所有聊天机器人的一个共同目标是「指令依从 (instruction following)」,即遵循用户指定的指令。例如,要求 ChatGPT 写一首关于微调的诗。;通常,基础模型的语言建模目标不足以让模型学会以有用的方式遵循用户的指令。模型创建者使用「指令微调 (Instruction Fine-Tuning,IFT)」方法来达到该目的,该方法除了使用情感分析、文本分类、摘要等经典 NLP 任务来微调模型外,还在非常多样化的任务集上向基础模型示范各种书面指令及其输出,从而实现对基础模型的微调。这些指令示范由三个主要部分组成 —— 指令、输入和输出。输入是可选的,一些任务只需要指令,如上文使用 ChatGPT 做开放式文本生成的示例。当存在输入时,输入和输出组成一个「实例 (instance)」。给定指令可以有多个输入和输出实例。如下例 (摘自 Wang 等,22):;IFT 的训练数据通常是人工编写的指令及用语言模型自举 (bootstrap) 生成的实例的集合。在自举时,先使用少样本技术输入一些样本给 LM 用于提示它 (如上图所示),随后要求 LM 生成新的指令、输入和输出。每一轮都会从人工编写的样本和模型生成的样本中各选择一些送给模型。人类和模型对创建数据集的贡献构成了一个谱图,见下图:;谱图的一端是纯模型生成的 IFT 数据集,例如 Unnatural Instructions (Honovich 等,22);另一端是经由社区的努力精心制作的指令如 Super-natural instructions (Wang 等,22)。在这两者之间的工作是使用一小组高质量的种子数据集,然后进行自举生成最终数据集,如 Self-Instruct (Wang 等,22)。为 IFT 整理数据集的另一种方法是将现有的用于各种任务 (包括提示) 的高质量众包 NLP 数据集使用统一模式或不同模板转换为指令。这一系列工作包括 T0 (Sanh 等,22)、Natural instructions 数据集 (Mishra 等,22)、FLAN LM (Wei 等,22) 和 OPT-IML (Iyer 等,22)。;论文链接:;Unnatural Instructions (Honovich 等, 22):;Super-natural instructions (Wang 等, 22):;Self-Instruct (Wang 等, 22):;T0 (Sanh 等