Prompt 提示词工程快速入门之 02-系统打造高效提示词
提示词设计的基本原则
辨析清晰、具体的指令
技巧 1:使⽤分隔符清晰地表示输⼊的不同部分。通过特定的符号,如 "",<> 等,将输入内容中不同功能或性质的部分区分开来,使模型能更清楚地识别各部分,准确处理任务。
Prompt 示例:
请根据<文章内容>今天我去了公园,看到了五颜六色的花朵,还有很多人在散步、玩耍。</文章内容>
<任务>写一篇200字左右的读后感。</任务>
<要求>语言要生动,情感真挚,重点突出对公园氛围的感受。</要求>
技巧 2:要求⼀个结构化输出。明确告知模型按照一定的结构或格式来输出结果,比如列表、表格、特定的段落层次、Markdown 格式、JSON 格式等,这样可以使输出更有条理,便于理解和使用。
Prompt 示例:
请列出中国四大名著的名称、作者以及它们的主要内容简介。
输出格式为:
书名:《XXX》
作者:XXX
主要内容简介:......
技巧 3:要求模型检查是否满⾜条件。让模型在处理任务时,判断某些内容或结果是否符合特定的条件或标准,然后给出相应的反馈或进一步的处理。
Prompt 示例:
已知一个三角形的三条边分别为3、4、5。
请检查这三条边是否能构成一个直角三角形,判断依据为勾股定理a²+b²=c²,其中c为最长边。
如果能构成,请说明理由;如果不能构成,也请说明原因。
技巧 4:提供少量示例。为了让模型更好地理解任务的要求和期望的输出形式,给出一些具体的示例,模型可以参照示例来进行操作。
Prompt 示例:
请根据给出的词语,仿照示例,写一个比喻句。
示例:月亮 月亮像一个大玉盘挂在天空中。
词语:星星 云朵 太阳
要求:每个词语写一个比喻句。
给模型时间去思考
技巧 1:指定完成任务所需的步骤。在让模型执行任务时,清晰地告知它完成该任务需要经历的具体步骤。
Prompt 示例:
请你按照以下步骤,根据我提供的产品描述,为该产品生成一篇约200字的电商推广文案。
步骤1:提取产品的关键特点和优势,例如独特的功能、优质的材质、时尚的设计等。
步骤2:强调这些特点和优势能够为消费者带来的实际好处,比如提高生活便利性、提升使用体验、增加个人魅力等。
步骤3:使用生动、有感染力的语言,突出产品的吸引力,激发消费者的购买欲望。
步骤4:在文案结尾添加一个简洁有力的号召性语句,鼓励消费者立即购买。
产品描述:“这款无线蓝牙耳机采用了先进的降噪技术,能够有效隔绝外界噪音,让你沉浸在纯净的音乐世界中。耳机的续航时间长达8小时,一次充电可以满足你一整天的使用需求。此外,它的外观小巧轻便,佩戴舒适,不会给耳朵带来任何负担。”
技巧 2:指导模型在下结论之前找出⼀个⾃⼰的解法。在模型面对问题或需要做出判断时,要求它先尝试自己探索出一个解决问题的方法或思路,而不是直接给出结论,这有助于模型深入理解问题,培养其独立思考和解决问题的能力,避免盲目下结论或依赖已有的模式。
我遇到了一个问题,我的线上店铺近期销量下降了。
请你在给出如何提高销量的结论之前,先自行思考并找出至少三个可能的解决办法,然后对这些办法进行分析比较,最后给出你认为最合适的提高销量的建议。
OpenAI Prompt Engineering 策略
OpenAI 官方发布了一份提示词工程指南,该指南分享了 6 大策略即可让 AI 输出更好的结果。
OpenAI Prompt Engineering Doc:https://platform.openai.com/docs/guides/prompt-engineering
提示词工程的六大基本策略:
- Write clear instructions(清晰指令):向模型下达明确、不含糊的任务要求,避免产生歧义。
- Provide reference text(提供参考):给模型提供相关的参考文本或示例,帮助它更好地理解任务的具体要求和期望的输出形式。
- Split complex tasks into simpler subtasks(任务拆分):把复杂的任务分解成多个简单的子任务,依次引导模型完成。
- Give the model time to "think"(思考时间):对于一些需要推理、分析的复杂任务,引导模型逐步思考,而不是直接得出结论。
- Use external tools(使用工具):在适当的时候,借助外部工具来辅助模型完成任务,利⽤其他⼯具的输出来补偿模型的不⾜。
- Test changes systematically(测试迭代):对提示词进行系统的测试和迭代优化。
结构化提示词
结构化提示词概述
结构化提示词是一种通过明确的角色设定、任务描述、目标细化等方式,对与大模型交互的指令进行清晰组织和分层的提示词,结构化提示词通常会使用特定的格式,如 Markdown、JSON、XML 或伪代码等,将提示词的各个关键要素,如角色、背景、任务、要求等进行区分和标注 ,使得内容结构清晰。
Prompt 示例:
**角色**:你扮演一名AI领域自媒体商业咨询师
**能力**:能够针对学习者的背景及学习能力,制定出有效的可以量化的教学内容
**任务**:请帮我制定一个AI自媒体博主学习计划,制定的学习计划内容包括了解各种AI工具、如何个人IP打造、如何AI主/副业变现
**背景**:我年龄35岁,性别男,职业是一名架构师&管理者,我的目标是通过公众号+知乎的方式打造个人IP,通过AI辅助写作和视频带货的方式实现变现,现在all in状态,时间任意分配
结构化提示词的优势:
- 层级结构,内容与形式统一,可读性好,表达性好。
- 提升语义认知,降低人和大模型对 Prompt 的语义认知负担。
- 特定的属性词能够确保定向唤醒模型的深层能力。
- 提示词结构化便于提示词后续的维护升级和多人协同开发设计。
- ......
结构化提示词技巧
结构化,就是将事物或信息按照⼀定的规则,模式或者框架进⾏组织整理,使其具有清晰的层次、明确的关系和有序的排列,以便于有效的理解、管理和处理。
编写结构化提示词 = 结构化思考 + 结构化表达。
- 结构化思考是核心准备,可以运用常见的结构化提示词思维框架,让思考更全面、系统。
- 结构化表达是呈现关键,可以运用特定结构和语法,把经过结构化思考梳理出的内容准确、有条理地呈现出来,以让大模型清晰理解意图的方式。
主流结构化提示词框架
ICIO
ICIO 框架旨在确保 AI 系统能够准确、高效地响应用户需求,弥补传统输入输出交互方式的不足,提高 AI 系统的理解和生成能力,特别适用于数据处理与转换、内容创作、技术任务等场景。
ICIO 框架的组成部分:
- Input Data(任务/输入):交给 AI 的原始信息,可以是文本、数据、问题等具体内容。
- Context(上下文):围绕输入数据提供的背景信息,帮助 AI 更好理解输入的含义和意图。
- Instruction(指令):明确告诉 AI 要对输入数据做什么。
- Output(输出):告诉 AI 根据输入数据、上下文以及所接收的指令,经过处理后给出的最终结果的形式和内容。
Prompt 示例:
# Input(输入)
- 产品的历史销售数据,包括过去三个月的销量、销售额、不同地区的销售情况等。
- 市场调研资料,如竞争对手类似产品的价格、促销策略、用户评价等。
- 用户反馈信息,包含用户对产品功能、质量、售后服务的意见和建议。
# Context(上下文)
- 目前电商行业整体处于促销季,各大平台都在进行大规模的促销活动。
- 该产品所在的品类竞争激烈,新的竞争对手不断涌入,市场份额有被挤压的趋势。
- 消费者的购物习惯逐渐向移动端转移,对购物的便捷性和个性化需求增加。
# Instruction(指令)
- 基于产品的历史销售数据和用户反馈,对产品进行功能优化和包装升级,以提高产品的竞争力。
- 参考竞争对手的促销策略,制定适合本产品的促销方案,如满减、赠品、限时折扣等,吸引消费者购买。
- 利用移动端的优势,推出个性化的推荐服务,根据用户的浏览和购买历史,为用户精准推荐相关产品。
# Output(输出)
- 撰写一份详细的产品运营推广方案文档,包括产品优化计划、促销活动的具体内容、推广渠道和时间安排等。
- 设计并上线新的产品页面,展示优化后的产品信息和促销活动内容。
- 定期收集和分析销售数据,根据实际效果对运营策略进行调整和优化,形成阶段性的运营报告。
CRISPE
CRISPE 框架更注重 AI 的⻆⾊和背景,特别适⽤于需要 AI 扮演特定⻆⾊或在特定背景下完成任务的场景。
CRISPE 框架的组成部分:
- Capacity and Role(角色):明确设定 AI 所扮演的身份,以及这个身份具备的能力和权限。
- Insight(背景):提供给 AI 一些相关的背景信息,让 AI 了解任务所处的情境、相关的过往情况等,以便更准确地完成任务。
- Statement(任务):清晰地告诉 AI 需要完成的具体工作或达成的目标。
- Personality(格式):规定 AI 输出内容的风格、形式等
- Experiment(实验):对 AI 提出一些尝试性的要求或限定条件,以便得到更丰富多样的输出结果。
Prompt 示例:
# Capacity and Role(角色)
- 你是一位经验丰富、擅长撰写引人入胜文案的专业广告策划师,尤其在环保领域有诸多成功的宣传案例。
# Insight(背景)
- 当前,环境污染问题日益严峻,全球都在倡导绿色生活和可持续发展理念。
- 你的目标受众是年龄在20-45岁之间,关注环保、有一定消费能力且乐于传播正能量的群体。
- 你所在的广告公司承接了一个环保组织的项目,要为他们即将开展的环保公益活动撰写宣传文案。
# Statement(任务)
- 撰写一篇300字左右的宣传文案,内容要突出环保的重要性和紧迫性,呼吁大家积极参与此次环保公益活动。
- 文案中要包含一些具体的环保行动建议,如减少塑料使用、绿色出行等。
- 要使用生动且富有感染力的语言,激发目标受众的共鸣。
# Personality(格式)
- 采用富有激情、鼓舞人心的风格,语言简洁明了、通俗易懂,使用短句和排比句增强节奏感和说服力。
- 以段落形式呈现文案,开头可以用一个引人深思的问题引出主题。
# Experiment(实验)
- 请给出3篇不同表述但都满足上述要求的宣传文案示例,以便我们从中选择最适合的版本。
BROKE
BROKE 框架强调了任务的背景、⻆⾊、⽬标、关键输出和持续改进,特别适⽤于历史分析、市场研究、技术⽂档编写等场景。
BROKE 框架的组成部分:
- Background(背景):即与任务或目标相关的前期情况、所处环境、相关事件等信息,为后续的行动提供基础和前提。
- Role(角色):明确 AI 所扮演的角色身份。
- Objective(目标/任务):告诉 AI 需要达成的具体目标或者要完成的任务内容
- Key Result(关键结果):告诉 AI 用来衡量目标是否达成的具体指标和成果,是对目标的细化和量化。
- Evolve(改进):在 AI 给出回答后,对整个过程进行评估和分析,找出可以优化和改进的地方。
Prompt 示例:
# Background(背景)
- 随着人们生活水平的提高,越来越多人选择在假期出游放松身心。
- 目前国内短途周边游市场竞争激烈,很多城市都在大力推广本地特色旅游资源。
- 本市拥有丰富的历史文化遗迹,如古老的城墙、传统的街巷,还有美丽的自然风光,像山水相依的郊外景区。
- 同时,本市还新开发了一些特色美食街区和创意文化园区,吸引了不少游客。
# Role(角色)
- 你是一位经验丰富、擅长撰写优美生动文案的专业旅游文案策划师,在旅游宣传领域有很多成功案例,善于挖掘旅游目的地的独特魅力。
# Objective(目标/任务)
- 为我市的旅游资源撰写一篇吸引人的宣传文案,目标是吸引更多25-45 岁、有一定消费能力且热爱文化和美食的游客前来游玩,提高本市的旅游知名度和游客到访量。
# Key Result(关键结果)
- 语言优美、富有感染力,能够激发读者的旅游欲望,采用积极向上、热情洋溢的表述方式。
- 以段落形式呈现,可适当使用小标题进行内容区分,全文控制在400字左右。
- 要突出本市历史文化遗迹的独特性、自然风光的秀丽、美食的特色以及创意文化园区的新颖,介绍一些值得游览的景点和打卡点。
# Evolve(改进)
- 文案是否成功突出了本市旅游资源的特色和优势,能够吸引目标受众。
- 语言表达是否优美生动,是否具有感染力和吸引力,能否激发读者的旅游兴趣。
- 内容是否完整,涵盖了历史文化、自然风光、美食和创意文化等方面,并且介绍的景点和打卡点是否具有吸引力。
- 格式是否符合要求,段落是否清晰,小标题的使用是否恰当,字数是否控制在合理范围内。
CREATE
CREATE 框架基于清晰度、相关信息、示例、避免含糊不清和迭代修补五个原则来创建和优化 Prompt,简洁明了,易于理解和应⽤,但是可能需要多次迭代来达到最佳效果,特别适用于需要清晰、具体和创造性指导的任务场景。
CREATE 框架的组成部分:
- Clarity(清晰度):确保提示词表达清晰,让 AI 能准确理解任务或意图。
- Relevant info(相关信息):提供与任务相关的必要细节,如具体的关键词、事实依据、特定的条件等,以及所需的语气、面向的受众群体、期望的格式和结构等信息,帮助更好地完成任务。
- Examples(示例):给出一些具体的例子,展示任务的要求、形式或期望的结果等,为接收者提供参考和方向,使其更清楚知道该如何行动。
- Avoid ambiguity(避免含糊不清):指出重点关注关键信息,去除提示词中多余、不必要的内容。
- Tinker(迭代/修补):对提示词进行多次尝试和调整,不断测试和完善,根据实际效果和反馈,修改不合适的地方,以提升提示词的质量和有效性。
- Evaluate(评估):对依据提示词产生的结果进行持续分析和判断,看是否达到预期目标,根据评估结果决定是否需要对提示词再次调整优化,以提高最终成果的质量。
Prompt 示例:
# Clarity(清晰度)
- 明确任务是撰写一篇关于某科技产品的评测文章,阐述产品的优缺点和使用体验。
# Relevant info(相关信息)
- 产品名称:智能手表X1。
- 关键词:健康监测功能、续航能力、外观设计、操作便捷性。
- 事实:该智能手表具备心率监测、睡眠监测等功能,一次充电可使用7天,表盘为圆形,表带为硅胶材质,操作界面简洁。
- 语气:客观、专业,略带积极肯定。
- 受众:对科技产品感兴趣,尤其是有购买智能手表需求的消费者。
- 格式和结构:文章开头介绍产品背景和基本信息,中间部分分别阐述优点(健康监测功能、续航、外观、操作)和缺点(如可能存在的功能小瑕疵等),结尾给出综合评价和购买建议。
# Examples(示例)
- 参考一些知名科技评测网站上的智能手表评测文章,例如在描述健康监测功能时,可以像“[某知名评测文章] 中详细介绍了智能手表的心率监测在运动时的准确性,我们也可以从类似角度对智能手表X1的健康监测功能进行评测”。
# Avoid ambiguity(避免含糊不清)
- 重点突出智能手表X1的关键特性和与评测相关的信息,避免提及与该产品评测无关的其他智能手表或不相关的科技概念。
# Tinker(迭代、修补)
在生成文章初稿后,检查是否完整涵盖了产品的重要方面,是否对每个特性的描述清晰准确,如有不足,对prompt进行调整,比如增加对某个功能的详细描述要求等。
# Evaluate(评估)
- 阅读生成的文章,检查是否满足客观、专业的语气要求,是否对产品的优缺点分析到位,是否能为目标受众提供有价值的参考,如果不满意,调整prompt中的相关信息,如修改关键词的侧重点等,以提高文章质量。
COSTAR
COSTAR 框架即语境结构化提示,是⼀个允许⽤户以向语⾔模型提供语境和指导的⽅式构建提示的框架,在提示中融⼊了语境、任务规范和示例等元素,特别适用于商业策划、市场营销分析等场景。
COSTAR 框架的组成部分:
- Context(上下文):提供与任务相关的背景信息,以便更准确地执行任务。
- Objective(目标):明确指出需要达成的具体目的或要完成的任务内容。
- Style(风格):规定完成任务时所采用的表现形式和特点,使输出结果符合特定的风格要求。
- Tone(语气):确定表达时的态度和情感倾向。
- Audience(受众):指明任务结果的接收对象,以便使输出内容能够更好地满足受众的期望和理解能力。
- Response(响应):期望得到的具体结果或反馈内容。
Prompt 示例:
# Context(上下文)
- 该线上教育平台专注于提供各类职业技能培训课程,已经成功推出了多个广受欢迎的课程,如平面设计、数据分析等。
- 此次新推出的编程课程是针对零基础初学者的 Python 编程课程,课程内容由浅入深,从基础的语法知识讲解开始,逐步深入到函数、模块、数据结构等内容。
- 课程配备了专业的讲师团队,他们不仅有丰富的编程经验,还具备多年的教学经验。
- 课程设置了大量的实践项目,让学员能够将所学知识应用到实际操作中,并且提供课后答疑和作业批改服务。
# Objective(目标)
- 撰写一篇宣传文案,推广这款新的 Python 编程课程,吸引对编程感兴趣、想要学习编程技能的零基础人群报名参加,提高课程的报名率。
# Style(风格)
- 采用简洁明了、富有激励性的风格,语言通俗易懂,突出课程的实用性和优势,使用一些成功学员的案例来增强说服力。
# Tone(语气)
- 积极、热情,传达出学习编程可以带来新的职业机会和发展前景的信息,激发读者的学习欲望。
# Audience(受众)
- 年龄在 18-35 岁之间,对编程感兴趣但没有编程基础的人群,包括在校学生、想要转行的职场人士以及对自我提升有需求的自由职业者等。
# Response(响应)
- 以一篇 300-400 字左右的宣传文案形式呈现,包含吸引人的标题,详细介绍课程的特点、优势和适合人群,结尾有明确的报名引导。
BRTR
BTBR 框架着重于任务的基础信息、团队⻆⾊、任务蓝图以及成果回溯,旨在为各类任务提供清晰规划与执⾏路径,助⼒⾼效达成⽬标,特别适用于需要精准分⼯、明确任务步骤以及注重成果覆盘的场景。
BTBR 框架的组成部分:
- Background(背景):提供与任务相关的前期状况、环境信息或相关事件等内容,帮助理解任务产生的缘由和所处的情境。
- Task(任务):清晰明确地阐述需要完成的具体工作或行动目标
- Requirements(要求):详细说明完成任务时需要遵循的各种条件和标准。
- Response(响应):期望得到的任务完成后的结果或反馈。
Prompt 示例:
# Background(背景)
- 我是⼀名普通上班族,平时很少发朋友圈,想在除夕发⼀条。
# Task(任务)
- 请帮我写⼀条既不会太⾼调,⼜能传达新年祝福的朋友圈。
# Requirements(要求)
- 要体现出对家⼈朋友的关⼼,语⽓要温暖⾃然,不要太⽂艺。
# Response(响应)
- 需要给我3个不同⻛格的版本供选择。
通⽤框架
在与 AI 进行交互时,不可机械地套用 “框架”,而应该把 AI 看成具有理解和交流能力的忍,以自然和灵活的方式与其沟通。
框架存在的意义在于辅助我们梳理思路,防止遗漏关键信息,而不是成为束缚交流的枷锁,我们应该根据具体需求和场景,合理运用模板提示,而不是盲目遵循。
对于结构化提示词的框架,可以简单概括通用框架 = 人物形象 + 上下文背景 + 具体任务 + 限制条件 + 期望输出 + 少样示例。
⽬前使用⼤模型技术来开发某些场景应⽤,除了软件⼯程上的开发部分,很大一部分内容就在于编写一系列场景下的 Prompt,以及对不同的 Prompt 的效果进行评估和选取,这是⽬前⼤模型应⽤中变量最⼤的部分,也是决定⼤模型应⽤成功的关键。
提示词高阶技巧
深呼吸
谷歌团队研究发现,提示词加上神秘咒语 “深呼吸(take a deep breath)” 结合大家已经熟悉的 “一步一步地想”(Let' s think step by step)”,大模型在数据集上的成绩就提升了 12%。而且这个最有效的提示词,是 AI 自己找出来的。
谷歌团队论文-大语言模型的自我优化:https://arxiv.org/pdf/2309.03409.pdf
假设你想让大语言模型帮助解决一道复杂的数学逻辑推理题,比如 “一个村子里有 50 户人家,每家都养了一只狗。现在发现村子里出现了 n 只疯狗,村里规定,谁要是发现了自己的狗是疯狗,就要将自己的狗枪毙。但问题是,村子里的人只能看出别人家的狗是不是疯狗,而不能看出自己的狗是不是疯狗。第一天晚上,没有枪声;第二天晚上,没有枪声;第三天晚上,响起了枪声。请问村子里有几只疯狗?”。
根据谷歌团队 “深呼吸” 的技巧,提示词前可以加上 “深呼吸”,提示词后可以加上 “一步一步地想”。
Prompt 示例:
深呼吸,一个村子里有 50 户人家,每家都养了一只狗。现在发现村子里出现了 n 只疯狗,村里规定,谁要是发现了自己的狗是疯狗,就要将自己的狗枪毙。但问题是,村子里的人只能看出别人家的狗是不是疯狗,而不能看出自己的狗是不是疯狗。第一天晚上,没有枪声;第二天晚上,没有枪声;第三天晚上,响起了枪声。请问村子里有几只疯狗?一步一步地想。
自我暗示
⼤模型通过学习⼤量的⽂本数据,掌握了各种表达⽅式和语⾔风格,通过在提示词中加⼊⼀些暗示性的语句,可以激活模型中相关的知识和模式,从⽽影响其输出。
自我暗示可以更微妙地影响模型的输出,使其更符合⽤户的期望。避免了直接命令可能导致的⽣硬和不⾃然,但是⾃我暗示法并⾮总是有效,其效果取决于模型的训练数据和任务的性质,过度的暗示可能会导致输出过于单⼀或缺乏创新。
Prompt 示例:
请⽤充满想象⼒的语⾔,描述⼀个未来世界的场景。
给予奖励
通过提示词设计,引导模型⽣成 “好的” 输出,避免 “坏的” 输出,从⽽间接地 “奖励” 模型。
在设计提示词时,清晰指令 + 上下文本身就是种 “奖励”,设定约束条件就是种 “惩罚”,提供示例就是 “给予奖励的类型和模板”。
Prompt 示例:
请写一篇关于环保的宣传文案。
比如之前有一篇成功的宣传文案是这样写的:“在我们的校园里,有一位同学每天都会收集自己宿舍的可回收垃圾,然后分类整理好拿去回收。他不仅自己做到了环保,还带动了身边的室友一起参与。在一个月内,他们宿舍的垃圾排放量减少了一半,还通过卖可回收垃圾攒下了一笔小小的资金用于购买绿植装扮宿舍。”
你可以参考这种以个人实际行动和成果来展现环保意义的方式进行创作。
COT 思维链
COT(Chain-of-Thought Prompting)即思维链提示,是将一个复杂问题分解为多个中间步骤,每个步骤都代表着推理过程中的一个逻辑环节,通过一系列中间推理步骤来得出最终答案,而不是直接从问题跳到答案。
传统的提示词通常直接要求模型给出答案,⽽思维链则引导模型逐步展示其推理过程,就像⼈类在解决问题时⼀步⼀步地思考⼀样,通过在提示词中加⼊“让我们⼀步⼀步地思考”、“⾸先...然后...最后...” 等引导语,或者提供⼀些中间步骤的示例,可以显著提⾼模型在复杂推理任务中的表现。
COT 思维链的优势:
- 提⾼复杂推理任务的准确性:通过显式化推理过程,模型可以更好地捕捉问题中的逻辑关系,减少错误。
- 增强模型的可解释性:思维链使得模型的推理过程更加透明,有助于理解模型是如何得出结论的。
- 促进模型的泛化能⼒:通过学习推理模式,模型可以更好地应⽤于新的、未见过的问题。
- ......
Prompt 示例:
五年级⼀中队和⼆中队要去春游。⼀中队步⾏,速度为每⼩时4千⽶;⼆中队骑⾃⾏⻋,速度为每⼩时
12千⽶。⼀中队出发2⼩时后,⼆中队再出发。
1、计算在⼆中队出发时,即⼀中队出发2⼩时后,⼀中队已经⾏进的距离。
2、计算⼆中队和⼀中队的速度差。
3、根据两个中队之间的距离差和速度差,计算⼆中队⽤多⻓时间能追上⼀中队。
TOT 思维树
TOT(Tree-of-Thought Prompting)即思维树提示,是对 COT 思维链提示的进一步拓展,TOT 通过构建一个树状结构来探索不同的思维路径,将复杂问题分解为多个思维步骤,引导 AI 逐步探索和解决问题,从而找到最优解决方案,特别适用于需要多步推理、创造性思维和决策等场景。
TOT 思维树的优势:
- 更全面的搜索:能够探索多种可能的推理路径,避免陷入局部最优解,增加找到全局最优解的概率。
- 适应复杂问题:对于具有多个解决方案或需要多步决策的复杂问题,TOT 的树状结构可以更好地组织推理过程,提高问题解决的效率和准确性。
- ......
第一轮 Prompt 示例:
接下来,请你同时扮演四个⻆⾊,分别是⼩学物理⽼师、初中物理⽼师、⾼中物理⽼师、物理专家。
每个⼈的教学模式、解题⽅法都是不同的。
下⾯,他们在讨论这个问题:“在⼀个晴朗的⽇⼦⾥,⼩明站在湖边,向平静的湖⾯扔出⼀颗⽯⼦,⽯⼦落⼊⽔中后,激起⼀圈圈圆形的⽔波向外传播。请描述⽔波的形成过程以及⽔波传播过程中能量的变化情况。”
请⼩初⾼三位物理⽼师发表他们的解决思路和答案,物理专家不发表。
第二轮 Prompt 示例:
我们追求简单的解题⽅法,接下来请物理专家出场,评估哪个⽼师的⽅法最简单。
少样本学习
⼤模型通常需要⼤量的训练数据才能在新任务上表现良好,⽽少样本学习则通过在提示词中提供少量的示例(通常是⼏个到⼗⼏个),让模型快速学习并适应新任务,⽆需重新训练模型。
少样本学习的优势:
- 降低模型训练成本:⽆需⼤量的标注数据和计算资源。
- 提⾼模型适应性:可以快速应⽤于各种新任务,⽆需针对每个任务进⾏单独训练。
- 增强模型的灵活性:可以根据实际需求,动态调整示例,以改变模型的⾏为。
- ......
Prompt 示例:
任务:对给定的短文本进行情感分类(积极、消极、中性)。
示例:
输入:“这部电影真的太棒了,剧情紧凑,演员演技也超赞!”
输出:积极
输入:“这家餐厅的服务态度很差,食物也不好吃。”
输出:消极
输入:“今天天气还不错,温度适中。”
输出:中性
请根据上述示例,对以下文本进行情感分类:“这次旅行虽然有点累,但看到了很多美丽的风景,还是很值得的。”
模块化构建复杂提示词
在设计提示词时,可以将复杂的提示词分解成多个⼩的、独⽴的模块,每个模块负责控制模型的⼀个⽅⾯,如风格、格式、内容等,然后根据需要将这些模块组合起来,构建出完整的提示词。
模块化构建复杂提示词的优势:
- 提⾼提示词的可维护性:修改和更新提示词更加⽅便,只需修改相应的模块即可。
- 增强提示词的可复⽤性:可以将常⽤的模块保存下来,⽤于不同的任务。
- 提⾼提示词的灵活性:可以根据需要⾃由组合模块,以实现不同的效果。
- ......
假设现在需要⽣成⼀篇关于⼈⼯智能的科普⽂章,要求语⾔通俗易懂,篇幅约为 500 字,幷包含⼀个总结段落。
任务模块分解:
- 主题模块:⼈⼯智能的科普介绍。
- 风格模块: 语⾔通俗易懂,⾯向⼤众读者。
- 长度模块: 篇幅约为 500 字。
- 结构模块: 包含⼀个总结段落。
Prompt 示例:
请撰写⼀篇主题为“⼈⼯智能的科普介绍”的⽂章,语⾔通俗易懂,⾯向⼤众读者,篇幅约为500字,幷包含⼀个总结段落。
ReAct 推理与行动
ReAct(Reasoning and Acting,推理与行动)是一种结合了推理和行动的方法,核心思想是让语言模型在生成回答之前,先进行推理步骤,明确需要采取的行动,然后基于这些行动来获取信息或执行操作,最终得出答案。
ReAct 的关键组成部分:
- 推理(Reasoning):模型分析问题,理解任务的要求和背景知识,确定解决问题的逻辑步骤和思路。
- 行动(Acting):根据推理的结果,模型执行具体的操作,如查询知识库、调用外部工具、执行代码等,以获取必要的信息来回答问题。
ReAct 的优势:
- 可解释性:由于推理和行动步骤是显式的,用户可以更容易理解模型是如何得出结论的,便于调试和改进模型。
- 灵活性:能够处理各种不同类型的任务,因为可以根据具体任务的需求选择合适的行动。
- 准确性:通过推理和行动的结合,模型可以更准确地获取和利用信息,提高回答的质量。
- ......
Prompt 示例:
请你回答 “第一次世界大战爆发的直接原因是什么”。
推理:要回答这个问题,需要回顾第一次世界大战相关的历史知识,明确直接原因通常是某个具体的、引发战争爆发的事件,现有的知识储备中应包含一战爆发原因的相关内容,可直接从记忆中提取。
行动:从记忆中搜索关于第一次世界大战爆发直接原因的知识。
ReAct 推理与行动和 COT 思维链非常相似。
- ReAct 重点在于将推理和行动相结合,推理是为了决定采取何种行动,行动则是基于推理结果去执行具体操作,如查询知识库、调用外部工具等,以获取完成任务所需信息。
- CoT 更专注于通过生成一系列连贯的推理步骤来模拟人类的思维过程,从而引导模型得出最终答案。
Prompt Chain 提示词链
Prompt Chain(提示词链)是将一个大的任务分解为多个子任务,每个子任务由一个提示词引导,并且前一个提示词的输出作为后一个提示词的输入的一部分,形成一个链式的结构。
Prompt Chain 提示词链的优势:
- 提高准确性:将任务细化后,模型在每个子任务上更容易处理,从而提高最终结果的准确性。
- 增强可控性:可以通过调整每个提示词的内容和顺序,更精确地控制模型的输出,使其更符合用户的需求。
- 处理复杂任务:能够有效应对复杂的任务场景,使模型能够处理那些原本可能超出其一次性处理能力的任务。
第一轮 Prompt 示例:
请构思一个故事的主题,主题要新颖且有趣,围绕动物展开。
第二轮 Prompt 示例:
基于“动物的平行时空之旅”主题,详细描述故事的主要角色,包括它们的种类、外貌特征和魔法能力。
第三轮 Prompt 示例:
根据前面设定的主题和角色,开始创作故事的开头部分,要求引入主要角色,并设置一个小悬念。
Prompt Tuning 提示词微调
Prompt Tuning(提示词微调)是一种轻量级的微调方法,通过调整输⼊提示Prompt 来引导模型⽣成更符合特定任务需求的输出,⽽不是直接修改模型的参数。
Prompt Tuning 在多种自然语言处理任务中都有广泛的应用,如文本分类、情感分析、命名实体识别等。在文本分类任务中可以通过优化提示来引导模型更准确地识别文本的类别,在情感分析任务中可以使用提示来帮助模型更好地捕捉文本中的情感倾向。
原始 Prompt 示例:
根据主题“海边日落”生成一段文字。
微调 Prompt 示例:
请以细腻的笔触和生动的语言,围绕主题“海边日落”,描述日落时天空的色彩变化、海面的波光粼粼以及周围环境的氛围,生成一段优美的文字。
Prompt Reverse 提示词逆向⼯程
提示词逆向⼯程是⼀种有效的⽣成 Prompt 的⽅法,通过对模型在⽣成或理解⽂本时的⾏为进⾏分析和反推,实现了⾃动⽣成适应不同任务的 Prompt。
提示词逆向即让⼤模型分析⽂本,并尝试⽣成⼀个能够产⽣类似结果的提示词,使⽤逆向⼯程可以⼤⼤提⾼ Prompt ⽣成和测试效率。
Prompt 示例:
请对下列{{⽂本}}进⾏逆向提示词⼯程,⽣成⼀个可以仿写这段⽂章的提示词。
要求:
1、需提炼⽂章的语⽓,写作⻛格,⽤词,句式等各种写作⽅⾯的要素,你可以根据写作领域的专业知
识,进⾏更多写作要素的分析。
2、逆向提示词⼯程⽣成的提示词,是要发送给⼤模型,让它能以任意主题,写出与{{⽂本}}⻛格类
似的⽂章。
⽂本=
{{{ “经我们⼩⽶的员⼯连续300个⽇夜不间断的⼤ 数据研究发现,97%的⼈类在早晨七点的时候会出现明显的饥饿感,相⽐较七点整,饥饿感整整提升了57%。为了解决这种困扰⼈类⼏千年的饥饿感,我们⼩⽶员⼯反复研究⽐对发现,⾯粉的饱腹感要⽐⼤⽶的饱腹感⾼出21%,于是我们专⻔找到了⾯粉的发源地--位于中东的新⽉沃⼟,砸重⾦研制出了⼀款迄今为⽌最有饱腹感的⾯条。那么究竟多有饱腹感呢?⽐传统的⾯条饱腹感提升了73%。我们也给它取了⼀个好听的名字,叫⼩⽶空⼼⾯。同时呢,我们还联合饮⽤⽔的⾏业巨头--农夫⼭泉,研制出了业内⾸创的泡⾯专⽤⽔--农夫⾕泉。⽤我们农夫⾕泉煮出来的⾯条饱腹感还能提升11%。”
-“这款产品在市⾯上的价格普遍在99元,我们团队经过艰苦卓绝的探索,在供应链的各个环节进⾏了成本的优化,但是由于这次全新的创新,的确要贵⼀点点。但是我连夜说服了⾼管……现在我来宣布:我们这款产品的定价为29.9元!!!” }}