注 1:由于在对话场景下的良好对齐,ChatGPT 作为一个聊天机器人表现优异。但我们通常使用 GPT-3、InstructGPT (GPT-3.5)、以及 Codex 这些 ChatGPT 背后的模型作为在更多任务和使用场景下的通用模型。
注 2:这一节中的结论是基于一些对模型当前版本的发现得到的,这可能不适用于未来的更强的模型。因为,使用更多与目标数据集接近的预训练数据、学术数据集指令调整(例如提示一个 FLAN-PaLM 可能会带来更强的性能,它仍未公开)或者通过 RLHF 以使得模型对目标任务的更好对齐,这些都可能使得模型在目标任务中表现更好,即使有时这会牺牲在其他场景下的能力(例如,InstructGPT的“对齐税/Alignment tax”)。
在这种情况下,很难判断 GPT 是进行泛化和跨任务泛化,还是仅仅在预训练时就已经记住了一些测试样例,或者说见过那些在预训练时所谓“没有见过”的任务。然而,记忆在实践中是否真的是一个严重的问题,这仍然值得怀疑。因为用户与研究人员不同,如果他们发现 GPT 已经可以在他们的测试数据上表现良好,他们可能不会关心 GPT 在预训练期间是否看到了相同或相似的数据。
不论如何,为了最大化这一节在当前的实用价值,我尽最大努力,试图比较微调公共的更小型的模型(T5、FALN-T5、一些特殊设计的微调 SOTA 模型等)和最近的 GPT-3 (GPT-3.5、InstructGPT)、PaLM(或 FLAN-PaLM)的最佳性能,如果这些模型的测评数据够获得的话。
一般来说,有以下这些情况更适合使用提示 GPT-3。令人惊讶的是,如果我们回看 GPT-3 论文的介绍部分,在那里很多初始设计时的目标涵盖了这些任务。这意味着那些当初宏伟的目标已经被部分实现了。
1. 创造性和复杂的任务:包括代码(代码补全、自然语言指令生成代码、代码翻译、bug 修复)、文本摘要、翻译、创造性写作(例如写故事、文章、邮件、报告,以及写作的改进等)。正如原始的 GPT-3 文献中所示,GPT-3 被设计用于那些困难和“不可能标注”的任务。在一定程度上,对于这些任务,先前那种经过微调的模型不可能应用于真实世界的应用;而 GPT-3 使它们成为可能。举个例子,最近的文章显示,过去的人类标注的文本摘要已经被 LLM 生成的摘要所超越。
在某些需要从低、中资源语言翻译到英语的机器翻译任务中,通过提示 PaLM-540B,它甚至能够超越微调模型。
在 BLOOM-176B 中也观察到了类似的趋势。这是因为英语数据通常在预训练语料库中占了很大比例,因此 LLM 擅长生成英语语句。注意到,为了在代码任务中获得良好性能,尽管 Codex 和 PaLM 已经在整体上具有比之前模型更好的性能,我们仍需允许 LLM 多次(k 次)采样,以通过测试样例(使用 pass@k 作为度量)。
2. 只有少数标注或者没有标注数据的任务。正如原始的 GPT-3 文献所说,GPT-3 是为了那些“昂贵标注”的任务设计的。在这种情况下,用极少量标注数据微调一个更小的模型通常不可能达到 GPT-3 在零样本(zero-shot)、单样本(one-shot)或少样本(few-shot)的情况下的表现。
3. 分布外(Out-of-distribution, OOD)泛化。给定一些训练数据,传统的微调可能会过拟合训练集并且有较差的分布外泛化能力;而少样本的上下文学习(in-context learning)能够有更好的分布外泛化性。例如,带有提示的 PaLM 能够在对抗自然语言推断任务(Adversarial Natural Language Inference,ANLI)上超越经过微调的 SOTA 模型,而它在正常的语言推断任务上可能仍然劣于微调的 SOTA。
另一个例子是提示 LLM 比微调模型显示出更好的组合泛化能力。更好的分布外泛化性可能是因为在上下文学习期间不需要更新参数,避免了过拟合;或者因为那些过去的分布外样例对于 LLM 而言是分布内的。这种使用场景被阐释为 GPT-3 的初始设计目标之一:“微调模型在特定任务的数据集上的性能可以达到所谓的人类水平,实际上可能夸大了在真实世界中该任务上的性能,这是因为模型只是学到了训练集中存在的虚假的相关性,以及模型过度拟合了这个训练集狭窄的分布。”
4. 需要处理多种任务的能力,而非关注特定任务上的卓越表现。聊天机器人就是这样一种场景,其中,用户期待它能够正确地响应各种各样的任务。这可能就是为什么 ChatGPT 是 GPT-3 最成功的使用场景之一。
5. 那些检索不可行的知识密集型任务。存储在 LLM 中的知识可以显著地提高在知识密集型任务的性能,例如闭卷问答和 MMLU(一个基准数据集,包括来自于 STEM、人文、社科等 57 个学科的选择题,它用于测试 LLM 的世界知识和问题解答的能力)。然而,如果预先检索的步骤可以被加入来做检索增强的生成,一个微调的更小的模型(例如 Atlas 模型)甚至可以有更好的性能(在闭卷的 NaturalQuestions 和 TrivialQA 数据集上,Atlas 比 PaLM 和最新的 InstructGPT 都要更好)。
检索或者传统的搜索同样是将 GPT-3 或 ChatGPT 整合到搜索引擎中的一个必要的步骤,这可以提升生成的准确性,并且提供更多的参考链接以增强说服力。但我们应该承认,在某些情况下,检索是不允许或者不容易的,比如参加 USMLE (美国医学执照考试),谷歌已经证明基于 FLAN-PaLM 的模型可以在其中做得很好。
同样的,在 MMLU 基准集中,PaLM-540B 有着比其他微调模型更好的性能,甚至后者结合了检索,尽管最新版本的 InstructGPT 还差于这些带有检索的微调 SOTA。也请注意,指令调整一个较小的模型也可以实现与更大规模的 LLM 模型接近的效果,这已经在 FLAN-T5 中展现。
6. 一些困难的任务,其中需要LLM 的涌现能力,比如带有 CoT 的推理和 BIG-Bench 中的复杂任务(包括逻辑推理、翻译、问答、数学任务等)。举个例子,PaLM 已经展示,在 7 个包括数学和常识推理的多步推理任务上,8-样例的 CoT 比微调 SOTA 在其中 4 个任务上更好,在其它 3 个任务上则基本持平。
这样的成功表现要同时归因于更大规模的模型和 CoT。PaLM 还显示了在 BIG-Bench 任务上从 8B 到 62B 再到 540B 模型的不连续的表现提升,这超出了规模定律(scaling law),被称为 LLMs 的涌现能力。另外,带有 5 个 Prompt 的 PaLM-540B 在 Big-Bench 的 58 项常见任务中的 44 项上优于之前的(少样本)SOTA。PaLM-540B 在 Big-Bench 的总体表现也优于人类的平均表现。
7. 一些需要模仿人类的场景,或者是其目标是制作性能达到人类水平的通用人工智能。同样的,ChatGPT 是其中的一个案例,ChatGPT 使自己更像是一个人,从而取得了现象级的成功。这也被阐释为 GPT-3 的初始设计目标之一:“人类不需要大规模监督数据集来学习大多数语言任务。最多只需要几个例子,人类就可以将各种任务和技巧无缝地混合在一起或者在它们之间切换。因此传统的微调模型导致了与人类的不公平比较,尽管他们声称在许多基准数据集中有着人类水平的性能。”
8. 在一些传统的接近于语言建模的 NLP 任务上,少样本 PaLM-540B 能够大致匹配或者甚至超过微调的 SOTA,例如:一段话最后一句和最后一个单词的完型填空,以及回指(anaphora)解析。需要指出,在这种情况下,零样本的 LLM 已经足够了,单样本或少样本的示例则通常帮助不大。
另一些任务则并不需要提示(prompt)一个 GPT-3 这样规模的模型:
1. 调用 OpenAI GPT-3 的 API 超出了预算(例如对于没有太多钱的创业公司)。
2. 调用 OpenAI GPT-3 的 API 存在安全问题(例如数据泄露给 OpenAI,或者可能生成的有害内容)。
3. 没有足够的工程或者硬件资源去部署一个相似大小的模型及消除推断的延迟问题。例如,在没有最先进的 80G 的 A100 或者工程资源来优化推断速度的情况下,简单地使用 Alpa 在 16 个 40G 的 A100 上部署 OPT-175B 需要 10 秒才能完成单个样例的推断,这对于大多数现实世界的在线应用程序来说是无法接受的延迟。
4. 如果想用 GPT-3 替代一个性能良好的、高准确度的微调模型,或者想要在一些特定的单一任务和使用场景下去部署一个 NLU(Natural Language Understanding,自然语言理解)或 NLG(Natural Language Generating,自然语言生成)模型,请三思这是否值得。
对于一些传统的 NLU 任务,比如分类任务,我建议首先尝试微调 FLAN-T5-11B 模型,而不是提示 GPT-3。例如,在 SuperGLUE,一个困难的 NLU 基准数据集(包括阅读理解、文本蕴含、词义消歧、共指消解和因果推理等任务)上,所有的 PaLM-540B 的少样本提示性能都劣于微调的 T5-11B,并在其中大多数任务上有着显著的差距。如果使用原始 GPT3,其提示结果与微调 SOTA 的结果之间的差距更大。有趣的是,即使是经过微调的 PaLM 也仅比经过微调的 T5-11B 有着有限的改进,而经过微调的 PaLM 甚至比经过微调的编-解码器模型 32B MoE 模型还要差。这表明使用更合适的架构(例如编-解码器模型)微调较小的模型仍然是比使用非常大的仅解码器模型更好的解决方案,无论是微调还是提示来使用这些大模型。根据最近的一篇论文,即使对于最传统的 NLU 分类任务——情感分析,ChatGPT 仍然比经过微调的较小模型差。一些不以现实世界数据为基础的困难任务。例如,BigBench 中仍然有许多对 LLM 来说困难的任务。具体地说,在 35% 的 BigBench 任务上,人类的平均表现仍然高于 PaLM-540B,并且在某些任务中,扩大模型规模甚至无济于事,例如导航和数学归纳。在数学归纳中,当提示中的假设不正确时(例如“2 是奇数”),PaLM 会犯很多错误。在逆规模定律竞赛 (Inverse Scaling Law Challenge) 中,也观察到了类似的趋势,例如重新定义数学符号(例如提示可能“将 π 重新定义为 462”)后再使用这个符号。在这种情况下,LLM 中的现实世界先验知识太强而无法被提示覆盖,而微调较小的模型可能可以更好地学习这些反事实知识。在很多多语言任务和机器翻译任务中,使用少样本的提示 GPT 仍然要比微调的更小的模型更差。这很可能是由于除英语之外的其它语言在预训练语料库中占比很少。当从英语翻译为其他语言,以及翻译高资源语言到英语时,PaLM 和 ChatGPT 仍然比在机器翻译任务上微调的更小的模型要差。对于多语言问答任务来说,在少样本的 PaLM-540B 和微调的更小模型之间还存在较大差距。对于多语言文本生成(包括文本摘要和数据到文本生成),在少样本的 PaLM-540B 和微调的更小模型之间还存在较大差距。在大部分任务上即使微调的 PaLM-540B 也仅仅比微调的 T5-11B 有有限的提升,并仍然劣于微调的 SOTA。对于常识推理任务,在最好的少样本提示 LLM 和微调的 SOTA 之间仍然存在着较大的差距,例如:OpenbookQA,ARC(包括 Easy 和 Challenge 版本)以及 CommonsenseQA(甚至使用了 CoT 提示)。对于机器阅读理解任务,在最好的少样本提示 LLM 和微调的 SOTA 之间仍然存在着较大的差距。在大多数数据集上,这个差距可能非常巨大。这可能是因为所有回答问题所需的知识都已经包含在给出的文本中,并不需要 LLM 中的额外知识。总结一下,上面的这些任务可以被归为以下类别之一:
1. 一些 NLU 任务,既不需要额外的知识也不需要 LLM 的生成能力。这意味着测试数据大多数都和手头的训练数据在同一个分布之中。在这些任务上,过去微调的较小模型已经表现很好了。
2. 一些不需要额外的来自 LLM 中知识的任务,因为每一个例子已经在上下文或者提示中包含了足够的知识,例如机器阅读理解。
3. 一些需要额外知识,但不太可能从 LLM 中获得这样的知识,或者 LLM 不太可能见过类似分布的任务,例如一些低资源语言中的任务,LLM 在这些语言中只有有限的预训练样本。
4. 一些任务,需要与 LLM 中包含的知识所不一致的知识,或者并非基于现实世界的语言数据的知识。因为 LLM 是在现实世界的语言数据上训练的,它难以在新的任务中利用反事实知识覆盖原有知识。除了在逆规模定律挑战中的“重新定义数学符号”问题之外,还有另一个任务,即复述有细微改动的名言,其中 LLM 被要求复述一个在 prompt 中出现的被修改的名言。在这种情况下,LLM 倾向于重复出名言的原始版本,而非修改过后的版本。
5. 一些任务需要来自 LM 的知识,但也严重依赖于操纵这些知识,而 LLM 的“预测下一个 token”的目标无法轻易实现这种操纵。一个例子是一些常识推理任务。CoT 和 least-to-most 提示可以帮助 LLM 推理的原因可能是他们可以更好地调出那些连续的预训练文本,这些连续文本恰好模仿了规划和分解/组合知识的过程。
因此,CoT 和 least-to-most 提示在一些数学推理、代码和其他简单的自然语言推理任务中表现良好,但在许多常识推理(例如在逆规模定律竞赛中展示的演绎推理任务)和自定义符号推理任务中仍然表现不佳。这些任务通常不被自然语言数据中的大多数真实世界的连续序列所包含,而需要操纵分散在各处的知识来完成。
6. 一些容易受到上下文学习样例或者真实世界数据中存在的虚假相关性影响的任务。一个例子是来自于逆规模定律竞赛中的涉及否定词的问答。如果一个 LLM 被提问:“如果一只猫的体温低于平均水平,它就不在……”,它倾向于回答“危险之中”而非“安全范围“。这是因为 LLM 受到常见的“低于平均体温”和“危险”之间的关系所支配,而在否定的情况下,这是一种虚假的相关性。
7. 一些目标与处理语言数据显著不同的任务,例如:回归问题,其中微调模型很难被 LLM 取代。至于多模态任务,它们不能被 LLM 解决,但是可能能从大规模的预训练多模态模型中受益。
8. 一些任务不需要LLM的涌现能力。为了准确地对更多此类任务进行鉴别,我们需要更好地了解 LLM 训练期间,涌现能力是从何产生的。
注意到,在现实世界的使用场景中,即使由于无法满足延迟要求因而无法在线地使用 LLM,仍然可以使用 LLM 离线生成或标注数据。此类自动标注的标签可以在线查找并提供给用户,或用于微调较小的模型。使用此类数据微调较小的模型可以减少训练模型所需的人工注释数据,并将 LLM 的一些新兴能力(例如 CoT)注入较小的模型。
总之,当有足够的标记数据时,考虑到开源 FLAN-T5 在许多任务中的惊人性能,我推荐那些调用 OpenAI API 的资源有限的个体,应该首先尝试在目标任务上微调 FLAN-T5-11B。此外,根据最近在 MMLU 数据集上,FLAN-PaLM-540B 与最新版本的 InstructGPT 的性能(根据 HELM)相比好得惊人的性能,谷歌可能拥有比 OpenAI 更强大的基础模型,如果 OpenAI 已经通过 API 发布了他们获得的最强的 LLM。
谷歌唯一剩下的步骤是通过人类反馈使这个 LLM与对话场景对齐(alignment)。如果他们很快发布类似 ChatGPT 的或者更好的聊天机器人,我不会感到惊讶——尽管他们最近“失败”地展示了一版可能基于 LaMDA 的 Bard。
参考文献:
[1] HELM: Holistic Evaluation of Language Models and its board: https://crfm.stanford.edu/helm/v0.2.0/?group=core_scenarios
[2] GPT3: Language Models are Few-Shot Learners
[3] PaLM: Scaling Language Modeling with Pathways
[4] OPT: Open Pre-trained Transformer Language Models
[5] BLOOM: A 176B-Parameter Open-Access Multilingual Language Model
[6] FLAN-T5/PaLM: Scaling Instruction-Finetuned Language Models
[7] The Flan Collection: Designing Data and Methods for Effective Instruction Tuning
[8] InstructGPT: Training language models to follow instructions with human feedback
[9] Yao Fu’s blog on “Tracing Emergent Abilities of Language Models to their Sources”
[10] Inverse Scaling Prize: https://github.com/inverse-scaling/prize
[11] Is ChatGPT a General-Purpose Natural Language Processing Task Solver?
欢迎 Star、试用 OneFlow 最新版本:https://github.com/Oneflow-Inc/oneflow/
相关文章
猜你喜欢
成员 网址收录40387 企业收录2981 印章生成231913 电子证书1025 电子名片60 自媒体46877