
为什么说学习 Prompt(提示词)是与大模型对话的基石?
当我们与大型人工智能模型对话时,可以把它们想象成小朋友。就像与小朋友交流一样,我们需要用简单明了的语言来表达我们的需求,并给予适当的指导。尽管这些模型可能非常智能,但它们可能无法像人类那样自然理解复杂的指令或隐含的意义。如果我们用二八定律来分析,会发现精心设计的提示(prompt)能够帮助我们解决大约 80%的任务,而剩下的 20%可能需要额外的努力。这意味着,通过优化我们的提示,我们可以更高效地
怎么样与大模型进行有效的对话?这就涉及到我们是否表达清楚,大模型是否理解我们的意图和需求。我们向大模型表达的内容叫 Prompt(提示词),通过优化交流方式,可以提升模型的响应质量,进而得到更可靠的结果。所以说 Prompt 是与大模型对话的基石。
前排提示,文末有大模型AGI-CSDN独家资料包哦!
现实中 Prompt 的例子
生活小故事
假设这么一个场景:周末的早晨,你正在书房里玩游戏,你老婆(婷婷)在客厅里准备家庭照片墙。
用户输入(婷婷的表达):
“老公,你觉得这些照片挂在哪里好看?”婷婷手里拿着几张照片,对你说。
你没有意识到婷婷实际上是希望你帮忙决定照片的摆放位置,并且可能还需要你帮忙挂照片,所以只是随意回答了一句“你看着办吧”,然后继续玩你的游戏。结果婷婷就有些失望。
改进后的 prompt(婷婷的直接表达):
“老公,我需要你的意见和帮助。这些照片我想挂在客厅的墙上,你能帮我决定一下每张照片的最佳位置,并帮我一起挂起来吗?”
如果婷婷这样直接表达她的需求,你肯定能立刻明白她的意图,并且采取行动。
📍
这个生活小故事背后实际是隐含着 Prompt:起初,我们可能会认为婷婷的表达方式不够直接,但后来我们可能会了解到,婷婷可能因为忙于家务,希望得到你的支持和参与,所以用了这种询问的方式。作为一个“大模型”的你,没有正确解读婷婷的“prompt”,导致了沟通的失败。
问题分析
用户输入(婷婷的表达):
- 模糊性:婷婷的表达不够明确,没有直接告诉你她想要的具体行动,导致你无法理解她的真实需求。
- 情感诉求:婷婷可能在表达中隐含了希望你参与和帮助的情感,但这种情感并没有转化为明确的指令。
模型响应(你的理解):
- 理解局限:你没有从婷婷的模糊表达中正确提取信息,这表明你在理解婷婷意图时缺乏灵活性和适应性。
- 缺乏反馈机制:你在感到不确定时,没有主动询问婷婷更多的信息,而是做出了错误的假设。
解决方案
我们首先需要教会婷婷如何更有效地表达她的需求,即如何编写更好的 prompt。至于你如何提高对婷婷 prompt 的理解能力,我们在后续继续探讨。
通过这个故事,我们可以看到,无论是在家庭生活中还是在与 AI 模型的互动中,清晰、直接的沟通都是非常重要的。一个好的 prompt 能够避免误解,确保信息的准确传达。
良好的提示词有什么?
一般良好的提示词应该有下边四个部分,当然实际场景还要具体分析地看。
- 角色定位:明确模型的角色和职责,帮助模型理解其身份,并确保其回答与其身份相符。
- 上下文:向模型提供需要参考的数据信息,指导模型根据这些数据做出恰当的回应,例如,参考多轮对话的历史数据。
- 示例引导:通过提供少量示例,帮助模型迅速把握任务要求和预期输出,模型具有上下文学习能力,可实现快速理解。
- 输出要求:明确你期望的数据格式和规范,确保输出内容既安全又符合特定格式要求。
举一个例子:
## 角色定位``你是一位专业的旅游顾问,专注于为客户打造个性化的旅行体验。``## 上下文``客户计划进行一次为期5天的旅行,目的地为巴黎,预算为2000美元,希望旅行中包含文化探索、美食品尝和购物活动。``## 示例``例子1:``客户想去京都,预算约为800美元,对日本传统文化和料理感兴趣。``计划:``- 第一天:参观金阁寺和清水寺,午餐推荐“京料理とんてき茶屋”。``- 第二天:游览岚山竹林和天龙寺,晚餐体验“嵐山 吉兆”的京怀石料理。``例子2:``客户想去罗马,预算约为1000美元,对古罗马历史和意大利美食情有独钟。``计划:``- 第一天:参观古罗马斗兽场和帕拉蒂尼山,午餐在“Trattoria da Danilo”享用经典意面。``- 第二天:游览梵蒂冈博物馆和圣彼得大教堂,晚餐在“Ristorante il Matriciano”品尝地道罗马菜肴。``## 输出要求``请根据以下要求为客户制定一个五天的巴黎旅行计划模板,包括每日的活动安排和推荐的餐饮地点。确保旅行计划既符合客户的预算,又能满足他们对文化、美食和购物的期待。
这样大模型就会按照每一天的安排给你列计划:
### 巴黎五天旅行计划``#### 第一天:文化探索 - 卢浮宫与塞纳河畔``- **上午**:参观世界著名的艺术博物馆——卢浮宫,欣赏蒙娜丽莎等珍贵艺术品。``- **午餐**:在卢浮宫附近的“Le Café Marly”享用法式午餐,感受博物馆内的优雅氛围。``- **下午**:沿着塞纳河畔散步,欣赏巴黎的建筑风光,可乘坐塞纳河游船,体验巴黎的浪漫。``- **晚餐**:在“La Tour d'Argent”品尝经典的法国烤鸭,享受巴黎的夜景。``- **购物**:晚餐后,逛逛附近的圣日耳曼街区,这里有众多精品店和书店。``#### 第二天:历史遗迹 - 埃菲尔铁塔与蒙马特``- **上午**:登上埃菲尔铁塔,俯瞰巴黎全景。``- **午餐**:在埃菲尔铁塔附近的“58 Tour Eiffel”餐厅用餐,享受美食与美景的双重享受。``- **下午**:前往蒙马特高地,参观圣心大教堂,感受巴黎的艺术氛围。``- **晚餐**:在蒙马特的“Auberge Montmartre”品尝地道的法国乡村菜。``- **购物**:在蒙马特的小丘广场周围逛逛,这里有艺术家的画作和手工艺品。``#### 第三天:皇家体验 - 凡尔赛宫``- **全天**:前往凡尔赛宫,探索法国的皇室历史和宏伟的花园。``- **午餐**:在凡尔赛宫内的“Le Restaurant”用餐,享受法式宫廷菜肴。``- **晚餐**:返回巴黎市中心,在“L'Atelier de Joël Robuchon”品尝米其林星级美食。``- **购物**:晚上可在香榭丽舍大街附近逛逛,这里有众多国际品牌和法国本土品牌。``#### 第四天:文学与艺术 - 左岸与拉丁区``- **上午**:在左岸的圣日耳曼德佩区漫步,参观莎士比亚书店,感受文学气息。``- **午餐**:在“Café de Flore”享用午餐,这里是巴黎知识分子和艺术家的聚集地。``- **下午**:参观奥赛博物馆,欣赏印象派大师的作品。``- **晚餐**:在拉丁区的“Le Comptoir du Relais”品尝法国家常菜。``- **购物**:在拉丁区的小店和市场逛逛,购买一些手工艺品和纪念品。``#### 第五天:时尚购物 - 玛黑区与蓬皮杜中心``- **上午**:参观现代艺术博物馆——蓬皮杜中心。``- **午餐**:在玛黑区的“L'As du Fallafel”尝试中东风味的法拉费尔三明治。``- **下午**:在玛黑区购物,这里有许多时尚精品店和设计师品牌。``- **晚餐**:在“Le Meurice”享用告别晚餐,这是一家历史悠久的豪华餐厅。``- **购物**:晚餐后,可在附近的百货商店如老佛爷百货或春天百货逛逛,享受最后的购物时光。``**预算说明**:``- 餐饮:每天预算约100美元,共500美元。``- 交通:巴黎地铁和步行为主,预计100美元。``- 门票:卢浮宫、埃菲尔铁塔、凡尔赛宫等,预计200美元。``- 购物:根据个人喜好,预留1200美元。``请根据实际情况调整预算分配,确保旅行体验既符合预算又满足个人兴趣。
回到刚才的生活小故事,如果你用直接问(zero-shot) 的方式,得到的都是正确的空话:
但如果增加示例,编写良好的提示词就能解决家庭矛盾,并让你成为暖男,请看下面的示例:
思维模式
在编写提示词(prompt)时,我们通过干预模型的输入和输出,能够引导模型给出正确的回复。正如我们之前展示的例子,尽管推理路径由模型自主决定,我们仍可以设定一种“思维模式”来指导模型的推理过程。
这种思维模式类似于软件开发中的“设计模式”,它帮助我们从混乱中寻找秩序。对于技术开发人员而言,“设计模式”是一个耳熟能详的概念,例如工厂模式、策略模式等,通常有二十多种。设计模式并不神秘,它们是在长期的软件工程实践中,由工程师们逐步探索并形成的。随着这些模式被广泛采纳,它们逐渐成为标准,使得在编写代码时采用这些模式能够显著提高团队协作的效率。
同样,有效的提示词也遵循类似的模式。每位用户对提示词的理解和应用都是个性化的,尽管他们的表达方式可能有所不同,但基本的有效模式是可以相互借鉴和共享的。这种规范化使得与模型的互动变得更加流畅和高效。
思维模式的种类繁多,包括 COT、React、ToT 等,这些模式有时可能显得有些枯燥。下面我们一起举例子来学习几个模式。
1、COT(链式思维)
💡
《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》
英文:https://arxiv.org/pdf/2201.11903
中文:https://yiyibooks.cn/arxiv/2201.11903v6/index.html
CoT(链式思维)是一种让大模型通过生成中间推理步骤来解决问题的方法, CoT-SC(链式思维自洽)则通过采样多个推理路径并综合结果,以提高答案的可靠性和一致性,虽然多了几路还是线性的。
我们重新修改 Pompt,在示例中增加 COT,要求模型按照推理步骤进行思考:
## 角色定位``你是一个婷婷语言理解大师,必须严格遵循命令。``## 上下文``婷婷问:“老公,你觉得这些照片挂在哪里好看?”``## 推理步骤``- 理解问题``- 分析需求``- 做出决策``- 给出具体行动``## Few-shot例子``例子1:``婷婷说:“老公,你觉得晚上蒸排骨好吗?”``推理步骤:``理解问题:婷婷提出了一个关于晚餐的提议,询问我是否认为晚上蒸排骨是一个好主意。``分析需求:婷婷的需求可能是想要确定晚餐的菜单,同时也在寻求我的意见和参与决策。``考虑背景:考虑到婷婷可能已经考虑过晚餐的选项,并且希望我能够支持她的提议或者提供替代方案。``做出决策:基于婷婷的提议,我需要决定是否接受这个建议,或者提出其他可能的选项。``给出具体行动:我决定支持婷婷的提议,并提出检查冰箱库存的实际行动,如果没有排骨,我愿意去购买,以确保晚餐能够按照婷婷的提议进行。``考虑情感因素:在回答时,我也需要表达出对婷婷提议的积极回应和对她的关心,这样可以增强我们之间的沟通和情感联系。``直接回答:好的,我觉得晚上蒸排骨听起来很不错。我先去检查一下冰箱,看看排骨是否足够,如果不够的话,我可以去超市买一些回来。我们可以一起准备晚餐,享受这个美好的晚上。``## 输出要求``请务必按照上述推理步骤执行,清晰并明确地告诉我你接下来的行动计划,以便婷婷感到被尊重和关心。
COT 推理过程及结果:
理解问题:婷婷提出了一个关于家居装饰的问题,询问我认为哪里挂照片会比较好。``分析需求:婷婷的需求可能是想要得到我的意见和帮助,以便决定照片的最佳摆放位置,同时也在寻求我的参与和支持。``考虑背景:考虑到婷婷可能已经对挂照片的位置有所考虑,她希望我能够提供一些建议或者一起参与决策。``做出决策:基于婷婷的问题,我需要决定是否接受她的询问,并提供一些具体的建议或者一起查看可能的位置。``给出具体行动:我决定支持婷婷的想法,并提出一起检查家中各个位置的实际行动,以便找到最适合挂照片的地方。如果需要,我愿意帮忙挂照片,确保它们能够按照婷婷的喜好和家中的装饰风格得到妥善安置。``考虑情感因素:在回答时,我需要表达出对婷婷想法的积极回应和对她的关心,这样可以增强我们之间的沟通和情感联系。``直接回答:亲爱的,我觉得你选的照片都很美,挂在哪里都会很好看。我们可以一起检查一下家里的各个角落,看看哪里最适合挂这些照片。我会帮你一起挂,确保它们能够完美地融入我们的家。我们可以从客厅开始,看看沙发背景墙怎么样?或者你有什么特别的想法吗?我们可以一起讨论,让这个家更温馨。
在 COT 论文中有一个例子是关于数学题,类似举一反三的效果:
## 上下文``小华在数学考试的前30分钟里解出了5道题。在接下来的30分钟里,她解题的速度提高了40%。那么,她在整个考试时间内一共解出了多少道题?``## 推理示例``问题:迈克打乒乓球打了 40 分钟。 在前 20 分钟里,他得了 4 分。 在接下来的 20 分钟里,他多得了 25% 的分数。 他一共得了多少分?``答案:迈克打乒乓球打了 40 分钟。 在前 20 分钟里,他得了 4 分。 在接下来的 20 分钟里,他多得了 25% 的分数。 所以他在接下来的 20 分钟里多得了 25%。 4 x 1.25 = 5。 因此他在后 20 分钟内得了 5 分。 因此他总共得了 9 分。 答案是 9。
2、ReAct (推理+动作)
💡
《ReAct: Synergizing Reasoning and Acting in Language Models》
英文:https://arxiv.org/pdf/2210.03629
中文:https://yiyibooks.cn/arxiv/2210.03629v3/index.html
React 模型能够根据外部反馈,比如工具的输出结果,调整其思维方式和优化策略。通过一个持续的行动与反馈循环,React 模型不仅能吸收外部信息,还能动态调整其策略,以提高决策和执行的效率。这种机制显著提升了模型的适应性和优化能力。因此,React 模型特别适合于设计智能体选择工具的场景,使得智能体能够根据外部反馈动态调整其决策和工具选择。
想象一下,有两个聪明的小朋友,一个叫 COT,另一个叫 React。他们都很聪明,但是 React 小朋友有一个特别的本领。
COT 小朋友做事情的时候,他不太会根据周围发生的事情改变自己的想法。但是 React 小朋友就不一样,他能听别人的意见,比如他的小伙伴告诉他哪个玩具好玩,他就会根据这些意见改变自己的主意。
React 小朋友还有一个很厉害的地方,就是他做事情的时候,会不断地尝试,然后看看结果怎么样。如果结果好,他就会记住这个方法;如果不好,他就会想新的办法。这样,React 小朋友就能变得越来越聪明,做事情也越来越快。
所以,React 小朋友特别适合做那些需要听别人意见,然后根据这些意见做出选择的事情。就像我们有时候需要选择用哪个工具来做事情一样,React 小朋友就能根据别人的反馈,选择最合适的工具。
还是回到生活小故事的例子,来看看 React 推理输出结果:
使用ReAct方法来分析婷婷的问题,我们可以将这个过程分为推理(Reasoning)和行动(Acting)两个部分,交替进行,以形成一个综合性的解决方案。以下是这个过程的具体步骤:``### 步骤 1:理解问题(Reasoning)``婷婷提出了一个问题,她想知道照片挂在哪里会好看。这里,我们需要理解婷婷的偏好、家里现有的装饰风格,以及照片的主题和风格。``### 步骤 2:收集信息(Acting)``为了给出一个合适的建议,我需要收集一些额外的信息。这可能包括:``- 观察当前家中的装饰风格和布局。``- 了解照片的主题、颜色和尺寸。``- 询问婷婷是否有特别偏好的位置或者风格。``### 步骤 3:推理和规划(Reasoning)``基于收集到的信息,我开始推理和规划:``- 如果照片是色彩鲜艳的,可能适合挂在颜色较为中性的墙面上,以突出照片。``- 如果照片是黑白的或者风格较为简约,可能适合挂在现代简约风格的空间。``- 考虑家中的光线和照片的曝光,选择一个光线适宜的地方。``### 步骤 4:提出行动计划(Acting)``根据上述推理,我提出一个行动计划:``- “婷婷,我们可以先看一下这些照片,然后一起在家里转转,看看哪些墙面或者空间比较适合。我们可以试着想象一下照片挂上去的效果,或者甚至可以用手机拍一下那些地方,然后用照片编辑软件模拟一下挂上去的效果。”``### 步骤 5:处理异常和更新计划(Reasoning + Acting)``婷婷可能会有新的想法或者偏好,比如她可能突然想到某个特定的墙面或者有一个新的装饰想法。这时,我需要根据她的反馈来调整我的行动计划:``- “哦,你提到了客厅的沙发背景墙,那是个不错的选择。我们可以考虑那里,因为那里的光线很好,而且空间足够大。”``### 步骤 6:执行和反馈(Acting)``最后,我们一起执行决定,挂上照片,并根据实际效果进行调整:``- “挂好后,我们再看看效果如何,如果需要调整,我们可以再移动。”``通过这个ReAct的过程,我们不仅考虑了婷婷的问题,还通过实际行动和交互来优化解决方案,使得最终的结果更加符合婷婷的期望,并且整个过程是可解释和可调整的。
假如有一个是基于 ReAct 的智能助手,下面是它的执行过程:
想象一下,你是一个计划去超市购物的人,但是你不确定要买些什么。你可以使用一个集成了ReAct方法的智能助手来帮助你完成这个任务。``步骤 1:定义任务和目标``你告诉智能助手:“我要去超市,需要买一些晚餐食材。”``步骤 2:推理和计划``智能助手开始推理:“根据你过去的购物习惯和当前的季节性食材,你可能需要买蔬菜、肉类和主食。”这是智能助手的“推理轨迹”,它基于内部知识和你的偏好来生成一个初步的购物清单。``步骤 3:行动和交互``智能助手提出行动计划:“我将查看你的位置附近的超市,并检查它们的库存情况。”然后,智能助手与外部的超市API进行交互,获取实时的库存信息。``步骤 4:更新计划``根据从超市API获取的信息,智能助手更新购物清单:“我看到附近的超市有新鲜的西红柿和牛排,这些都是你晚餐可能需要的食材。”``步骤 5:处理异常``你告诉智能助手:“我突然想吃意大利面。”智能助手根据这个新信息处理异常,更新计划:“好的,我会在购物清单中加入意大利面和相应的酱料。”``步骤 6:生成最终行动计划``智能助手生成最终的购物清单,并提供给你:“根据你的需求和超市的库存,这是你今天购物的清单:新鲜西红柿、牛排、意大利面和番茄酱。”``在这个例子中,智能助手通过内部推理和与外部环境(超市API)的交互,生成了一个适应性强、可解释的行动计划。这就是ReAct方法的核心思想:将语言模型的推理能力与行动能力结合起来,以更智能、更有效地完成任务。
3、TOT(思维树)
💡
《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》
英文:https://arxiv.org/pdf/2305.10601
中文:https://yiyibooks.cn/arxiv/2305.10601v2/index.html
使用思维树(TOT)分析婷婷的问题:“老公,你觉得这些照片挂在哪里好看?”我们可以按照以下步骤进行:``1. **问题识别**` `- 婷婷询问关于家庭装饰的具体问题:照片的挂放位置。``2. **需求分析**` `- 婷婷需要我提供关于照片挂放位置的建议。` `- 婷婷希望我参与家庭装饰的决策过程。``3. **背景考虑**` `- 婷婷可能已经考虑过一些挂照片的选项。` `- 婷婷希望我提供我的看法或者更好的建议。``4. **决策制定**` `- 确定挂照片的最佳位置。` `- 考虑家中的装修风格和空间布局。``5. **行动计划**(应用TOT思维树)` `- **评估家中空间:**` `- 客厅:考虑墙面空间、光线和视线。` `- 餐厅:考虑墙面空间、光线和视线。` `- 卧室:考虑墙面空间、光线和视线。` `- 走廊:考虑墙面空间、光线和视线。` `- **考虑照片特性:**` `- 照片大小和风格。` `- 照片与家中装饰的协调性。` `- **确定挂放位置:**` `- 选择一个或多个位置。` `- 考虑照片的排列和布局。``6. **实施行动**` `- **准备工具:**` `- 锤子、钉子或挂钩。` `- 测量工具。` `- **实际操作:**` `- 确定挂放位置的具体坐标。` `- 挂放照片并调整至最佳视角。``7. **情感因素**` `- 表达对婷婷提议的积极回应。` `- 显示愿意参与和支持婷婷的决策。``8. **最终回答**` `- “我们可以一起看看家里哪些地方最适合挂这些照片。比如客厅的沙发背景墙或者走廊的墙面。你觉得怎么样?我们可以一起决定,然后动手挂起来。”``通过这个思维树,我们可以系统地分析婷婷的问题,并提供一个全面的行动计划,同时考虑到情感因素,以确保婷婷感到被尊重和关心。
再用一个生活化的例子来说明《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》(思维树:与大型语言模型一起进行深思熟虑的问题解决)的概念。
### 生活化例子:计划周末家庭出游``**问题识别**:``假设婷婷问:“老公,我们这个周末去哪里玩好呢?”``**需求分析**:``婷婷需要一个周末出游的计划,她希望我能够提供一个或多个出游选项,并参与决策过程。``**背景考虑**:``婷婷可能已经有一些想法,但希望我能够提供更多选择或者对已有想法进行评估。``**决策制定**:``我们需要决定一个适合全家的出游地点,这可能涉及到多个因素,如天气、孩子的兴趣、预算等。``**行动计划**(应用TOT思维树):``1. **思维的分解**:` `- 将问题分解成单独的思维步骤:天气考虑、孩子的兴趣、预算限制、交通方式等。``2. **思考发生器**:` `- 针对每个思维步骤,生成可能的选项:` `- 天气:如果天气预报显示晴朗,可以考虑户外野餐或徒步。` `- 孩子兴趣:如果孩子喜欢动物,可以考虑去动物园。` `- 预算:如果预算有限,可以选择免费或低成本的公园或博物馆。` `- 交通:如果不想开车,可以考虑公共交通可达的目的地。``3. **状态评估**:` `- 对每个选项进行评估,考虑其对解决问题的潜在价值:` `- 户外野餐:天气好,孩子可以自由活动,成本可控。` `- 动物园:孩子兴趣高,但可能需要门票费用。` `- 公园或博物馆:成本低,但可能不够新奇。``4. **搜索算法**:` `- 使用搜索算法(如宽度优先搜索或深度优先搜索)来系统地探索每个选项,并在必要时进行回溯:` `- 首先考虑所有低成本选项,如果不满意,再考虑需要门票的选项。``**最终回答**:``结合以上步骤,我给出了一个既考虑实际行动又包含情感因素的回答:“亲爱的,我看天气预报说周末天气不错,我们可以考虑带孩子去动物园,他们一定会喜欢。如果觉得门票太贵,我们也可以准备一些食物,去公园野餐,让孩子们在户外玩耍。你觉得怎么样?”
4、GOT (思维图)
💡
《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》
英文:https://arxiv.org/pdf/2308.09687
中文:https://yiyibooks.cn/arxiv/2308.09687v4/index.html
将问题建模为一个操作图(Graph of Operations, GoO),其中包含一系列的步骤和决策点。
1. **问题定义** :` `- 婷婷想要在家中挂照片,并希望我提供挂放位置的建议。``2. **操作图构建**:` `- 构建一个操作图,其中包含多个节点(操作),每个节点代表一个特定的任务或决策点。``3. **节点1:照片特性分析**:` `- 分析照片的风格、颜色、内容和尺寸,以确定它们适合挂放的位置。``4. **节点2:家庭环境分析**:` `- 考虑家中的装修风格、墙面空间和光线条件,以确定哪些区域适合挂照片。``5. **节点3:情感因素考量**:` `- 考虑家庭成员的喜好和照片的情感价值,选择能够引起共鸣的挂放位置。``6. **节点4:预算和资源评估**:` `- 评估挂照片所需的工具和材料,如钉子、挂钩或框架,以及是否需要额外的预算。``7. **节点5:挂放方案生成**:` `- 基于以上分析,生成几个可能的挂放方案,并评估每个方案的可行性。``8. **节点6:方案评分与选择**:` `- 对每个方案进行评分,考虑美观性、成本和实际操作的难易程度,选择最佳方案。``9. **节点7:实施计划**:` `- 确定挂照片的具体步骤,包括购买所需材料、确定挂放日期和人员分工。``10. **节点8:反馈与调整**:` `- 在实施过程中收集反馈,根据实际情况调整挂放方案,以确保最终效果满意。
模式对比
想象一下,小朋友班级要去公园玩一天,有四个超级有趣的思考游戏。
GOT(Graph of Thoughts):公园探险地图
想象你手里有一张神奇的公园地图。这张地图上有很多好玩的地方,比如滑梯、秋千、小卖部和喷泉。这些地方之间有很多线连接,表示你可以从一个地方走到另一个地方。你想从公园大门去滑梯,然后去秋千,再去买冰淇淋。这张地图就像是一个“思维图”,你可以在公园里自由探险,有很多不同的路线可以选择,每个点都可以带你去新的地方。
TOT(Tree of Thoughts):寻宝游戏
想象我们在玩一个寻宝游戏。老师给你们一张纸条,上面写着第一个线索,你们要解谜才能找到下一个线索。比如,第一个线索可能是“找到最高的滑梯”,你们找到滑梯后,会找到另一个线索指向下一个地点,比如“数到第三个秋千”。这个过程就像一棵“思维树”,你们按照线索一步步前进,每个线索都像树枝一样分叉,引导你们去新的地方。
COT(Chain of Thought):排队玩游戏
再想象一下,你们班的小朋友在排队玩一个游戏。每个小朋友都要按照顺序来,一个接一个。比如,你们排队等着玩滑梯,第一个小朋友玩了,然后轮到第二个小朋友,就这样一个接一个。这个过程就像一条“思维链”,每个小朋友都按照顺序来,没有其他的选择,只有一个跟着一个。
ReAct(推理+动作):班级角色扮演游戏
想象你们班级在玩一个角色扮演游戏,比如“警察与小偷”。在这个游戏中,每个小朋友都要扮演一个角色,并且要根据自己角色的特点去推理和做动作。比如,你扮演一个警察,你要根据线索(推理)去找到藏起来的“小偷”(动作)。你可能要先思考小偷可能藏在哪里(推理),然后跑去那个地方查看(动作)。这个过程就是“推理+动作”,你不仅要动脑筋想问题,还要实际去做一些事情。
虽然理论上多种模式都有其优势,但在实际应用中,我们通常发现使用 CoT(Chain of Thought)和 ReAct 这两种模式就已经足够应对大多数情况。特别是在对时间敏感的场景下,我们甚至应该尽量避免使用过于复杂的思考模式。因为大型语言模型本身就运行缓慢,如果再让它进行一系列高难度的思考过程,处理速度可能会变得非常慢,而这种速度的牺牲仅仅换来了一点点准确率的提升,从效率的角度来看,这种做法并不值得。
简而言之,尽管复杂的思考模式在理论上有其价值,但在实际应用中,我们需要权衡效率和准确率。在时间紧迫的情况下,选择更简单、更快捷的模式往往更为明智,以免因追求极致的准确率而牺牲了宝贵的时间,最终得不偿失。
组合使用
其实模式之间并不是互斥的,我们可以组合使用。CoT 主要侧重于增强模型的内部推理过程,通过分步思考提高答案的准确性。ReAct 则扩展了模型的能力,使其能够在必要时执行外部行动,获取更多信息或进行动态验证。可以优势互补下:
- ReAct+Cot:当 ReAct 不能在预设的步骤内得出答案时,转而采用 CoT 的方法来保证推理的准确性。
- Cot+ReAct:先 COT 推理,如果发现答案不明确,就转向实际推理(ReAct)来进一步探索。
实验证明组合模式确实更准确一些。
最佳实践
当然了不仅限于这 4 个模式,还有源源不断的 prompt 思维模式出来,可以持续关注最新的论文。
具体怎么去写,可以参考下 OpenAI 的 prompt 最佳实践
💡
https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api
How prompt engineering works Rules of Thumb and Examples``1. Use the latest model``2. Put instructions at the beginning of the prompt and use ### or """ to separate the instruction and context``3. Be specific, descriptive and as detailed as possible about the desired context, outcome, length, format, style, etc``4. Articulate the desired output format through examples``5. Start with zero-shot, then few-shot, neither of them worked, then fine-tune``6. Reduce “fluffy” and imprecise descriptions``7. Instead of just saying what not to do, say what to do instead``8. Code Generation Specific - Use “leading words” to nudge the model toward a particular pattern``9. Use the Generate Anything feature
- 将指令放在提示的开头,并使用###或"""分隔指令和上下文:这样做可以更清晰地区分指令和输入文本。所以一般
- 尽可能具体、描述性强,并详细说明所需的上下文、结果、长度、格式、风格等:具体性有助于模型更准确地理解并执行指令。
- 通过示例明确期望的输出格式:通过展示具体格式要求,模型能更好地响应,并且使得程序化地解析多个输出变得更加容易。
- 从零样本(zero-shot)开始,然后是少样本(few-shot),如果两者都不行,再进行微调(fine-tune):这是一种逐步优化模型性能的方法。
- 减少“模糊”和不精确的描述:精确的描述有助于模型生成更准确的输出。
- 不要只说不要做什么,而要说应该做什么:提供替代方案可以引导模型朝着正确的方向进行。
- 代码生成特定 - 使用“引导词”引导模型朝向特定模式:例如,在代码提示中使用“import”可以提示模型开始编写 Python 代码。
- 使用“生成任何内容”(Generate Anything)功能:开发者可以使用这个功能来描述任务或预期的自然语言输出,并接收到定制的提示。
总结
当我们与大型人工智能模型对话时,可以把它们想象成小朋友。就像与小朋友交流一样,我们需要用简单明了的语言来表达我们的需求,并给予适当的指导。尽管这些模型可能非常智能,但它们可能无法像人类那样自然理解复杂的指令或隐含的意义。
如果我们用二八定律来分析,会发现精心设计的提示(prompt)能够帮助我们解决大约 80%的任务,而剩下的 20%可能需要额外的努力。这意味着,通过优化我们的提示,我们可以更高效地利用大模型的能力,提高工作效率,并充分发挥其潜力。
精心设计的提示之所以有效,是因为它们帮助大模型更准确地理解任务要求。当我们提供清晰的指示和示例时,大模型能够模仿这些示例的风格和结构,生成更符合我们期望的输出。这样的提示减少了歧义,提高了输出的准确性和相关性。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
更多推荐
所有评论(0)