提示工程(prompt engineering):技术分类与提示词调优看这篇就够了

发布时间:2026/7/20 11:32:25
提示工程(prompt engineering):技术分类与提示词调优看这篇就够了 前言在人工智能盛起的当下出现了一个新兴的行业——提示工程(prompt engineering)。提示词简言之就是我们和AI说的话。在人机交互模式下一个好的提示词往往能产生事半功倍的效果。文本领域好的提示词往往能超越RAG/Agent所能发挥的能力图片对应的视觉领域好的提示词往往能产生更好地图片/视觉效果。在山行AI的视频号上有两个关于提示词的视频很好地说明了这一点感兴趣的小伙伴不妨一观顺便帮忙点个关注❤️-_-❤️很分感谢)PS可能看了本文之后你对于提示词的理解就能超过别人很多啦01如何训练提示词模型来生成爆款文案02翻译时如何用好提示词来告别机翻感提示工程技术分类与提示调优作为一个新兴的研究领域提示工程(prompt engineering)缺乏明确的技术分类。当你浏览不同的文章和网站讨论这些技术时你会发现它们各不相同且缺乏结构。由于这种混乱从业者往往只坚持使用最简单的方法。在这篇文章中我提出了一个对提示工程技术的概览和清晰的分类这将帮助你把握它们的概念并在你的应用程序中有效使用它们。此外我还将讨论将提示工程作为一个涉及提示调整(prompt tuning)和评估的数据科学过程。尽管许多研究者付出了努力大型语言模型仍然面临一些问题。它们的主要陷阱有•引用资源。大型语言模型LLMs可以生成看似非常可信并引用外部资源的内容但重要的是要记住它们不能引用资源它们既没有访问互联网的权限•偏见。LLMs在它们的回应中可能表现出偏见常常生成刻板印象或有偏见的内容•幻觉。当LLMs被问到它们不知道答案的问题时有时可以“幻觉”或生成虚假信息•数学和常识问题。尽管它们有先进的能力LLMs常常在解决即使是最简单的数学或常识问题时遇到困难•提示劫持。LLMs可以被用户操纵或“黑客攻击”以忽略开发者的指令并生成特定内容。大多数的提示工程技术解决了两个问题幻觉和解决数学及常识任务。有特定的技术旨在减轻提示劫持但这是一个单独讨论的话题。常见规则在讨论具体技术之前让我们谈谈提示的常见规则这将帮助你写出清晰和具体的指令1.准确地说明要做什么写作、总结、提取信息2.避免说明不要做什么而是说明要做什么3.具体一点不要说“用几句话”而是说“用2-3句话”4.添加标签或分隔符来构造提示5.如果需要要求结构化输出JSON、HTML6.要求模型验证是否满足条件例如“如果你不知道答案就说‘没有信息’”7.要求模型先解释然后再提供答案否则模型可能试图为错误的答案辩解。分类目前的大多数技术可以分为三组•单一提示技术旨在优化对一个提示的响应•接下来是结合几个提示的技术。它们的共同理念是多次查询模型或多个模型以解决任务•最后有一组方法将大型语言模型与外部工具结合使用。单一提示技术哪些技术旨在通过单个提示解决你的任务•零次学习Zero-Shot•少次学习Few-Shot•思维链Chain of Thought•程序辅助语言Program Aided Language。我们来逐一研究它们。零次提示Zero-Shot Prompting这是最简单的技术使用自然语言指令。单次学习。示例来自 promptingguide.ai[1]少次提示Few-Shot Prompting大型语言模型LLMs在单次学习方面表现非常出色但它们仍可能在复杂的任务上失败。少次学习的理念是向模型演示带有正确答案的类似任务Brown et al. (2020)[2]。少次学习。示例来自 promptingguide.ai[3]在 Min et al. (2022)[4] 的论文中研究表明在一系列分类和多选任务中示范中标签的不正确几乎不会影响性能。相反确保示范提供标签空间的少数几个示例、输入测试的分布以及序列的整体格式是至关重要的。思维链提示Chain of Thought Prompting, CoT思维链提示通过中间推理步骤实现复杂的推理能力。这项技术的目标是使模型迭代并对每一步进行推理。零次学习、少次学习和思维链提示技术。示例来自 Kojima et al. (2022)[5]。思维链提示可以与零次学习或少次学习一起使用。零次思维链提示的概念是建议模型一步一步地思考以得出解决方案。这种方法的作者(Kojima et al. (2022)[6])展示了零次思维链提示在算术、符号和其他逻辑推理任务上的性能显著超过了零次学习的大型语言模型LLM的表现。如果你选择少次思维链提示你必须确保有包含解释的多样化示例(Wei et al. (2022)[7])。这种方法在算术、常识和符号推理任务上具有惊人的实证增益。程序辅助的语言模型Program-Aided Language Models, PAL程序辅助的语言模型是一种扩展思维链提示的方法通过将解释扩展为带有代码的自然语言(Gao et al. (2022)[8])。程序辅助语言提示。示例来自 Gao et al. (2022)[9]。这一技术可以使用 LangChain PALChain[10] 类来实施。多重提示技术下一组提示基于结合一个或几个模型的提示的不同策略1.投票。这个想法是通过投票得到正确答案。技术自我一致性。2.分而治之。这组提示基于将复杂任务分解为几个提示。技术方向刺激、生成知识、提示链、表格链和由少到多的提示。3.自我评估。这种方法建议在框架中加入检查输出是否符合指示的步骤。技术反思、思维树。自我一致性Self Consistency, SC自我一致性基于这样的直觉“一个复杂的推理问题通常有多种不同的思考方式导致其唯一正确的答案”Wang et al. (2022)[11]。它多次提出相同的思维链提示从而生成一组多样化的推理路径然后通过应用投票选择最一致的答案。自我一致性提示技术示例源自Wang et al. (2022)[12]在Wang et al. (2022)[13]的研究中应用自我一致性技术对算术和常识任务的提升在常见基准测试中为4%–18%。定向刺激提示DSP结合提示的下一个概念是“分而治之”。在DSP中我们有两个步骤生成刺激例如关键词并使用它们来提高响应的质量。定向刺激提示在Li et al. (2023)[14]提出用于摘要生成、对话响应生成和思维链推理任务。它包含两个模型•训练一个小型可调策略语言模型LM来生成刺激提示•使用一个黑盒冻结的大型语言模型LM根据问题和上一步的刺激生成摘要。策略模型可以通过使用标记数据的监督式微调和基于大型语言模型LLM输出的离线或在线奖励进行强化学习来进行优化例如DSP框架 Li et al. (2023)[15] 我们学习一个小型的可调策略模型来生成定向刺激在这种情况下是关键词它为大型语言模型LLM提供了针对特定输入的指导以达到预期的目标。生成知识提示GK在“分而治之”概念下的下一个提示技术是在 Liu et al. (2022)[16] 提出的生成知识。其思想是先使用一个单独的提示来生成知识然后利用这些知识来获得更好的响应。生成知识提示包括两个阶段•知识生成使用少量样本演示从语言模型中生成与问题相关的知识陈述•知识整合使用第二个语言模型与每个知识陈述一起进行预测然后选择最高置信度的预测。这种方法不需要对知识整合的特定任务的监督也不需要访问结构化的知识库但它提高了大型、最先进模型在常识推理任务上的性能。来自 Liu et al. (2022)[17] 的知识生成小样本提示示例用于QASC提示链接提示链接是一种简单而强大的技术你应该将任务分解为子问题并依次用这些子问题提示模型。提示链接对于完成一个大型语言模型LLM可能难以应对的复杂任务非常有用特别是当这些任务伴随着非常详细的提示时。它还有助于提高大型语言模型应用的透明度增强可控性和可靠性。提示链接示例来自 txt.cohere.com[18]从简到繁的提示从简到繁的提示方法更进了一步增加了一个步骤即模型需要决定如何将你的任务分解成子问题。Zhou et al. (2022)[19] 中的实验结果揭示从简到繁的提示方法在与符号操作、组合泛化和数学推理相关的任务上表现良好。Zhou et al. (2022)[20] 中的从简到繁提示的例子连锁表格提示在最近的研究 (Wang et al. (2024)[21]) 中提出了一种新方法其中表格数据被明确用作推理链中的中间思考的代理。该算法包括两个步骤的循环1.动态规划在此过程中大型语言模型LLM根据输入查询和以前操作的历史操作链从操作池中抽取下一个操作2.参数生成涉及使用大型语言模型LLM为上一步骤选定的操作生成参数例如新的列名并应用编程语言来执行操作并创建相应的中间表格。来自Wang et al. (2024)[22]的连锁思考提示的示例和比较。接下来的两种方法实现了自检Self-Check的概念 —— 框架中有一个步骤来检查解决方案。连锁表格Cgain-of-Table实现的示例可以在此链接[23]找到。思维树Tree of ThoughtsToT思维树在连锁思考方法的基础上进行泛化允许模型探索多个推理步骤并自我评估选择。要实现ToT技术我们必须决定四个问题1.如何将中间过程分解为思考步骤2.如何从每个状态生成潜在的思考点3.如何启发式地评估状态使用状态评估提示4.使用什么搜索算法Yao et al. (2023)[24]。输入提示必须包括解决问题的中间步骤的描述以及抽取的思考点或关于生成它们的指令。状态评估提示必须提供关于选择哪些提示进行下一步的指令。【思维树在24点游戏中的例子】摘自Yao et al. (2023)[25]Yao et al. (2023)[26]的实验显示对于需要复杂规划或搜索的任务思维树技术ToT非常成功。LangChain 实现了思维树技术在 langchain_experimental.tot.base.ToTChain 类[27]中有所体现。反思反思是一个通过语言反馈加强语言代理的框架。反思代理通过对任务反馈信号进行口头反思然后在情节记忆缓冲区中保持自己的反思文本以在后续试验中促进更好的决策Shinn et al. (2023)[28]。来自 Shinn et al. (2023)[29] 的反思框架图解反思框架由三个不同的模型组成•执行者Actor一个基于状态观察生成文本和行动的大型语言模型使用CoT和ReAct技术•评估者Evaluator一个对执行者产生的输出进行评分的大型语言模型•自我反思Self-Reflection一个生成口头强化提示以协助执行者自我提升的大型语言模型。来自 Shinn et al. (2023)[30] 的不同任务中的反思示例反思在需要顺序决策、编程、语言推理的任务中表现良好。请通过此链接[31]查看实现。结合外部工具的大型语言模型框架在本节中我将介绍两种方法 —— 检索增强生成和ReAct。检索增强生成Retrieval-Augmented Generation, RAGRAG将信息检索组件与文本生成模型结合起来•检索。在检索步骤中系统通常使用向量搜索寻找可能回答问题的相关文档•生成。接下来将相关文档作为上下文连同初始问题传递给一个大型语言模型Lewis et al. (2021)[32]。在大多数情况下使用RAG-序列方法意味着我们检索k篇文档并使用它们生成回答用户查询的所有输出标记。在RAG中语言模型可以进行微调但实际上这种做法很少见因为预训练的大型语言模型已经足够好可以直接使用而自行进行微调成本过高。此外RAG中的内部知识可以以高效的方式修改而无需重新训练整个模型。RAG生成的响应更具事实性、具体性和多样性有助于提高事实验证的结果。ReActYao等人2022[33] 提出了一个名为ReAct的框架其中大型语言模型被用来以交错的方式生成推理迹象和任务特定的行动推理迹象帮助模型引导、跟踪和更新行动计划以及处理异常而行动则使其能够与外部来源如知识库或环境接口并收集额外信息。ReAct框架可以选择一个可用的工具例如搜索引擎、计算器、SQL代理应用它并分析结果以决定下一步行动。ReAct案例引自Yao等人2022年[34]通过与简单的Wikipedia API交互ReAct解决了在连贯思维推理中普遍存在的幻觉和错误传播问题并生成了类似人类解决任务的轨迹这些轨迹比没有推理痕迹的基线模型更易于解释Yao等人2022年[35]。查看Langchain工具实现的ReAct案例[36]。提示调整和评估选择提示工程技术在很大程度上取决于您的LLM的应用和可用资源。如果您曾经尝试过提示您知道大型语言模型对人类生成的提示中最微小的变化非常敏感这些提示往往是次优的且通常具有主观性。无论您选择哪种提示技术如果您正在构建一个应用程序将提示工程视为一个数据科学过程是非常重要的。这意味着创建一个测试集选择指标调整提示并评估其对测试集的影响。测试提示的指标在很大程度上将取决于应用程序但以下是一些指南来自数据科学峰会2023[37]测试提示的指标摘自数据科学峰会2023[38]1.忠实度和相关性•生成答案的事实准确性如何•生成答案与问题的相关性如何。2.检索— 主要用于RAG和ReAct管道但也可以应用于生成的知识及方向性刺激提示•精确度 — 检索到的文档的相关性有多高•召回率 — 是否检索到了所有相关文档。3.内部思考•代理和工具选择的准确性 — 用于ReAct•工具参数提取 — 是否从上下文中正确检索到参数并进行了恰当的转换 — 用于ReAct•在长轮对话中记住事实 — 用于ReAct•正确的逻辑步骤 — 用于ReAct和思维链提示。4.非功能性•答案的风格和语调•缺乏偏见•合规和安全检查•提示注入测试。根据您的用例选择指标并跟踪提示更改对测试集的影响确保任何更改不会降低响应的质量。总结我不敢说已经涵盖了所有现有技术 — 它们太多了不久的将来有人可能会出版一本完整的教科书。但如果你读到这里你会注意到所有技术的概念都相当普遍且直观。我可以将所有写好提示的规则总结为一个简短的清单1.清晰而准确以便模型不必猜测你的意图2.使用分隔符或标签增加结构3.通过展示示例和添加解释来帮助模型4.要求模型迭代思考解释其解决方案5.如果提示复杂考虑将其分解为子任务6.尝试多次询问相同的提示7.考虑增加模型自检的步骤8.如有需要将您的LLM与外部工具结合使用9.将提示调整视为一个迭代且需要评估的数据科学过程。如何系统的去学习大模型LLM 我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。AI大模型系统学习路线图阶段1AI大模型时代的基础理解目标了解AI大模型的基本概念、发展历程和核心原理。内容L1.1 人工智能简述与大模型起源L1.2 大模型与通用人工智能L1.3 GPT模型的发展历程L1.4 模型工程- L1.4.1 知识大模型- L1.4.2 生产大模型- L1.4.3 模型工程方法论- L1.4.4 模型工程实践L1.5 GPT应用案例阶段2AI大模型API应用开发工程目标掌握AI大模型API的使用和开发以及相关的编程技能。内容L2.1 API接口- L2.1.1 OpenAI API接口- L2.1.2 Python接口接入- L2.1.3 BOT工具类框架- L2.1.4 代码示例L2.2 Prompt框架- L2.2.1 什么是Prompt- L2.2.2 Prompt框架应用现状- L2.2.3 基于GPTAS的Prompt框架- L2.2.4 Prompt框架与Thought- L2.2.5 Prompt框架与提示词L2.3 流水线工程- L2.3.1 流水线工程的概念- L2.3.2 流水线工程的优点- L2.3.3 流水线工程的应用L2.4 总结与展望阶段3AI大模型应用架构实践目标深入理解AI大模型的应用架构并能够进行私有化部署。内容L3.1 Agent模型框架- L3.1.1 Agent模型框架的设计理念- L3.1.2 Agent模型框架的核心组件- L3.1.3 Agent模型框架的实现细节L3.2 MetaGPT- L3.2.1 MetaGPT的基本概念- L3.2.2 MetaGPT的工作原理- L3.2.3 MetaGPT的应用场景L3.3 ChatGLM- L3.3.1 ChatGLM的特点- L3.3.2 ChatGLM的开发环境- L3.3.3 ChatGLM的使用示例L3.4 LLAMA- L3.4.1 LLAMA的特点- L3.4.2 LLAMA的开发环境- L3.4.3 LLAMA的使用示例L3.5 其他大模型介绍阶段4AI大模型私有化部署目标掌握多种AI大模型的私有化部署包括多模态和特定领域模型。内容L4.1 模型私有化部署概述L4.2 模型私有化部署的关键技术L4.3 模型私有化部署的实施步骤L4.4 模型私有化部署的应用场景辅助学习书籍PDF资源学习计划阶段11-2个月建立AI大模型的基础知识体系。阶段22-3个月专注于API应用开发能力的提升。阶段33-4个月深入实践AI大模型的应用架构和私有化部署。阶段44-5个月专注于高级模型的应用和部署。请根据您的个人进度和时间安排适当调整学习计划。记得在学习过程中理论与实践相结合不断进行项目实践和反思以加深理解和技能的掌握。学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。领取方式我会放在下面希望领取了的朋友不要忘了下方名片放心添加