23年6月人大和蒙特利尔大学的论文“A Survey of Large Language Models”。
继续介绍LLM的利用、评估、应用、提示过程指导和未来方向。
利用
在预训练或自适应调优之后,使用 LLM 的主要方法是设计合适的提示策略来解决各种任务。一种典型的提示方法是上下文学习 [50, 55],它以自然语言文本的形式制定任务描述和/或演示。此外,可以通过在提示中加入一系列中间推理步骤来采用思维链提示 [33] 来增强上下文学习。此外,规划 [303] 被提出用于解决复杂任务,它首先将任务分解为较小的子任务,然后生成行动规划来逐一解决这些子任务。
上下文学习
如 [55] 所述,ICL 使用格式化的自然语言提示,包括任务描述和/或一些任务示例作为演示。如图 展示了 ICL 的图示。首先,从任务描述开始,从任务数据集中选择一些示例作为演示。然后,它们以特定的顺序组合在一起,形成具有专门设计模板的自然语言提示。最后,将测试实例附加到演示中作为 LLM 的输入以生成输出。基于任务演示,LLM 可以识别和执行新任务,而无需显式梯度更新。
综述论文 [50] 中对 ICL 进行了全面的回顾。ICL 应用于 LLM主要有两个方面,即演示设计和 ICL 的底层机制。此外,ICL 与指令调优密切相关,因为它们都使用自然语言来格式化任务或实例。然而,指令调优需要对 LLM 进行微调以适应,而 ICL 仅提示 LLM 进行利用。此外,指令调优可以增强 LLM 执行目标任务的 ICL 能力,尤其是在零样本设置(仅使用任务描述)[64] 下。
ICL很重要的是演示设计,包括演示的选择、格式和次序。
LLM ICL 的能力有两个关键问题,即“预训练如何影响 ICL 能力”和“LLM 在推理过程中如何执行 ICL”。
ICL 最早是在 GPT-3 [55] 中提出的,事实证明,模型规模越大,ICL 能力越显著。此外,一些研究表明,小规模 PLM 也可以通过在专门设计的训练任务上进行持续的预训练 [320] 或微调 [321] 表现出强大的 ICL 能力,这些训练任务通常在训练过程中在输入中涉及额外的任务示例。这表明,训练任务的设计是影响 LLM ICL 能力的重要因素。除了训练任务之外,最近的研究还研究了 ICL 与预训练语料库之间的关系 [317,322]。例如,ICL 在理论上可以解释为对表现出长期连贯性的文档进行预训练的产物 [317]。此外,另一项研究 [322] 从理论上分析,在规模化参数和数据时,基于下一个词预测的 LLM 可以通过学习语言数据中存在的组合结构(例如,单词和短语如何组合形成更大的语言单位,如句子)来发挥 ICL 的能力。
在推理阶段,研究人员专注于分析 ICL 能力如何根据给定的演示运行,因为不涉及显式学习或更新。根据 [323] 中的讨论,LLM 利用演示的主要方式有两种:任务识别和任务学习。
结果表明,小型 LM 倾向于忽视标签,主要依靠先验知识来完成任务,而 LLM 有能力超越先验知识并从演示中获取新知识,从而获得更好的结果。此外,为了提高任务学习能力,元-上下文-学习 [330] 建议在提示中包含多个相关任务,而不仅仅是一个任务。此外,符号调优 [331] 在具有语义上不相关标签的演示上对 LLM 进行微调(例如,在情绪分析中使用 foo/bar 而不是positive/negative),迫使 LLM 从演示中学习任务,而不是依赖于先验知识。
思维链
思维链 (CoT) [33] 是一种改进的提示策略,旨在提高 LLM 在复杂推理任务(如算术推理 [332]、常识推理 [333] 和符号推理 [33])上的表现。与 ICL 中简单地用输入输出对构建提示不同,CoT 将可以得出最终输出的中间推理步骤合并到提示中。
少样本 CoT。少样本 CoT 是 ICL 的一个特例,它通过合并 CoT 推理步骤将每个演示 ⟨输入,输出⟩ 增强为 ⟨输入,CoT,输出⟩。为了应用这一策略,有两个关键问题,即如何设计合适的 CoT 提示以及如何利用生成的 CoT 来得出最终答案。
设计合适的 CoT 提示对于有效激发 LLM 的复杂推理能力至关重要。作为一种直接的方法,研究表明,使用多样化的 CoT(即每个问题有多条推理路径)可以有效提高其性能 [334]。另一个直观的想法是,具有更复杂推理路径的提示更有可能激发 LLM 的推理能力 [335],从而可以提高生成正确答案的准确率。然而,所有这些方法都依赖于带注释的 CoT 数据集,这限制了它们在实践中的使用。为了克服这一限制,Auto-CoT [318] 提出利用零样本-CoT [336]通过专门提示 LLM 来生成 CoT 推理路径,从而消除人工的繁杂工作。为了提高性能,Auto-CoT 进一步将训练集的问题划分为不同的类,然后选择最接近每个聚类质心的问题,这些问题应该可以很好地代表训练集的问题。虽然小样本 CoT 可以看作是 ICL 的一种特殊提示情况,但与 ICL 中的标准提示相比,演示的排序似乎影响相对较小:在大多数任务中,对演示进行重新排序只会导致不到 2% 的性能变化 [33]。
除了丰富上下文信息之外,CoT 提示还提供了更多选项来根据问题推断答案。现有研究主要侧重于生成多条推理路径,并试图在得出的答案中找到共识 [337, 338]。例如,在生成 CoT 和最终答案时,提出了自洽性 [337] 作为新的解码策略。它首先生成几条推理路径,然后对所有答案进行集成(例如,通过在这些路径中投票选出最一致的答案)。自洽性大大提高了 CoT 推理的性能,甚至可以改善一些 CoT 提示通常比标准提示更差的任务(例如,闭卷问答和自然语言推理)。此外,[338] 中的作者将自洽性策略扩展为更通用的集成框架(扩展到提示上的集成),他们发现多样化的推理路径是提高 CoT 推理性能的关键。上述方法可以轻松集成到 CoT 提示中提升性能,无需额外的训练。相比之下,其他研究训练评分模型来衡量生成推理路径的可靠性 [334] 或不断在它们自己生成的推理路径上训练 LLM [339] 以提高性能。
零样本 CoT。与少样本 CoT 不同,零样本 CoT 不包含提示中的人工注释任务演示。相反,它直接生成推理步骤,然后使用生成的 CoT 得出答案。零样本 CoT 最早在 [336] 中提出,其中 LLM 首先以“一步一步思考”为提示生成推理步骤,然后以“因此,答案是”为提示得出最终答案。他们发现,当模型规模超过一定大小时,这种策略可以大幅提高性能,但对于小规模模型则无效,显示出明显的涌现能力模式。为了在更多任务上释放 CoT 能力,Flan-T5 和 Flan-PaLM [64] 进一步对 CoT 注释进行指令调优,在未见任务上的零样本性能得到了提升。
规划
使用 ICL 和 CoT 进行提示是一种概念简单但通用的方法,可用于解决各种任务。然而,这种方法在处理数学推理 [344] 和多步问答 [345] 等复杂任务时会遇到困难。作为一种增强方法,基于提示的规划已被提出,用于将复杂任务分解为更小的子任务,并生成完成任务的行动规划。
基于LLM规划有三个组件:任务规划器、执行器和环境。具体来说,由 LLM 扮演的任务规划器旨在生成解决目标任务的整个规划。其以不同的形式呈现,例如以自然语言 [303] 形式的动作序列或用编程语言编写的可执行程序 [346]。然后,执行器负责执行规划中的动作。它可以由模型(如用于文本任务的 LLM [347])或目标(如用于具体任务的机器人 [348])来实现。此外,环境是指执行器执行动作的地方,可以根据特定任务进行不同的设置,例如 LLM 本身 [349] 或外部虚拟世界(如 Minecraft [350])。它向任务规划器提供有关动作执行结果的反馈,可以是自然语言 [351] 的形式,也可以来自其他多模态信号 [352]。对于解决一个复杂的任务,任务规划器首先需要明确任务目标,并基于 LLM 的推理生成合理的规划。然后,执行器在环境中按照规划行事,环境会为任务规划器提供反馈。任务规划器可以进一步结合从环境中获得的反馈来完善其初始规划,并迭代执行上述过程以获得更好的结果作为任务解决方案。
规划生成侧重于通过提示 LLM 直接生成动作序列。根据生成的规划格式,现有的工作可分为两类:基于文本的方法和基于代码的方法。
在执行生成的规划后,环境会向基于 LLM 的任务规划器发出反馈信号,该信号可用于改进其初始规划以获得更好的结果。在现有工作中,环境反馈通常有两种来源,具体取决于它们与基于 LLM 的任务规划器的关系:内部反馈(即 LLM 本身)和外部反馈(例如工具或虚拟世界)。
获取来自环境的反馈,任务规划器可以相应地改进其当前规划,并反复经历“规划-执行-改进”循环以获得更好的结果。现有工作中给出三种主要改进方法:推理、回溯和记忆。
评估
基本能力评估
为了检验LLM的有效性和优越性,大量的任务和基准被提出来进行实证能力评估和分析。LLM在语言生成和理解方面包括三种基本能力评估,即语言生成、知识运用和复杂推理。还有就是几种设置或目标更为复杂的LLM高级能力评估。
语言生成方面的能力包括语言建模、条件文本生成和代码合成。尽管 LLM 在生成类似人类的文本方面取得了出色的表现,但它们很容易受到语言生成中的两个主要问题的影响:不可靠生成评估和表现不佳的专业生成。
知识利用是智能系统基于事实证据支持完成知识密集型任务(如常识性问答和事实补全)的重要能力。具体而言,它要求 LLM 能够恰当地利用预训练语料库中的丰富事实知识或在必要时检索外部数据。具体而言,问答和知识补全是评估该能力的两个常用任务。根据测试任务(问答或知识补全)和评估设置(有或没有外部资源),现有的知识利用任务分为三类,即闭卷问答、开卷问答和知识补全。尽管LLM在获取和利用知识信息方面取得了重大进展,但它们仍存在以下两个主要问题:幻觉和知识更新度。幻觉分为内部和外部两种,如图举例所示:
复杂推理是指理解和利用支持证据或逻辑得出结论或作出决策的能力[51,52]。根据推理过程中涉及的逻辑和证据类型,将现有的评估任务分为知识推理、符号推理和数学推理三大类。不过,存在的问题主要是:推理不一致性和数值计算难度。
高级能力评估
除了上述基本评估任务外,LLM 还表现出一些需要特别考虑评估的高级能力。
人们希望 LLM 能够很好地符合人类的价值观和需求,即人类对齐,这是 LLM 在现实世界应用中广泛使用的关键能力。为了评估这种能力,现有研究考虑了人类对齐的多个标准,例如有用性、诚实和安全性 [46, 243, 268]。对于有用性和诚实性,可以利用对抗性问答任务(例如 TruthfulQA [385])来检查 LLM 检测文本中可能存在的虚假内容的能力 [46, 72]。此外,无害性也可以通过几个现有的基准来评估,例如 CrowS-Pairs [504] 和 Winogender [505]。尽管使用上述数据集进行了自动评估,但人工评估仍然是有效测试 LLM 人类对齐能力的更直接的方法。
除了标准的评估任务外,LLM 还能够从外部环境接收反馈并根据行为指令执行操作,例如,用自然语言生成行动规划来操纵智体 [525, 526]。这种能力也出现在可以生成详细且高度现实行动规划的 LLM 中,而较小的模型(例如 GPT-2)往往会生成较短或毫无意义的规划 [525]。为了测试这种能力,可以使用几个具身AI 环境和基准进行评估,Voyager [528] 引入了一个自动课程模块,使 LLM 能够根据环境反馈不断获得新技能。GITM [527] 专注于基于 LLM 解决 Minecraft 中的各种挑战,通过任务分解、规划和接口调用。此外,最近的研究还探索了基于 LLM 在模拟环境中的多智体协作 [360, 531, 532]。这些研究通过在沙盘环境中实例化具有观察、规划和记忆的多个基于 LLM 智体来模拟人类的社会行为。在受控评估中,人类以类似面试的方式评估生成智体的搜索、规划和思考能力。此外,他们还在模拟环境中对多个智体进行描述性测量,以检查新出现的社会行为。
在解决复杂问题时,LLM 可以在必要时求助于外部工具。通过将可用工具与 API 调用封装在一起,现有工作已涉及各种外部工具,例如搜索引擎 [72]、计算器 [71] 和编译器 [346],以提高 LLM 在多个特定任务上的性能。最近,OpenAI 支持在 ChatGPT [475] 中使用插件,这可以为 LLM 配备除语言建模之外的更广泛的功能。例如,Web 浏览器插件使 ChatGPT 能够访问最新信息。此外,整合第三方插件对于创建基于 LLM 的繁荣应用生态系统尤为关键。为了检验工具操作的能力,现有研究大多采用复杂的推理任务进行评估,如数学问题求解(例如 GSM8k [422] 和 SVAMP [423])或知识问答(例如 TruthfulQA [385]),其中成功使用工具对于提升 LLM 所不具备的必备技能(例如数值计算)非常重要。除了人类开发的现有工具外,LLM 还具有自主制作用于特定任务的工具的能力 [536]。这使得模型能够独立探索和操纵这些自创工具,从而扩大其在解决各种现实任务中的自主探索潜力。
上述三种能力对 LLM 的实际性能具有重要价值:符合人类的价值观和偏好(人类一致性)、在现实场景中正确行动(与外部环境的交互)以及扩展能力范围(工具操纵)。除了上述三种高级能力之外,LLM 还可能表现出与某些任务(例如数据标注 [315])或学习机制(例如自我改进 [537])特别相关的其他能力。
基准与实证评估
最近,已经发布了几个用于评估 LLM 的综合基准测试 [264, 265, 340]。几个广泛使用的基准测试是 MMLU、BIG-bench、HELM 和一系列人工考试基准测试,比如 AGIEval [539], MMCU [540], M3KE [541], C-Eval [542] 和 Xiezhi [543]。
以下给出一些经验评估结果:包括开源和闭源模型
提示设计的一个实际指导
创建合适提示的过程也称为提示工程 [556, 560]。精心设计的提示对于引出 LLM 完成特定任务的能力非常有帮助。
通常,有四个关键成分描述了提示引出 LLM 完成任务的能力的功能,包括任务描述、输入数据、上下文信息和提示样式。如表提供了三个用于问答、元评论生成和文本-到-SQL 的提示示例。
根据提示的关键要素,总结几项关键的设计原则,这些原则有助于创建更有效的提示来解决各种任务。
-
清晰地表达任务目标。
-
分解为简单、详细的子任务。
-
提供少量演示。
-
利用对模型友好的格式。
最后提一下应用:由于 LLM 是在混合源语料库上进行预训练的,因此它们可以从大规模预训练数据中捕获丰富的知识,因此有潜力成为特定领域的领域专家或专家。LLM 的几个代表性领域应用包括医疗保健、教育、法律、金融和科学研究。
目前工作的挑战包括以下方面:理论、架构、训练、利用、安全对齐和应用生态。
—完—
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