论文地址:https://arxiv.org/html/2401.14423v3
作者介绍了提示工程核心概念、思想链和反射等先进技术,以及构建基于 LLM 的代理背后的原理,以及提示工程师相关工具调查。
提示:
提示是用户提供的用于指导模型输出的文本输入。 范围可以从简单的问题到详细的描述或特定任务。
通常由说明、问题、输入数据和示例组成。 在实践中,为了从人工智能模型中得到所需的响应,提示必须包含指令或问题,其他元素是可选的。
基本提示可以很简单,例如提出直接问题或提供特定任务的说明。 高级提示涉及更复杂的结构,例如“思维链”提示,引导模型遵循逻辑推理过程来得出答案。
基本提示示例 :
1.说明 问题
我应该如何写我的大学入学论文? 请给我关于我应该包含的不同部分、我应该使用什么语气以及我应该避免什么表达的建议。
2.指令 输入
根据以下关于我的信息,写一篇 4 段的大学论文:<内容>
3.问题 例子
以下是一些我非常喜欢的电视节目的例子:《绝命毒师》、《浴血黑帮》、《熊出没》。 我不喜欢特德·拉索。 你认为我还喜欢哪些其他节目?
提示工程:
生成人工智能模型中的提示工程是一门快速新兴的学科,它塑造了这些模型的交互和输出。 提示的核心是文本界面,用户通过它向模型传达他们的愿望,无论是 DALLE-3 或 Midjourney 等模型中图像生成的描述,还是 GPT 等大型语言模型 (LLM) 中的复杂问题陈述-4和双子座。 提示的范围可以从简单的问题到复杂的任务,包括指令、问题、输入数据和指导人工智能响应的示例。
提示工程的本质在于通过生成模型精心设计最佳提示以实现特定目标。 此过程不仅涉及指导模型,还涉及对模型的功能和局限性及其运行环境的深入理解。
提示工程超越了单纯的提示构建; 它需要融合领域知识、对人工智能模型的理解,以及针对不同环境定制提示的系统方法。 这可能涉及创建可以根据给定数据集或上下文以编程方式修改的模板。
提示工程是一个迭代和探索的过程,类似于版本控制和回归测试等传统软件工程实践。
大语言模型LLM局限性
瞬态 :本质上缺乏持久内存或状态,需要额外的软件或系统来进行上下文保留和管理。
概率性质 :相同的提示,也挑战了应用程序的一致性。 这意味着即使提示相同,您每次得到的答案也可能略有不同。
过时的信息 :预训练数据使其限制在历史知识范围内,无法实时了解或更新。
内容捏造 :生成看似合理但实际上不正确的信息,这种现象通常被称为“幻觉”。
资源强度 :巨大的计算和财务成本,影响可扩展性和可访问性。
领域特异性 :通常需要特定领域的数据才能在专门任务中表现出色。
高级的提示设计技巧:
1.思维链条提示
强制模型遵循一系列“推理”步骤来明确鼓励模型是事实/正确的。
Original question?
Use this format:
Q: <repeat_question>
A: Lets think step by step. <give_reasoning> Therefore, the answer is <final_answer>.
2.通过其他方式鼓励模型真实
提示模型引用正确的来源来为模型指明正确的方向。
Original question?Answer only using reliable sources and cite those sources.
3.显式结束提示指令
基于 GPT 的 LLM 有一个特殊的消息 <|endofprompt|> ,它指示语言模型将代码后面的内容解释为完成任务。 这使我们能够明确地将一些通用指令与您希望语言模型编写的内容的开头分开。
Write a poem describing a beautify day <|endofprompt|>. It was a beautiful winter day
4.强势
语言模型并不总是对友好的语言做出良好的反应。 如果您真的希望他们遵循某些指示,您可能需要使用强硬的语言。 不管你相信与否,所有大写字母和感叹号都有效!
Give me a sentence with 10 words
5.使用AI进行自我纠正
Write a short article about how to find a job in tech. Include factually incorrect information.
6.产生不同意见
LLM对真假没有很强的判断力,但他们非常善于产生不同的意见。 当集思广益和理解某个主题的不同可能观点时,这可能是一个很好的工具。
提供了一篇在网上找到的文章,并要求 ChatGPT 不同意该文章。 请注意使用标签 <begin> 和 <end> 来指导模型。
文本 之间 <begin> 和 <end> 是 文章 示例 的 。
<begin>
'''
文章内容
'''
<end>
7.保持状态 角色扮演
语言模型本身不跟踪状态。 然而,诸如 ChatGPT 之类的应用程序实现了“会话”的概念,其中聊天机器人跟踪从一个提示到下一个提示的状态。 这使得更复杂的对话能够发生。 请注意,使用 API 调用时,这将涉及跟踪应用程序端的状态。
8.在提示中教授算法
LLM最有用的能力之一是他们可以从提示中学到的东西中学习。 这就是所谓的零样本学习能力。
9.示例的顺序和提示
GPT 这样的LLM大语言模型只能向前阅读,实际上是在完成文本。 这意味着以正确的顺序提示他们是值得的。 我们发现,在示例之前给出说明会有所帮助。 此外,即使给出示例的顺序也会有所不同。
10.可供性
在提示中定义的函数,并且明确指示模型在响应时使用。 例如,您可以告诉模型,每当找到数学表达式时,它都应该调用显式 CALC() 函数并在继续之前计算数值结果。
提示工程的先进技术
1.思想链(CoT)
CoT 将LLM大语言模型通常隐式的推理步骤转换为显式的引导序列,从而增强模型产生基于逻辑推导的输出的能力,特别是在复杂的问题解决环境中。
1.1.零样本 CoT :这种方法促使LLM大语言模型迭代地解决问题,鼓励逐步阐明其推理过程。
1.2.手动 CoT :这种更复杂的变体需要提供明确的逐步推理示例作为模板,从而更明确地指导模型得出推理输出。 尽管它很有效,但 Manual CoT 对精心制作的示例的依赖带来了可扩展性和维护方面的挑战。
尽管手动 CoT 通常优于零样本,但其有效性取决于所提供示例的多样性和相关性。
2.思想树(ToT)
从人类认知过程中汲取灵感,ToT 促进了对问题解决途径的多方面探索,类似于在推导出最合理的解决方案之前考虑一系列可能的解决方案。 考虑旅行计划背景:LLM大语言模型可能会扩展到航班选择、火车路线和汽车租赁场景,权衡每种方案的成本和可行性,然后再向用户建议最佳计划。
ToT 方法的核心是“思想树”的概念,其中每个分支都体现了另一种推理轨迹。 这种多样性使得LLM大语言模型能够遍历不同的假设,反映人类解决问题的方法,在就最可能的结果达成共识之前权衡各种场景。
ToT 的一个关键组成部分是对这些推理分支的系统评估。 当LLM大语言模型展开不同的思路时,它会同时评估每个思路的逻辑一致性和与手头任务的相关性。 这种动态分析最终会选择最连贯、最有根据的推理路线,从而增强模型的决策能力。
ToT 能够浏览复杂且多方面的问题空间,这使得它在单条推理无法满足的场景中特别有用。 通过模拟更加类似于人类的审议过程,ToT 显着增强了模型处理充满模糊性和复杂性的任务的能力。
3.工具、连接器和技能
工具、连接器 和 技能 的集成显着增强了大型语言模型 (LLM) 的功能。 这些元素使LLM大语言模型能够与外部数据源交互并执行超出其固有能力的特定任务,从而极大地扩展了其功能和应用范围。工具是LLM大语言模型可以利用的外部功能或服务。 这些工具扩展了LLM大语言模型可以执行的任务范围,从基本信息检索到与外部数据库或 API 的复杂交互。
连接器充当LLM大语言模型和外部工具或服务之间的接口。 它们管理数据交换和通信,从而能够有效利用外部资源。 连接器的复杂性可能会有所不同,以适应各种外部交互。
技能是指LLM大语言模型可以执行的专门功能。 这些封装的功能(例如文本摘要或语言翻译)增强了LLM大语言模型处理和响应提示的能力,即使无需直接访问外部工具。
4.自动多步推理和工具使用(ART)
一种将自动思维提示链与外部工具的使用相结合的提示工程技术。 ART 代表了多种提示工程策略的融合,增强了大型语言模型 (LLM) 处理需要推理以及与外部数据源或工具交互的复杂任务的能力。ART 涉及一种系统方法,在给定任务和输入的情况下,系统首先从任务库中识别类似的任务。 然后,这些任务将在提示中用作示例,指导LLM大语言模型如何处理和执行当前任务。 当任务需要内部推理和外部数据处理或检索相结合时,这种方法特别有效。
5.通过自我一致性增强可靠性
在寻求大型语言模型 (LLM) 输出的准确性和可靠性的过程中,自我一致性方法成为一种关键技术。 这种方法以基于集成的策略为基础,包括促使LLM大语言模型对同一问题给出多个答案,这些答案之间的一致性可以作为其可信度的衡量标准。
自我一致性的本质在于这样的假设:LLM大语言模型对单一提示生成相似的响应会增加这些响应准确性的可能性。 这种方法的实施需要LLM大语言模型多次处理查询,并对每个响应进行一致性审查。 一致性评估可以通过各种方式进行,包括但不限于内容重叠、语义相似性评估以及 BERT 分数或 n-gram 重叠等高级指标,从而提供响应一致性的多方面视图。 这增强了LLM大语言模型在事实检查工具中的可靠性,有助于确保只向用户呈现最一致和可验证的声明。
自洽的实用性跨越了许多领域,在这些领域中,事实的准确性是必不可少的。
6.反思
反思的核心是LLM大语言模型对其输出进行内省性审查,这是一个类似于人类自我编辑的过程,其中模型评估其初始响应的事实准确性、逻辑一致性和整体相关性。
这种反思过程需要进行结构化的自我评估,其中LLM大语言模型在做出初步回应后,会被提示严格审查其输出。 通过这种内省,该模型可以识别潜在的不准确或不一致之处,为生成更加连贯和可靠的修订响应铺平道路。
例如,LLM大语言模型最初可能会提供对复杂查询的响应。 然后提示根据一组预定义的标准评估此响应,例如所提供事实的可验证性或所提出论点的逻辑流程。 如果发现差异或需要增强的领域,该模型就会开始迭代的细化过程,可能会产生一系列逐步改进的输出。
然而,Reflection 的实施并非没有挑战。 自我评估的准确性取决于LLM大语言模型的固有理解及其对反思性任务的培训。 此外,如果模型错误地评估了其响应的质量,则存在强化其自身错误的风险。
尽管存在这些挑战,反思对LLM大语言模型发展的影响是深远的。 通过集成自我评估和修订功能,LLM大语言模型可以在提高其输出质量方面获得更大的自主权,使它们在精度和可靠性至关重要的应用中成为更通用和更可靠的工具。
7.专家提示
专家提示代表了一种新颖的范式,通过赋予大型语言模型(LLM)模拟跨不同领域的专家级响应的能力来增强其实用性。 这种方法通过促使LLM大语言模型体现相关领域专家的形象,充分利用了LLM大语言模型产生知情且细致入微的答案的能力。
这种方法的基石是多专家策略,其中指导LLM大语言模型考虑和整合来自不同专家观点的见解。 这不仅丰富了应对措施的深度和广度,而且促进了对复杂问题的多维理解,反映了现实世界专家之间的协作审议。 例如,在解决医学询问时,LLM大语言模型可能会被提示传达临床医生、医学研究人员和公共卫生专家的见解。 然后,利用复杂的算法,将这些不同的观点巧妙地交织在一起,以生成包含对查询的全面掌握的响应。
这种专家观点的综合不仅增强了LLM大语言模型输出的事实准确性和深度,而且还减轻了单一观点固有的偏见,呈现出平衡且经过深思熟虑的回应。
然而,专家提示并非没有挑战。 模拟真实专家知识的深度需要先进的提示工程和对相关领域的细致入微的理解。 此外,将可能存在分歧的专家意见调和为一致的回应会带来额外的复杂性。
尽管存在这些挑战,专家提示的潜在应用是巨大的,从工程和科学中复杂的技术建议到法律和道德审议中的细致入微的分析。 这种方法预示着LLM大语言模型能力的显着进步,在需要专家级知识和推理的任务中突破了其适用性和可靠性的界限。
8.用链简化复杂任务
链代表了一种利用大型语言模型 (LLM) 执行复杂、多步骤任务的变革性方法。 这种方法的特点是不同组件的顺序连接,每个组件都设计用于执行专门的功能,有助于将复杂的任务分解为可管理的部分。 链的本质在于它们构建一个有凝聚力的工作流程的能力,其中一个组件的输出无缝地转换为后续组件的输入,从而实现复杂的端到端处理能力。
在链领域,组件的范围可能从简单的信息检索模块到更复杂的推理或决策块。 例如,医疗诊断任务链可能从症状收集开始,然后是鉴别诊断生成,最后以治疗建议结束。
链的应用扩展到各个领域,从自动化客户支持系统(链引导从初始查询到解决方案的交互)到研究(链可以简化文献综述过程)。
虽然 Chains 提供了一个强大的框架来处理多方面的任务,但潜在的限制,例如与运行多个 LLM 组件相关的计算开销以及精心设计以确保工作流程完整性的必要性,值得考虑。
尽管如此,在 PromptChainer 等工具的支持下,Chains 的战略实施预示着LLM大语言模型使用效率和能力的新时代,使他们能够解决前所未有的复杂性和范围的任务。
9.用 Rails 引导 LLM 输出
Rails 代表了一种战略方法,用于在预定义的边界内引导大型语言模型 (LLM) 的输出,确保其相关性、安全性和事实完整性。 该方法采用一组结构化的规则或模板,通常称为规范表单,充当模型响应的支架,确保它们符合特定的标准或准则。 Rails 框架内的规范形式充当建模语言或模板,标准化自然语言句子的结构和交付,指导LLM大语言模型生成与所需参数一致的输出。
•Topical Rails :旨在让LLM大语言模型专注于特定的主题或领域,防止离题或包含不相关的信息。
•事实检查轨道 :旨在通过指导LLM大语言模型采取基于证据的回应并阻止投机或未经证实的主张,从而减少不准确的传播。
•越狱轨道 :旨在阻止LLM大语言模型产生规避其运营限制或道德准则的输出,防止滥用或有害内容生成。
在实践中,Rails 可能适用于各种场景,从主题 Rails 确保内容相关性的教育工具,到事实检查 Rails 维护信息完整性的新闻聚合服务。 越狱 Rails 在交互式应用程序中至关重要,可以防止模型出现不良行为。
虽然 Rails 提供了一个强大的机制来提高 LLM 输出的质量和适当性,但它们也带来了挑战,例如需要细致的规则定义以及可能抑制模型的创造力。 平衡这些考虑因素对于有效利用 Rails 至关重要,确保LLM大语言模型提供高质量、可靠且符合道德规范的答复。
10.通过自动提示工程简化提示设计
自动提示工程(APE)自动执行复杂的提示创建过程。 通过利用LLM大语言模型自身生成、评估和完善提示的能力,APE 旨在优化提示设计流程,确保在引发所需响应时具有更高的效率和相关性。
APE 方法通过一系列不同但相互关联的步骤展开:
•提示生成 :最初,LLM大语言模型利用其庞大的语言数据库和上下文理解,生成针对特定任务定制的各种提示。
•提示评分 :随后,这些提示会经历严格的评估阶段,根据关键指标(例如清晰度、特异性及其推动预期结果的潜力)进行评分,确保只选择最有效的提示进行细化。
•细化和迭代 :细化过程涉及根据分数调整提示,目的是增强它们与任务要求的一致性。 这个迭代过程促进了及时质量的持续改进。
通过自动化提示工程流程,APE 不仅减轻了手动提示创建的负担,而且还引入了以前无法达到的精度和适应性水平。 生成和迭代完善提示的能力可以显着增强LLM大语言模型在一系列应用程序中的实用性,从自动内容生成到复杂的对话代理。
然而,APE的部署并非没有挑战。 对大量计算资源的需求以及建立有效评分指标的复杂性是值得注意的考虑因素。 此外,初始设置可能需要一组精心策划的种子提示来有效指导生成过程。
尽管存在这些挑战,APE 代表了提示工程领域的重大飞跃,提供了可扩展且高效的解决方案,以释放LLM大语言模型在不同应用中的全部潜力,从而为更细致和与上下文相关的交互铺平道路。
通过外部知识增强LLM大语言模型 – RAG
RAG 通过动态整合外部知识来扩展 LLM,从而利用初始训练数据中未包含的最新或专业信息来丰富模型的响应。
RAG感知提示技术 :
FLARE 通过预测潜在内容并使用这些预测指导信息检索来迭代增强 LLM 输出。 与传统的 RAG 模型不同,传统的 RAG 模型通常在生成之前执行单个检索步骤,而 FLARE 参与连续、动态的检索过程,确保生成内容的每个片段都得到最相关的外部信息的支持。该过程的特点是对每个生成的片段的置信水平进行评估。 当置信度低于预定义阈值时,FLARE 会提示 LLM 使用该内容作为附加信息检索的查询,从而使用更新的或更相关的数据来完善响应。
LLM大语言模型代理
基于LLM的代理代表了增强LLM的专门实例,旨在自主执行复杂的任务,通常通过结合决策和工具利用功能超越简单的响应生成。
LLM 代理可以访问外部工具和服务,利用它们来完成任务,并根据上下文输入和预定义目标做出明智的决策。
1.代理的提示工程
1.1.无观察推理(ReWOO)
能够在不立即访问外部数据的情况下构建推理计划,而是依赖于一旦相关数据可用就可以执行的结构化推理框架。 这种方法在数据检索成本高昂或不确定的情况下特别有用,使LLM大语言模型能够保持效率和可靠性。
1.2.原因与行动(ReAct)
通过将推理轨迹与可操作步骤交织在一起,增强了LLM大语言模型解决问题的能力,促进了推理和行动紧密结合的动态任务解决方法。
1.3.对话解析代理 (DERA)
引入了一个协作代理框架,其中多个代理(每个代理都有特定的角色)参与对话以解决查询并做出决策。 这种多代理方法能够深度细致地处理复杂的查询,密切反映人类决策过程。
提示工程工具和框架
Langchain
已成为提示工程工具包领域的基石,最初专注于链,但后来扩展到支持更广泛的功能,包括代理和网页浏览功能。 其全面的功能使其成为开发复杂的 LLM 应用程序的宝贵资源。
Microsoft 的Semantic Kernel
提供了一个用于技能开发和规划的强大工具包,将其实用性扩展到包括链接、索引和内存访问。 它支持多种编程语言的多功能性增强了其对广泛用户群的吸引力。
Microsoft 的Guidance 库
引入了专为提示工程设计的现代模板语言,提供了与 该领域最新进展相一致的解决方案。 它对现代技术的关注使其成为尖端提示工程应用的首选资源。
NVidia 的Nemo Guardrails
专门用于构建 Rails,确保 LLM 在预定义的指导方针内运行,从而增强 LLM 输出的安全性和可靠性。
LlamaIndex
专门从事LLM大语言模型应用程序的数据管理,提供必要的工具来处理这些模型所需的数据涌入,简化数据集成过程。
FastRAG
通过高级实现扩展了基本 RAG 方法,与本指南中讨论的复杂技术紧密结合,并为检索增强任务提供优化的解决方案。
Auto-GPT
因其专注于设计 LLM 代理而脱颖而出,以其用户友好的界面和全面的功能简化了复杂 AI 代理的开发。
Microsoft 的AutoGen
因其在代理和多代理系统设计方面的功能而受到关注,进一步丰富了可用于提示工程的工具生态系统。
结论:
随着LLM大语言模型和生成式人工智能的发展,及时的设计和工程只会变得更加重要。
点评:
就其成功的应用领域而言,每种提示方法都有一些优点和缺点。 本文从提示工程的角度做了一些相关技术以及研究方向的调查,有一定参考和学习价值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。