关于人工智能:复杂推理大型语言模型的北极星能力

4次阅读

共计 7854 个字符,预计需要花费 20 分钟才能阅读完成。

(在天体摄影中,当应用长曝光拍摄星轨时,北极星位于星轨的核心,始终指向真正的南方。在现代,它为旅行者指引方向。)

作者 | 符尧
爱丁堡大学博士生

最近,很多对于较小模型的钻研获得了令人振奋的对话能力,这让人们设想,是否较小的模型能具备与像 GPT-3.5 这样的大型模型相当的性能。一般来说,语言模型具备多维能力,所以模型之间的互相对比拟为艰难。找到正确的衡量标准对于开发弱小的语言模型至关重要。在目前阶段,研究者们急迫想晓得什么是度量大语言模型后劲的关键因素。

在 GPT-4 公布时的博客中,作者写道:“在一次随便的谈话中,GPT-3.5 和 GPT-4 之间的区别可能是奥妙的。当工作的复杂程度达到足够的阈值时,差别就会显现出来。”这意味着,简单工作很可能是大型和小型语言模型的要害差别因素。

更重要的是,简单推理为基于语言模型构建大量应用程序提供了机会,从而使语言模型有机会成为下一代计算平台 / 操作系统。这有可能从根本上扭转人类与机器的交互方式,重塑整个计算生态系统。

在这篇文章中,咱们将仔细分析、探讨如何让大语言模型领有弱小的简单推理能力。

1

动机:大语言模型作为新一代计算平台

咱们钻研简单推理的起因有两个:

  • 正如上文提到的,简单推理是标记着小模型与大模型差别的关键因素,这一点在 GPT-4 公布文章中曾经探讨过。
  • 简单推理是使模型成为下一代操作系统的外围能力。

将语言模型视为下一代操作系统的愿景尤为乏味,因为它为构建新应用程序和创立基于语言模型的计算生态系统(可能比超级应用程序如 ChatGPT 提供更大的机会)开拓了有数可能性。简单推理能力是根底,因为如果咱们心愿模型成为新的操作系统,它须要可能通过与工具、用户和外部环境的所有元素互动来实现简单的指令。

本文钻研了如何训练具备弱小简单推理能力的模型,如何进行提醒工程以充分发挥模型的推理能力,以及如何评估模型的推理性能。本文的内容分为以下几局部:

  • 在第 2 局部,咱们探讨了构建具备弱小简单推理能力的语言模型的现有办法。简单推理的计划与通用大型语言模型(LLM)开发的计划类似,包含三个阶段:继续训练 (continue training)、指令微调 (instruction finetuning) 和强化学习 (reinforcement learning)。咱们还会进一步探讨代码与推理之间令人诧异的耦合关系。
  • 在第 3 局部,咱们探讨了简单推理的提醒工程 (prompt engineering) 技术。当语言模型成为新一代操作系统内核时,提醒工程 / 场景学习将成为新一代脚本编程 (shell script)。
  • 在第 4 局部,咱们探讨了如何评估大型语言模型的推理能力。咱们介绍 Chain-of-thought Hub,这是一个蕴含 100 多个推理工作的数据汇合,分明地标示了大型与小型模型的差别。咱们重点介绍了 LLaMA 65B 的杰出体现。咱们认为它具备十分弱小的后劲,可作为再现 ChatGPT-3.5 的基座模型。

2

减少大语言模型推理能力的计划

推理的计划与构建通用大型语言模型和聊天机器人的计划密切相关。总共有三个阶段:

  • 预训练 / 继续训练:在这个阶段,咱们通常在大型数据集(如迷信文献或代码数据)上训练大型模型。
  • 有监督微调:在这个阶段,咱们对模型进行微调,以便实现简单工作的指令。
  • 强化学习:在这个阶段,咱们应用诸如工作是否已全副 / 局部实现的信号作为处分。

咱们进一步回顾了在代码上进行训练也能够进步模型推理能力的假如。因而,在咱们的文献剖析中,咱们同时思考推理和编码。咱们将看到,就学习办法而言,这两者之间存在惊人的相关性。

2.1 预训练与继续训练

咱们剖析以下几项钻研:

  • Lewkowycz et. al. 2022. Minerva: Solving Quantitative Reasoning Problems with Language Models

    • 在来自 Arxiv 论文的 38.5B 的 token 上持续训练 PaLM 540B。
    • 在 MATH(一个须要应用 LaTeX 格局答复问题的艰难数据集),上的得分为 33.6(GPT-4 的得分是 42.5)
  • Taylor et. al. 2022. Galactica: A Large Language Model for Science

    • 在蕴含论文、代码、参考资料、知识库和其余内容的 106B token 上预训练一个 120B 语言模型。
    • 在 MATH 上的体现为 20.4(Minerva 33.6,GPT-4 42.5)
  • Chen et. al. 2021. Codex: Evaluating Large Language Models Trained on Code

    • 在 159GB 代码数据上持续训练 12B GPT-3 模型,进步了 HumanEval 数据集上的代码性能。

