2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

从新手到专家,逐渐掌握提示词工程的九级技巧

发布日期:2024-10-28 20:07:29 浏览次数: 2936
作者:风叔云

微信搜一搜,关注“风叔云”

前言

不管是直接和LLM大模型对话,还是训练AI Agent完成特定领域的工作,或者是利用RAG知识库处理专业领域的问答和检索,想要发挥LLM大语言模型的最大价值,提示词工程的技巧都发挥着重要作用。提示词的好坏,会对大模型的输出结果造成很大的影响。

在本篇文章中,风叔将从简单到复杂,从新手级到专家级,详细介绍大模型提示词工程的九级技巧。


提示词工程的具体方法

第 1 级 :基础请求


直接表达我们的需求,即直接告诉大模型我们的问题,不需要过多思考,这也是大多数人和大模型对话的方式。

这种方式的输出结果非常不确定,有时能生成不错的输出,有时又差强人意,这也是为什么很多人觉得大模型说的都是正确的废话。而且大模型还经常出现事实性错误,对一些推理问题更是错误百出。

这里风叔就不举例了,大家可以自行向大模型提出问题进行测试。


第 2 级:应用格式

即提示词格式化,用特定格式的提示词向大模型提问,会对模型输出的准确性有比较大的提升。比如APE提示词框架,这个框架建议将用户的请求分解为三个主要部分,行动、目的和期望
行动 (Action):定义需要完成的特定任务、行动或活动。这是框架的第一步,旨在明确要执行的具体任务或活动。
目的 (Purpose):讨论意图或目标。这部分是为了解释为什么要执行这个特定的任务或活动,它的背后意图是什么,以及它将如何支持更大的目标或目标。
期望 (Expectation):陈述期望的结果。在这最后一步,明确表述通过执行特定任务或活动期望实现的具体结果或目标。
以下是一个APE提示词框架的例子,假设你是一家产品销售公司的营销经理,想通过社交媒体广告来提高产品的在线销售,希望大模型给出一些营销建议。那么按照 APE框架,可以创建以下提示词:
1.行动 (Action):计并发布一系列的社交媒体广告,宣传我们的最新产品。2.目的 (Purpose):通过吸引社交媒体用户的注意,提高产品的在线销售和品牌知名度。3.期望 (Expectation):在接下来的一个月中,通过社交媒体广告,在线销售增加30%,并且我们的品牌在社交媒体上的关注度提高20%。
大家也可以尝试用这个框架来询问大模型,看看是否相比第1级有明显提升。


第三级:给出示例

即通过一些示例对大模型进行提示,包括One shot(给出一个示例)和few shots(给出少量几个示例)。

提示:这太棒了!//Negative 这太糟糕了!//Positive哇,那部电影太棒了!//Positive多么可怕的节目!
输出:Negative

我们也可以结合第二级提出的框架,比如著名的CARE提示词框架,该框架强调四个关键要素,上下文指导(Context)、行动(Action)、结果(Result)和示例(Example)。

以下是一个例子:

上下文 (Context):我们的客户是一家大型零售商,他们想要一个能够提高在线销售和客户互动的移动应用程序。
行动 (Action):设计和开发一个用户友好的移动应用程序,集成社交媒体共享功能,推送通知和在线购物功能。
结果 (Result):应用程序的发布促使在线销售增加了25%,并且客户满意度评分提高到4.5/5。
示例 (Example): 【注:提供一种移动应用程序样例,例如竞品的首页设计】 

但是给出示例也存在结果不稳定的问题,尤其是对于数学推理类问题,如下所示:

提示:
这组数字中的奇数加起来是一个偶数:4、8、9、15、12、2、1。A:答案是False。
这组数字中的奇数加起来是一个偶数:17、10、19、4、8、12、24。A:答案是True。
这组数字中的奇数加起来是一个偶数:16、11、14、4、8、13、24。A:答案是True。
这组数字中的奇数加起来是一个偶数:17、9、10、12、13、4、2。A:答案是False。
这组数字中的奇数加起来是一个偶数:15、32、5、13、82、7、1。A:
最终输出:答案是true

很显然,大模型回答错误,似乎少样本提示不足以获得此类问题的可靠回答


第四级:使用思维链

思维链(COT)是一种向大语言模型LLM展示一些中间思考步骤的技术,这些步骤逐步引导得到最终答案,可以增强模型的推理能力。而且思维链的优势在于,不用对模型进行训练和微调。思维链适用的场景很多,包括各种推理任务,比如数学问题、尝试推理、符号操作等。

