在人工智能飞速发展的浪潮中,大模型如雨后春笋般涌现,而提示词工程作为与大模型高效交互的关键桥梁,其重要性日益凸显。无论是借助大模型进行内容创作、问题求解,还是开展数据分析等工作,一份精准、高效的提示词都能让大模型的输出质量得到质的飞跃。接下来,我们将从入门到精通,全面深度解析提示词工程。
一、模型设置
在运用提示词与大语言模型进行交互时,存在一些常见的设置。这其中涵盖了温度(Temperature)、Top_p、最大长度(Max Length)、停止序列(Stop Sequences)、频率惩罚(Frequency Penalty)以及存在惩罚(Presence Penalty)等参数,以下将介绍这些参数的作用、调整建议,同时需要说明的是,最终结果可能会因大语言模型的版本不同而有所差异。
-
Temperature 参数:该参数值越小,模型得出的结果确定性就越强,适合用于质量保障等类型的任务;若将参数值调高,结果会更具随机性,有可能产生更多样化或富有创造性的内容,比如在诗歌生成任务中就较为适用。
-
Top_p 参数:其作用是控制模型返回结果的确定性。调低参数值,能够得到准确的事实性答案;调高参数值,响应则会更具多样性,而较低的数值会让模型选择最有把握的响应。
-
Max Length 参数:可以对大模型生成的 token 数量进行控制,从而避免生成冗长或无关的响应,同时也能起到控制成本的作用。
-
Stop Sequences 参数:指的是能够阻止模型生成 token 的字符串,借助它可以对大模型响应的长度和结构加以控制。
-
Frequency Penalty 和 Presence Penalty 参数:这两个参数的作用是对重复出现的 token 进行惩罚。其中,前者的惩罚力度与 token 出现的次数成正比例关系,后者则对所有重复的 token 施加相同的惩罚。通常情况下,调整这两个参数中的一个即可。
常见的提示词可包含以下任一要素:
- 指令:希望模型去执行的特定任务或指令。
- 上下文:包含外部信息或额外的背景信息,以此引导语言模型做出更贴合需求的响应。
- 输入数据:用户所输入的内容或者提出的问题。
- 输出指示:明确指定输出的类型或者格式。
提示词设计的常用技巧:
-
从简单开始:设计提示词是一个不断迭代的过程,可以先从简单的提示词着手,之后逐步增加元素和上下文;也可以把大的任务分解成一个个简单的子任务,避免在初始阶段就设计得过于复杂。
-
指令:用命令的方式指示模型执行任务,这需要进行大量的实验来找到最有效的方式。指令既可以放在提示词的开头,也可以用分隔符与其他内容隔开,而且上下文越具体、越相关,效果就越好。
-
具体性:提示词应当清晰具体地描述任务,提供示例有助于模型给出符合预期的输出。不过要留意提示词的长度,避免包含不必要的细节,需要通过多次实验来进行优化。
-
避免不明确:提示词要具体、直接,避免使用过于复杂或模糊的描述。相比“不要做什么”,明确“要做什么”的表述效果更好。
二、常用的提示技术
1、 零样本提示
提示:
将文本分类为中性、负面或正面。文本:我认为这次假期还可以。情感:
输出:
中性
上面的提示是没有提供任何样例数据的,这样的提示就是零样本提示。
2、 少样本提示
提示:
“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:
输出:
当我们赢得比赛时,我们都开始庆祝跳跃。
可以看到到,模型通过提供一个示例(即1-shot)已经学会了如何执行任务。对于更困难的任务,可以尝试增加演示(例如3-shot、5-shot、10-shot等)。
三、链式思考(CoT)提示
链式思考(CoT)提示通过中间推理步骤实现了复杂的推理能力。可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。
提示:
这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1)得到25。答案为False。
这组数中的奇数加起来是偶数:17、10、19、4、8、12、24。
A:将所有奇数相加(17、19)得到36。答案为True。
这组数中的奇数加起来是偶数:16、11、14、4、8、13、24。
A:将所有奇数相加(11、13)得到24。答案为True。
这组数中的奇数加起来是偶数:17、9、10、12、13、4、2。
A:将所有奇数相加(17、9、13)得到39。答案为False。
这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。
A:
输出:
将所有奇数相加(15、5、13、7、1)得到41。答案为False。
1、 零样本 COT 提示
提示:
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?
让我们逐步思考。
输出:
首先,您从10个苹果开始。
您给了邻居和修理工各2个苹果,所以您还剩下6个苹果。
然后您买了5个苹果,所以现在您有11个苹果。
最后,您吃了1个苹果,所以您还剩下10个苹果。
这里仅仅多了一个让我们逐步思考。就可以完成思维链的过程。
2、 自动思维链(Auto-CoT)
Auto-CoT 主要由两个阶段组成:
- 阶段1:问题聚类:将给定问题划分为几个聚类
- 阶段2:演示抽样:从每组数组中选择一个具有代表性的问题,并使用带有简单启发式的 Zero-Shot-CoT 生成其推理链
3、 自我一致性(Self-Consistency)
自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理的任务中的性能。
4、 生成知识提示(Generated Knowledge Prompting)
提示:
输入:希腊比墨西哥大。
知识:希腊的面积约为131,957平方公里,而墨西哥的面积约为1,964,375平方公里,使墨西哥比希腊大了1,389%。
输入:眼镜总是会起雾。
知识:当你的汗水、呼吸和周围的湿度中的水蒸气落在冷的表面上,冷却并变成微小的液滴时,会在眼镜镜片上产生冷凝。你看到的是一层薄膜。你的镜片相对于你的呼吸会比较凉,尤其是当外面的空气很冷时。
输入:鱼有思考能力。
知识:鱼比它们看起来更聪明。在许多领域,如记忆力,它们的认知能力与或超过非人类灵长类动物等“更高级”的脊椎动物。鱼的长期记忆帮助它们跟踪复杂的社交关系。
输入:一个人一生中吸烟很多香烟的常见影响是患肺癌的几率高于正常水平。
知识:那些一生中平均每天吸烟不到一支香烟的人,患肺癌的风险是从不吸烟者的9倍。在每天吸烟1到10支香烟之间的人群中,死于肺癌的风险几乎是从不吸烟者的12倍。
输入:一块石头和一颗卵石大小相同。
知识:卵石是一种根据Udden-Wentworth沉积学尺度的颗粒大小为4到64毫米的岩屑。卵石通常被认为比颗粒(直径2到4毫米)大,比卵石(直径64到256毫米)小。
输入:高尔夫球的一部分是试图获得比其他人更高的得分。
知识:
输出:
高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。
下一步是将知识整合并得出预测。问题重新格式化为 QA 格式,以指导答案格式。
提示:
问题:高尔夫球的一部分是试图获得比其他人更高的得分。是或否?
知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。
解释和答案:
答案:
不是,高尔夫球的目标不是获得比其他人更高的得分。相反,目标是以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分
答案的好坏其实很依赖知识的生成,如果生成错误的知识,往往答案是很容易出错的。
5、 链式提示(Prompt Chaining)
为了提高大语言模型的性能使其更可靠,一个重要的提示工程技术是将任务分解为许多子任务。 确定子任务后,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分。 这就是所谓的链式提示(prompt chaining),一个任务被分解为多个子任务,根据子任务创建一系列提示操作。
四、思维树(ToT)
思维树(Tree of Thoughts,简称ToT)是一种利用大型语言模型进行问题解决的框架。这个框架借鉴了人类认知研究的成果,特别是关于人类在做决策时的两种思维方式:快速、自动、无意识的模式(称为“系统1”)和慢速、经过深思熟虑、有意识的模式(称为“系统2”)。ToT框架试图模仿人类的这种双重处理过程,通过在语言模型中引入更深层次的规划和搜索机制,以提高问题解决的能力。
ToT框架通过将问题解决过程表示为一棵树,其中每个节点代表问题的一部分解决方案,树枝则代表到达该节点的操作。ToT会主动维护这样一棵树,并在树上搜索不同的解决方案。这个过程涉及到以下几个关键步骤:
1. 思维分解(Thought decomposition) :将问题分解为一系列连贯的思维步骤,每个步骤都是一个语言序列,作为问题解决的中介。
2. 思维生成(Thought generator) :为每个树状结构的状态生成潜在的思维步骤。
3. 状态评估(State evaluation) :评估每个状态的潜在价值,作为搜索算法的启发式标准。
4. 搜索算法(Search algorithm) :使用不同的搜索算法(如广度优先搜索或深度优先搜索)来探索思维树,以找到最优解决方案。
ToT框架的优势在于它的通用性和模块化,它可以适应不同的问题特性、语言模型能力和资源约束。这意味着ToT可以应用于各种问题,而不需要对语言模型进行额外的训练。
尽管ToT框架有其优势,但它也可能面临一些局限性。例如,它依赖于语言模型的能力来生成和评估思维步骤,这可能受到模型本身限制的影响。此外,ToT的效率和效果可能取决于所使用的搜索算法和启发式方法的优化程度。
总的来说,思维树(Tree of Thoughts)是一种创新的框架,旨在通过模拟人类的决策过程,提高大型语言模型的问题解决能力。
1、 自动推理并使用工具 (ART)
该框架使用冻结的LLM自动生成包含中间推理步骤的程序,在完成任务时交替运用CoT提示和工具,具有强大且稳健的特点。
工作原理
- 接新任务时从任务库选多步推理和工具使用示范。
- 测试中调用外部工具时暂停生成,整合输出后继续。
- 引导模型总结示范,拆分新任务并在合适处用工具,采用零样本形式,可手动扩展。
ART 引导模型总结示范,将新任务进行拆分并在恰当的地方使用工具。ART 采用的是零样本形式。ART 还可以手动扩展,只要简单地更新任务和工具库就可以修正推理步骤中的错误或是添加新的工具。这个过程如下:
2、 自动提示工程师(APE)
自动提示工程师 (APE)是一个用于自动指令生成和选择的框架。指令生成问题被构建为自然语言合成问题,使用 LLMs 作为黑盒优化问题的解决方案来生成和搜索候选解。
第一步涉及一个大型语言模型(作为推理模型),该模型接收输出演示以生成任务的指令候选项。这些候选解将指导搜索过程。使用目标模型执行指令,然后根据计算的评估分数选择最合适的指令。
3、 Active-Prompt
思维链(CoT)方法依赖于一组固定的人工注释范例。问题在于,这些范例可能不是不同任务的最有效示例。为了解决这个问题,Diao 等人(2023)最近提出了一种新的提示方法,称为 Active-Prompt,以适应 LLMs 到不同的任务特定示例提示(用人类设计的 CoT 推理进行注释)。
下面是该方法的说明。第一步是使用或不使用少量 CoT 示例查询 LLM。对一组训练问题生成 k 个可能的答案。基于 k 个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。
4、 方向性刺激提示
Li 等人,(2023)提出了一种新的提示技术,以更好地指导 LLM 生成所需的摘要。
训练了一个可调节的策略 LM 来生成刺激/提示。越来越多地使用RL来优化 LLM。
下图显示了方向性刺激提示与标准提示的比较。策略 LM 可以很小,并且可以优化以生成指导黑盒冻结 LLM 的提示。
五、ReAct框架
生成推理轨迹使模型能够诱导、跟踪和更新操作计划,甚至处理异常情况。操作步骤允许与外部源(如知识库或环境)进行交互并且收集信息。
ReAct 框架允许 LLMs 与外部工具交互来获取额外信息,从而给出更可靠和实际的回应。
结果表明,ReAct 可以在语言和决策任务上的表现要高于几个最先进水准要求的的基线。ReAct 还提高了 LLMs 的人类可解释性和可信度。总的来说,作者发现了将 ReAct 和链式思考 (CoT) 结合使用的最好方法是在推理过程同时使用内部知识和获取到的外部信息。
ReAct 的灵感来自于 “行为” 和 “推理” 之间的协同作用,正是这种协同作用使得人类能够学习新任务并做出决策或推理。
链式思考 (CoT) 提示显示了 LLMs 执行推理轨迹以生成涉及算术和常识推理的问题的答案的能力,以及其他任务 (Wei 等人,2022)。但它因缺乏和外部世界的接触或无法更新自己的知识,而导致事实幻觉和错误传播等问题。
ReAct 是一个将推理和行为与 LLMs 相结合通用的范例。ReAct 提示 LLMs 为任务生成口头推理轨迹和操作。这使得系统执行动态推理来创建、维护和调整操作计划,同时还支持与外部环境(例如,Wikipedia)的交互,以将额外信息合并到推理中。下图展示了 ReAct 的一个示例以及执行问题回答所涉及的不同步骤。
六、自我反思(Reflexion)
自我反思是一个通过语言反馈来强化基于语言的智能体的框架。根据 Shinn et al. (2023),“自我反思是一种‘口头’强化的新范例,它将策略参数化为智能体的记忆编码与 LLM 的参数选择配对。”
在高层次上,自我反思将来自环境的反馈(自由形式的语言或者标量)转换为语言反馈,也被称作 self-reflection,为下一轮中 LLM 智能体提供上下文。这有助于智能体快速有效地从之前的错误中学习,进而提升许多高级任务的性能。
如上图所示,自我反思由三个不同的模型组成:
参与者(Actor):根据状态观测量生成文本和动作。参与者在环境中采取行动并接受观察结果,从而形成轨迹。链式思考(CoT) 和 ReAct 被用作参与者模型。此外,还添加了记忆组件为智能体提供额外的上下文信息。 评估者(Evaluator):对参与者的输出进行评价。具体来说,它将生成的轨迹(也被称作短期记忆)作为输入并输出奖励分数。根据人物的不同,使用不同的奖励函数(决策任务使用LLM和基于规则的启发式奖励)。 自我反思(Self-Reflection):生成语言强化线索来帮助参与者实现自我完善。这个角色由大语言模型承担,能够为未来的试验提供宝贵的反馈。自我反思模型利用奖励信号、当前轨迹和其持久记忆生成具体且相关的反馈,并存储在记忆组件中。智能体利用这些经验(存储在长期记忆中)来快速改进决策。 总的来说,自我反思的关键步骤是a)定义任务,b)生成轨迹,c)评估,d)执行自我反思,e)生成下一条轨迹。下图展示了自我反思的智能体学习迭代优化其行为来解决决策、编程和推理等各种人物的例子。自我反思(Refelxion)通过引入自我评估、自我反思和记忆组件来拓展 ReAct 框架。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!