这些钻研发现,在大量迷信文献 / 代码上进行训练能够显著进步根底模型的推理 / 编码能力。

2.2 监督微调

咱们剖析:

  • Chung et. al. 2022. Scaling Instruction-Finetuned Language Models

    • 应用多样化的指令显著进步了模型零样本泛化的能力
    • 在指令汇合中混合思维链数据(the flan collection 文章中进一步探讨了这个问题)明显提高了模型的思维链能力
    • 留神:只管 the flan collection 数据集从多个维度激发了根底模型的能力,但这些指令并非来自实在的聊天机器人用户互动,因而可能无奈间接转化为更好的聊天性能。
  • Fu et. al. 2023. Specializing Smaller Language Models towards Multi-Step Reasoning

    • 将思维链推理能力提炼到较小规模(小于或等于 10B)的模型。通常,10B 规模的模型非常适合部署(更大的模型太贵了,更小的模型太弱了)。
    • 本文探讨了很多工程细节,如数据工程、能力均衡以及小型和大型模型之间的差别
  • Li et. al. 2022. Competition-Level Code Generation with AlphaCode

    • 在 715GB 的 GitHub 代码上预训练一个 41B 模型,而后在蕴含 13k 问题的 CodeContest 数据集上进行微调
    • 在测试期间,应用采样并依据是否通过示例测试来过滤解决方案。从某种意义上说,这种做法相似于推理问题中的 self-consistency 办法。

目前对于指令微调的了解是:

  • 通过应用对话格局的数据,将根本模型调优为聊天机器人绝对容易(参见像 Alpaca 和 MOSS 这样的优良示例)。然而,闲聊的能力并不能转化为执行简单工作的能力。从这个角度来看,模型就像人类一样:说得多不如干得好,代码见真章。
  • 实际上,指令调优问题是一个数据混合问题:如何最好地混合来自不同起源的指令数据,以便从所有角度平均地进步模型性能(而不是像在 CoT specialization 和 the flan collection 中探讨的那样,减少一个维度但升高另一个维度)。
  • 数据混合的简略终点是:应用 10-20 个非思维链的数据点(以均衡不同维度的能力),但尽可能多地应用链式思维数据(以最大化推理能力)。

2.3 强化学习

咱们剖析:

  • Uesato. et. al. 2022. Solving math word problems with process- and outcome-based feedback

    • 基于两头推理和最终推理后果构建处分模型。
  • Le et. al. 2022. CodeRL: Mastering Code Generation through Pretrained Models and Deep Reinforcement Learning

    • 依据诸如编译谬误、运行时谬误或是否通过测试等信号训练处分模型。

这两项工作都应用两头信号(对于推理,看两头步骤是否正确;对于编码,看代码是否编译)和最终信号(对于推理,最终答案是否正确;对于编码,代码是否通过测试)作为处分。须要留神的是,这种类型的强化学习与基于人类反馈的强化学习(RLHF)有所不同,因为它不须要人类反馈。

2.4 推理能力和代码能力的耦合

在咱们之前的探讨中,咱们提出了一个假如,即在代码上进行训练可能会进步推理能力,起因如下:

  • 代码正文是天然存在的链式思维数据
  • 面向过程编程相似于逐渐解决工作。这实用于简略和中等复杂度的工作
  • 面向对象编程相似于将工作合成为较小的工作,而后别离解决它们。这实用于较高复杂度的工作。

从这个显著的一致性中,咱们看到进步推理能力与进步编程能力十分类似。在此,咱们通过强调训练大型语言模型进行推理或编码的配方相似性,深入了这个假如:

咱们看到推理和代码都经验了:

  • 在间断训练阶段,能够在根底模型上减少代码和迷信文献数据。
  • 在有监督的微调阶段,能够依据要求实现简单工作的指令或编写代码对模型进行微调。
  • 在强化学习阶段,将两头推理步骤 / 编译率和最终推理后果 / 代码通过率作为处分。
  • 在解码过程中,推理和编码都会采样多个解决方案,而后从解码空间中抉择最佳计划。

这些相似性使得代码和推理之间的分割十分乏味。

3

简单推理的提醒工程

在探讨了如何构建具备弱小推理能力的模型之后。在本节中,咱们将探讨如何无效地提醒模型以充沛开释模型的后劲。

3.1 根底思维链提醒工程