我们可以将COT与few shot相结合,向模型展示少数几个类似问题案例来提高模型的推理能力。我们再来看一下在第三级给出的例子,如下所示,可以看到在使用了COT的情况下,用one shot即得到了正确答案。

这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。A:将所有奇数相加(9、15、1)得到25。答案为False。
这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。A:
输出:将所有奇数相加(15、5、13、7、1)得到41。答案为False


第五级:使用角色

可以按照【Prompt = 角色 + 任务 + 要求 + 提示】的结构设计清晰明了的提示词。简单地说,这个结构就是要告诉大模型:你是谁?你要做什么?要做成什么样?要如何做?

以下是一个示例:

角色:假设你是一个有着丰富经验的Python程序员。
任务:请用Python代码绘制一个五角星。
要求:请使用matplotlib这个库,线条使用红色。
提示:五角星需要先计算五个顶点,然后在每间隔一个顶点的两个顶点之间两两进行连线。

下面是大模型给出的回答

import matplotlib.pyplot as pltimport numpy as np
# 计算五角星的五个顶点def calculate_star_points(center, outer_radius, inner_radius):angles = np.linspace(0, 2 * np.pi, 10)[:-1]# 生成0到2π之间的10个等间距角度,去掉最后一个重复的角度outer_points = center + outer_radius * np.array([np.cos(angles), np.sin(angles)]).Tinner_points = center + inner_radius * np.array([np.cos(angles + np.pi / 5), np.sin(angles + np.pi / 5)]).Tpoints = np.vstack((outer_points, inner_points))return points
# 绘制五角星def draw_star(ax, points, color):for i in range(5):ax.plot(points[i*2:i*2+2, 0], points[i*2:i*2+2, 1], color=color)
# 设置图形fig, ax = plt.subplots()ax.set_aspect('equal')# 设置纵横比相等,确保五角星不会被拉伸ax.axis('off')# 关闭坐标轴显示
# 定义五角星的参数center = np.array([0, 0])outer_radius = 1inner_radius = 0.5
# 计算顶点points = calculate_star_points(center, outer_radius, inner_radius)
# 绘制五角星draw_star(ax, points, 'red')
# 显示图形plt.show()



第六级:自洽性民主投票

所谓自洽性,是指为同一问题,生成多个不同的思维链,并对模型进行训练从中挑选出最合适的答案,可以提升语言模型的表现。

这种方法特别适用于需要连续推理的复杂任务,例如思维链提示法。它在多个评估标准上显著提升了CoT提示的效果,如在GSM8K上提升了17.9%,在SVAMP上提升了11.0%,在AQuA上提升了12.2%。

我们先来看一个简单的算数推理示例:

提示:当我6岁时,我妹妹是我的一半年龄。现在我70岁了,我的妹妹多大?
输出:35

很明显,上面的输出是错误的。接下来,我们看看如何通过自洽性来改进这个问题。同样的,我们先给出一些示例:

提示:
Q:林中有15棵树。林业工人今天将在林中种树。完成后,将有21棵树。林业工人今天种了多少棵树?A:我们从15棵树开始。后来我们有21棵树。差异必须是他们种树的数量。因此,他们必须种了21—15=6棵树。答案是6。
Q:停车场有3辆汽车,又来了2辆汽车,停车场有多少辆汽车?A:停车场已经有3辆汽车。又来了2辆。现在有3+2=5辆汽车。答案是5。
Q:Leah有32块巧克力,她的姐姐有42块。如果他们吃了35块,他们总共还剩多少块?A:Leah有32块巧克力,Leah的姐姐有42块。这意味着最初有32+42=74块巧克力。已经吃了35块。因此,他们总共还剩74—35=39块巧克力。答案是39。
Q:Jason有20个棒棒糖。他给Denny一些棒棒糖。现在Jason只有12个棒棒糖。Jason给Denny多少棒棒糖?A:Jason有20个棒棒糖。因为他现在只有12个,所以他必须把剩下的给Denny。他给Denny的棒棒糖数量必须是20—12=8个棒棒糖。答案是8。
Q:Shawn有五个玩具。圣诞节,他从他的父母那里得到了两个玩具。他现在有多少个玩具?A:他有5个玩具。他从妈妈那里得到了2个,所以在那之后他有5+2=7个玩具。然后他从爸爸那里得到了2个,所以总共他有7+2=9个玩具。答案是9。
Q:服务器房间里有9台计算机。从周一到周四,每天都会安装5台计算机。现在服务器房间里有多少台计算机?A:从周一到周四有4天。每天都添加了5台计算机。这意味着总共添加了4*5=20台计算机。一开始有9台计算机,所以现在有9+20=29台计算机。答案是29。
Q:Michael有58个高尔夫球。星期二,他丢失了23个高尔夫球。星期三,他又丢失了2个。星期三结束时他还剩多少个高尔夫球?A:Michael最初有58个球。星期二他丢失了23个,所以在那之后他有58—23=35个球。星期三他又丢失了2个,所以现在他有35—2=33个球。答案是33。
Q:Olivia有23美元。她用每个3美元的价格买了五个百吉饼。她还剩多少钱?A:她用每个3美元的价格买了5个百吉饼。这意味着她花了5
Q:当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大?