以下论文举荐给初学者:

  • Wei et. al. 2022. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.

    • 本文是第一篇发现当应用链式思维进行提醒时,存在一个相变景象,表明大型模型在很大水平上优于较小的模型,这进一步导致了涌现能力的发现。
  • Wang et. al. 2022. Self-Consistency Improves Chain of Thought Reasoning in Language Models

    • 对采样的 CoT 推理门路进行少数投票,显著进步了推理性能。
  • Suzgun et. al. 2022. Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them

    • 应用 CoT 解决 big-bench 中艰难的工作。这篇论文的一个有意义的副产品是 BigBench Hard 数据集,它在测试模型推理能力方面十分无效。

3.2 进阶技巧及剖析

以下论文探讨了高级 CoT 提醒实际:

  • Fu et. al. 2023. Complexity-Based Prompting for Multi-Step Reasoning

    • 应用简单链代替简略链作为上下文示例
  • Khot et. al. 2023. Decomposed Prompting: A Modular Approach for Solving Complex Tasks

    • 将简单工作合成为更简略的工作,而后一一解决

通常,对于简单工作,首先将其合成为更简略的工作,而后逐渐解决更简略的工作。

以下论文探讨了 上下文学习为什么起作用:

  • Xie et. al. 2021. An Explanation of In-context Learning as Implicit Bayesian Inference

    • 语言模型在提醒中的示例之间推断出一个潜在概念,并进入相应的工作模式
  • Wei et. al. 2023. Larger language models do in-context learning differently

    • 当呈现与先验常识相矛盾的上下文示例时,只管大型模型可能具备更强的语义先验,大型模型能够依据提醒词来笼罩语义先验。

简而言之,上下文学习的要点是提醒中的示例使模型进入相应的工作模式,而后执行工作。

以下论文探讨了 模型在进行思维链推理时的行为:

  • Min et. al. 2022. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

    • 当某些标签谬误时,模型依然能够做出正确的预测。这表明模型更受提醒的 [格局] 影响,而不是提醒的 [意义]。
  • Wang et. al. 2022. Towards Understanding Chain-of-Thought Prompting: An Empirical Study of What Matters

    • 即便提醒中的推理谬误,模型依然能够正确推理,但提醒的相关性和推理步骤的程序更为重要 —— 这再次表明,模型更受提醒的 [格局] 影响,而不是提醒的[意义]。
  • Madaan and Yazdanbakhsh. 2022. Text and Patterns: For Effective Chain of Thought, It Takes Two to Tango.

    • 详细分析显示,提醒的格局能够改善 CoT 推理(尽管内容的正确性可能不起到强烈作用)

简而言之,模型只关注提醒的格局,但可能不会受到提醒正确性的显著影响。然而,模型在多大程度上会受到提醒正确性的影响,或者提醒能够在多大程度上笼罩模型的先验信念,还是一个尚待钻研的问题。

以下论文探讨了如何 通过改良和反馈来进步模型性能:

  • Madaan. et. al. 2023. Self-refine: Iterative refinement with self-feedback

    • 模型能够在多个场景中(包含代码优化、数学推理、对话响应生成等)对本身的推理进行优化和改良。
  • Madaan et. al. 2023. Learning Performance-Improving Code Edits

    • 在程序轨迹上进行训练能够改善编码。

简而言之,以自然语言模式(而非强化学习中的处分模式)对模型进行改良和反馈十分无效,能够进一步提高语言模型的性能(无论是通过上下文学习还是微调)。

4

评估大语言模型的推理能力

在探讨了训练弱小模型的办法和提醒技巧之后,当初咱们探讨对语言模型推理能力的评估。

4.1 评估办法的基础知识

在议论评估时,有三个重要因素须要思考:数据格式、能力类型和模型类型。首先,提醒时有四种数据格式:

其中:

  • In-context 指的是在测试问题之前附加一系列上下文示例。
  • Zero-shot 是指在没有上下文示例的状况下间接将测试问题输出给模型。
  • Chain-of-thought 是指在答复之前生成推理。
  • Answer-only 是指没有链式思维,间接给答案。

对于模型能力,有两种大抵正交的能力类型:

  • 常识:模型是否理解世界
  • 推理:模型是否能够依据其常识进行推理。

这两个方面并不是严格正交的,因为一些推理规定也能够被视为某种模式的常识。然而,在评估时,这两种能力有显著的差别:

  • 一些数据集更重视对常识的评估,如 MMLU,它测试模型是否具备高达大学程度的常识。
  • 一些数据集更重视对推理的评估,如 BBH,它测试模型是否具备逐渐解决问题的能力。
  • 对于常识,链式思维与仅答复的体现类似(参见 FlanPaLM 论文)
  • 对于推理,链式思维比仅答复体现得更好(参见原始 CoT 论文,而后参见 FlanPaLM 论文)

在实践中,因为 CoT 在达到或优于 Answer-only 的体现,而且 CoT 更加用户敌对(因为它通知用户思考过程),古代聊天机器人总是部署 CoT(无论你问 ChatGPT 什么,它都会通知你一堆它的想法)。

最初,在评估方面,咱们辨别了两种类型的模型:预训练之后的 checkpoint 和指令微调之后的 checkpoint。

  • 预训练 checkpoint 具备 in-context learning 的能力。大多数预训练模型能够进行 in-context answer-only,一些更好的模型能够进行 in-context chain-of-thought(但目前尚不分明为什么某些预训练模型能够进行 CoT 而其余模型却不能)。然而,预训练 checkpoint 可能无奈进行 zero-shot,因为它们没有通过这方面的训练(但某些预训练检查点依然能够进行 zero-shot CoT,请参阅“让咱们逐渐思考”的论文)。
  • 指令微调过后的 checkpoint 既具备 zero-shot 又有 in-context 的能力。这里须要留神的是,如果没调好,指令微调之后 in-context 性能可能会稍有降落。

综上所述,咱们倡议应用 in-context chain-of-thought 进行评估:

  • In-context 是评估 pretrained checkpoint 的更好办法,因为它更好地揭示了模型后劲。Zero-shot 可能低估模型性能,尤其是对于不反对 Zero-shot chain-of-thought 的(“让咱们逐渐思考”)的模型。
  • Chain-of-thought prompting 是评估推理能力的更好办法,因为它比 answer-only prompting 更充沛地施展了模型的推理性能。

4.2 Chain-of-thought Hub 简介

https://github.com/FranxYao/chain-of-thought-hub

在探讨了所有评估基础知识之后,咱们介绍 Chain-of-thought Hub,这是一个正在进行的工作,心愿成为评估语言模型推理能力的对立平台。咱们汇编了一个包含数学(GSM8K)、迷信(MATH)、符号(BBH)、常识(MMLU)等简单推理工作的列表,以掂量哪些模型的确更好。上面是以后的排行榜。只管许多数字还没跑进去,但以后的内容依然能给一个大略的模型排名:

总的来说:

  • 咱们依据 GSM8K 对模型性能进行排名,这是一个经典的基准测试,用于掂量链式思维数学推理性能。这不是惟一的度量规范,但一个很好的解释是“在放弃其余通用能力的同时,模型在数学方面的体现如何”—— 这也十分艰难。
  • GPT-4 在 GSM8K 和 MMLU 上显著优于所有其余模型。
  • 65B LLaMA 与 text/code-davinci-002 十分靠近,这意味着基于它,如果 SFT 和 RLHF 操作正确,咱们很有可能基于 65B LLaMA 复现 ChatGPT。
  • Claude 是惟一能够与 GPT 系列相媲美的模型家族。
  • 较小的模型,如 FlanT5 11B 和 LLaMA 7B,显著落后于排行榜,这意味着简单推理可能只是大型模型的能力。

进一步地,在 Github 仓库中,咱们包含了:

  • 具体的试验设置和后果剖析
  • 用于重现 GPT 和 Claude 所有后果的脚本
    试一下吧 :)

5

论断

在这篇文章中,咱们探讨了大型语言模型的推理能力。简单推理不仅仅是因为它是更强模型与更弱模型之间的外围辨别点,而且它还是模型成为下一代计算平台 / 操作系统的根底能力,从而有可能在大模型上建设一个新的生态系统。

咱们探讨了构建具备弱小推理能力的模型的办法:预训练、有监督的微调和强化学习。咱们发现进步推理能力的办法与进步代码能力的办法密切相关,这加深了咱们先前对于推理与代码之间密切关系的假如。咱们进一步探讨了高级提醒工程技巧和在执行简单推理时模型行为的剖析。

最初,咱们探讨了如何评估模型的推理能力,并介绍了 chain-of-thought hub,这是一个正在进行的我的项目,旨在对立评估语言模型的推理性能。

咱们心愿这篇文章能成为构建具备弱小推理能力的开源模型的路线图。

人世间数百万个空闲的小时流逝过来,方始呈现一个真正的历史性时刻,人类星光闪耀的时刻 ——《人类群星闪耀时》斯蒂芬·茨威格

附录:更多大语言模型推理的相干资源

  • Lil’Log 2023. Prompt Engineering
  • Microsoft Semantic Kernel
  • Prompt Engineering GuideHuang and Chang 2022. Towards Reasoning in Large Language Models: A Survey

欢送 Star、试用 OneFlow 最新版本:https://github.com/Oneflow-Inc/oneflow/

正文完
 0