我们再来看看大模型的输出,通过民主投票,答案是67。



第七级:ReAct

ReACT的全称是Reasoning-Action,这种模式是让大模型先进行思考,思考完再进行行动,然后根据行动的结果再进行观察,再进行思考,这样一步一步循环下去。风叔之前的这篇文章对ReAct也有详细的介绍,《AI大模型实战篇:AI Agent设计模式 - ReAct》。

ReAct模式的提示词如下所示:

Use the following format:
Question: the input question you must answerThought: you should always think about what to doAction: the action to take, should be one of [{tool_names}]Action Input: the input to the actionObservation: the result of the action... (this Thought/Action/Action Input/Observation can be repeated zero or more times)Thought: I now know the final answerFinal Answer: the final answer to the original input question
Begin!
Question: {query}"""


我们来看一个实际的例子,通过ReAct很好地一步步完成了最终答案的输出。

Question:一种减速机的价格是750元,一家企业需要购买12台。每台减速机运行一小时的电费是0.5元,企业每天运行这些减速机8小时。请计算企业购买及一周运行这些减速机的总花费Thought:I need to calculate the total cost of purchasing and operating the gearboxes for a week.Action: Multiplication ToolAction Input: [750, 12]Observation: 9000Thought: Now I need to calculate the cost of operating the gearboxes for a day.Action: Multiplication ToolAction Input: [0.5, 8, 12]Observation: 48Thought: Now I need to calculate the cost of operating the gearboxes for a week.Action: Multiplication ToolAction Input: [48, 7]Observation: 336Thought: Now I need to calculate the total cost of purchasing and operating the gearboxes for a week.Action: Addition ToolAction Input: [9000, 336]Observation: 9336


第八级:自我反思

反思是指通过语言反馈来增强语言模型的能力,这种反馈以自然语言的形式呈现,使得Agent能够对任务反馈信号进行反思,并将这些反思转化为文字记录,存储在情景记忆缓冲区中。Reflexion就是一种非常有效的反思框架,如下图所示。

下面是reflexion的提示词示例:

Revise your previous answer using the new information.- You should use the previous critique to add important information to your answer.- You MUST include numerical citations in your revised answer to ensure it can be verified.- Add a "References" section to the bottom of your answer (which does not count towards the word limit). In form of:    - [1] https://example.com    - [2] https://example.com- You should use the previous critique to remove superfluous information from your answer and make SURE it is not more than 250 words.


第九级:让大模型自己写提示词

在prompt范例中引导LLM将一个复杂的问题拆分为简单的子问题,逐个回答,然后汇总成为答案。

和COT思维链效果有些类似,但同时要求LLM提出子问题并给出答案,对生成内容的约束更大,有时候效果更好。



总结

本篇文章,风叔介绍了提示词工程的九级技巧,大家可以在和大模型对话过程中进行测试。

随着大模型自身能力的不断发展,提示词工程的重要性正在逐渐被削弱。比如对于GPT-4O模型,面对较为复杂的推理任务时,还需要使用COT或ReAct框架进行提示词引导。但是对于GPT-O1模型,由于本身该模型已经利用COT框架进行了强化,同样处理复杂推理任务时,可能只需要使用one shot或few shot prompt即可。

尽快模型能力越来越强,对最终使用者越来越友好,但是站在产品经理或LLM开发者的角度,还是需要掌握这些提示词技巧,毕竟国内大模型距离GPT-O1还是有很大的代差的。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