本文由—AIGC思维火花社区"安迪"创作
由蓝衣剑客代投
提示词工程,简单来说,就是使用特定的指令或提示词来指导人工智能模型生成我们期望的内容。它主要应用于大型语言模型,如 ChatGPT,通过这些提示词,我们可以更高效地利用这些模型,让它们生成符合我们需求的高质量文本。
此外,提示词工程还包括一些高级技巧,如使用不同的角色视角、提供示例、试验不同的提示词等,这些都能进一步提高文本生成的质量和效果。
掌握提示词工程技巧对于有效利用大型语言模型至关重要,无论是编写代码、制作食谱还是其他各种场景,都能通过精准的提示词来提高工作效率和创作质量。
大家想必都有看过或者玩过“猜词游戏”吧?就是一个人比划,一个人来猜词的游戏。比划的那个人要通过各种提示和描述来让猜词的那个人,猜到对方想要表达的词条。
我们和 AI 之间的关系,就跟“猜词游戏”的角色类似,AI 就是那个猜词的人。我们想让 AI 来帮我们工作,达到我们心理预期的工作效果,就像是“猜词游戏”的那个“词条”,你希望 AI 能帮你把这个“词条”解答出来。
所以,要让 AI 猜出词条,你的描述就非常的重要,你要把你内心的那个“词条”尽可能多的信息提供给 AI,信息提供越丰富,AI 给你的回答就越会符合你内心的所想。
我们来看几个具体的案例。
我们来看一个例子,假设你要去长沙旅行,想要让 AI 帮你做一个长沙的旅行计划,如果你直接发给 AI“做一个去长沙的旅行计划”,出来的结果是下面这样的。
在这个回复中,AI 给的旅行计划比较笼统,给人一种比较潦草的感觉,真正有价值的信息比较少。
我们改善一下这个提示词:
暂时无法在飞书文档外展示此内容
在新的提示词中,我们要求 AI 制订的计划中要包含“行程规划”、“交通安排”、“餐饮计划”和“物品准备”四个部分,使用表格形式来呈现计划。
AI 根据我们的要求,做出表格计划,标头依次按照我们要求划分了行程、交通、餐饮和物品,并且内容细化。
其中,在行程规划中,景点包含了成人门票价格和小孩门票价格;
在餐饮计划中,有列出了推荐的餐厅以及特色菜;
在必备物品中,到岳麓山景区提醒携带防晒霜、遮阳帽等防晒装备
同样是规划长沙的旅行计划,不同质量的提示词,AI 回复的质量也是天差地别,况且我们这里只是做了简单演示,并没有深度的调试出一个专门用来做旅行规划的 AI 智能体。
AI 提示词的质量,也决定了 AI 替我们工作的质量。
以往,每年的“手写信”都是我写的,属于那种煽情的文艺风。
2023 年是 AI 大爆发的元年,我就开始使用 AI 克隆了一个“我自己”,来代替我写这封“手写信”,我是如何做的呢?
首先,我把过去写的三篇“手写信”发给 AI,让 AI 总结这三篇“手写信”的写作特点;然后,根据 AI 总结的写作特点,编写出“手写信风格”的提示词,这样就克隆了一个“我自己”;未来,我可以无限次的使用这个风格来帮我写“手写信”。
从三篇内容中找到写得最符合自己心意的作品,从另外两篇内容中寻找好的段落;
如何写好提示词呢?简单来说,就是“把话说清楚”。 有些读者朋友可能会感觉奇怪,“把话说清楚”有什么难的?
其实,“把话说清楚”一点也不简单。在我们日常生活或者职场沟通中,存在大量“说不清楚”的情况,导致对话双方“来来回回”对话,“反反复复”的确认,沟通效率非常低下,甚至长此以往难免爆发“冲突”。
我们来看三个现实常见案例:
案例一:缺乏明确性和目标性
场景:市场营销部门的小张需要与产品设计部门的小李合作,推出一款新产品。
小张的沟通方式: 小张通过公司内部即时通讯工具给小李发了一条消息:“嘿,小李,我们需要一款新的产品来吸引年轻消费者,你能不能设计一些酷炫的东西?”
小李的回应: “好的,我明白了。我会让设计团队着手设计。”
几天后,小李提交了设计方案,但小张发现这些设计并不符合市场调研的结果,无法吸引目标消费者。
问题分析:
小张的改进沟通方式: 小张邀请小李参加了一个跨部门会议,并在会议中详细介绍了以下内容:
“小李,根据我们的市场调研,我们发现年轻消费者对产品的以下**
独特的设计风格,设计风格为 xxx;
良好的用户体验,体验感为 xxx;
亲民的价格,预期价格区间为 xxx**。我们的目标是在下个季度推出一款符合这些特点的新产品。这里是我们收集的目标消费者偏好数据和竞品分析报告。我希望我们的设计团队能够基于这些信息来设计产品。”
小李的回应: “谢谢小张的详细说明,这让我们非常清楚市场需求和设计方向。我会让设计团队根据这些具体要求来工作,并且我们会定期与市场部门沟通进度,确保我们的设计符合市场需求。”
结果: 小李的设计团队根据小张提供的信息,设计出了一款符合市场需求的新产品。产品推出后,市场反响良好,销售业绩显著提升。
案例二:需求不明确,信息不完整
场景:小王是一名市场营销部门的员工,他需要同事小张帮忙整理一份客户资料,以便进行市场分析。
对话内容:
小王:小张,你能帮我弄一下那个客户资料吗?我急着要用。
小张:哦,客户资料啊,行吧。具体是哪些客户,需要整理哪些信息呢?
小王:就是那些老客户,你看着办吧,尽快弄好给我。
结果:小张由于不清楚具体需求,整理的客户资料不符合小王的期望,导致小王在市场分析时进度延误。
改进对话内容:
小王:小张,你好,我想请你帮忙整理一份客户资料,用于市场分析。具体需求如下:
小张:好的,小王,我明白了。我明天上午有空,预计下午能完成这项工作。如果遇到问题,我会及时与你沟通。
结果:小张按照小王的要求,高效地完成了客户资料的整理工作。小王在市场分析时,顺利地使用了这些资料,为公司制定了有针对性的营销策略。
案例三:需求不明确,信息不完整
场景:项目经理李华需要团队成员张莉在下周三之前完成项目报告的初稿,但李华在传达任务时缺乏明确性和细节。
对话内容:
李华:张莉,你帮整理一份项目报告,甲方催得急,尽快给我。
张莉:收到,好的。
李华:那就好,尽快弄完,客户那边催得紧。
结果:张莉由于不清楚报告的具体要求和格式,提交的初稿与李华的期望不符,导致李华不得不要求重做,项目进度受到影响。
改进对话内容:
李华:张莉,关于项目报告,我有一些具体的要求和截止日期需要与你确认。以下是详细的需求:
**请问你是否有任何疑问或需要帮助的地方?**我们可以现在讨论,或者你整理一下问题稍后找我。
张莉:谢谢李华,这些要求很清晰。我有一个疑问,关于预算使用情况,我需要从财务部门获取最新的数据,你能帮我协调一下吗?
李华:**当然可以,我会立即联系财务部门,确保你能在今天内拿到数据。**其他方面还有需要帮助的吗?
张莉:没有了,我会按照这些要求来做的。谢谢你的帮助!
结果:张莉根据李华提供的明确要求,按时完成了项目报告的初稿,且报告质量符合预期。李华和张莉之间的有效沟通确保了项目的顺利进行,也增强了团队的合作效率。
通过以上案例,我们会发现,想要“把话说清楚”,提高沟通的效能,还真是一个有技术含量的事情!
我们跟 AI 大模型对话也是如此,你有没有感觉,我们想让 AI 来帮助我们工作,就像上面三个案例一样,你可以看作就是你找其他部门的同事,让他来帮助你完成一件工作。
清晰的表明需求,就是告诉对方,你想要对方帮你完成什么样的工作,而且有具体的目标和方向。
比如在上面【案例一】中,小张想要小李设计一些酷炫的东西,那这个“酷炫”具体有三个方向的要求:1。 独特的设计风格,设计风格为 xxx;2. 良好的用户体验,体验感为 xxx;3. 亲民的价格,预期价格区间为 xxx。
再比如【案例三】中,李华希望张莉协助完成一份项目报告,这份报告的具体内容要求是:报告需要包括项目概述、进度更新、预算使用情况、风险评估和下一步计划;
向对方提出要求,就是希望对方遵循某种规则或者限定来完成工作,比如【案例三】中,李华希望张莉“请使用公司统一的报告模板,并确保所有数据准确无误;”,同时希望“下周三下午 5 点前收到初稿”。
在【案例二】中,小王希望小张帮忙整理“老客户”名单,但是对于“老客户”的定义并没有明确。什么样的客户叫做“老客户”?一年内?两年内?三年内?
在改进的对话中,小王对“老客户”做出了具体的定义:过去一年内与我公司有过合作的老客户
高手一定是有套路的。
普通人做事情,没有章法,想一出是一出;而高手做事情,是有章法、有条理的,能把效益最大化。在提示词工程中,这种“套路”和“章法”我们把它叫做提示词框架。
以下介绍几种高级的提示词框架写法。
角色扮演是最简单、最常用,普通人最容易入手的一种提示词写法。在 OpenAI 官方 Prompt 工程指南中就有讲到:让大模型扮演某个角色。
角色扮演,就是你告诉大模型它现在是一个什么职业或者角色,擅长做什么工作,你需要它完成什么需求的工作。
提示词 Prompt 构成 :
- 指定角色 :
为 大模型 指定一个角色如 : 你是一位软件工程师 , 请写出 XXX 代码 ;
将指定角色 " 你是一个 XX " 提示词 , 必须放在最前面 , 已经有论文研究过了 , 指定角色提示词放在最前面 , 生成的结果最准确 ;
大模型对提示词 Prompt 开头和结尾的文本更加敏感 , 最重要的内容要放在开头和结尾 , 开头 > 结尾 ;
- 任务描述 :
给出一个具体的任务 , 信息越丰富越好 ;
如 : 写出 XX 代码 , 实现以下功能 : XX ;
- 案例说明 :
期望大模型生成特定的输出时 , 给出一个例子 , 可以帮助模型更好地理解任务并生成正确的输出 , 提升输出质量;
如 : 你是程序员 , 实现 XX 功能 , 例如 下面的代码 : XX , 在上述代码的基础上进行微调;
比如说,我们让大模型扮演一个“小红书爆款标题专家”:
你是一名专业的小红书爆款标题专家,擅长于使用“二极管标题法”创作吸引人的小红书爆款标题。
暂时无法在飞书文档外展示此内容
ICIO 框架是一种结构化的提示词设计方法,旨在优化与 AI 模型的交互。该框架由四个关键组成部分构成:Instruction(指令)、Context(背景信息)、Input Data(输入数据)和 Output Indicator(输出引导)。
Instruction(指令):
这是 ICIO 框架的核心要素,用于明确定义 AI 需要执行的任务。编写指令时应遵循以下原则:
• 简洁明了:使用清晰、直接的语言
• 具体详细:提供足够的细节以避免歧义
• 行动导向:使用动词开头,如”分析”、“创建”、“评估”等
• 单一任务:每个指令专注于一个主要任务,避免多任务混淆
Context(背景信息):
• 任务目的:说明为什么需要执行这个任务
• 目标受众:指明结果将被谁使用或阅读
• 限制条件:说明任何需要考虑的限制或约束
• 角色扮演:如果需要,指定 AI 应该扮演的角色
Input Data(输入数据):
这部分为 AI 提供执行任务所需的具体信息或数据。可以包括:
• 事实和统计数据
• 链接或参考资源
• 图片、音频或视频(如果 AI 模型支持)
注意:并非所有任务都需要输入数据,如果任务不需要特定数据,可以省略此部分。
Output Indicator(输出引导):
指导 AI 如何构建和呈现输出结果。这可以包括:
• 格式要求:如报告、列表、对话、诗歌等
• 语气和风格:如正式、随意、幽默、专业等
• 长度限制:指定字数或段落数
• 结构指引:如需要的章节或部分
• 特殊要求:如需要包含的具体元素(图表、引用等)
• 评估标准:说明如何判断输出质量的标准
暂时无法在飞书文档外展示此内容
CO-STAR 是一个获奖的提示词框架,由Sheila Teo开发**。**作者在新加坡首届 GPT-4 Prompt Engineering 大赛中使用 CO-STAR 框架,获得冠军。
新加坡首届 GPT-4 提示工程(Prompt Engineering)大赛,由新加坡政府科技署(GovTech**)组织,汇聚了超过 400 位优秀的参与者。
CO-STAR 框架涵盖以下要素:Context(上下文)、Objective(目标)、Style(风格)、Tone(语气)、Audience(受众)、Response(回复)。
Context(上下文)
定义:提供必要的背景信息,帮助大型语言模型(LLM)理解对话或请求的环境和条件。
Objective(目标)
定义:明确说明希望从 LLM 那里得到的具体结果或行动。
重要性:清晰的目标可以帮助 LLM 集中精力解决问题,并减少无关的回答。
Style(风格)
定义:指明文本的整体风格,包括使用的词汇选择、句式结构以及可能的参照对象。
重要性:不同的风格适合不同的场合。例如,一种风格可能适合学术论文,而另一种则更适合社交媒体帖子。
Tone(语气)
定义:设定文本的情感基调,确保它符合预期的氛围。
重要性:正确的语气可以帮助建立与读者之间的联系,并传达出适当的态度。
示例:在撰写一篇面向潜在投资者的商业计划书时,可能需要采用正式、专业且具有说服力的语气;而在写一篇面向年轻人的产品评测时,则可能采用更加轻松和幽默的语气。
Audience(受众)
定义:明确回答或文本的目标读者是谁。
重要性:了解受众有助于调整语言复杂度、术语使用以及整体信息传递的方式。
示例:如果目标读者是专业人士,可以使用行业术语和复杂的概念;如果是面向大众,就需要简化语言并避免过于专业化的术语。
Response(回复)
暂时无法在飞书文档外展示此内容
CRISPE 框架是一种结构化的方法,用于指导大型语言模型(LLM)生成高质量的内容。这个框架包含六个关键要素:能力与角色(Capacity and Role)、见解(Insight)、声明(Statement)、个性(Personality)以及实验(Experiment)。每个部分都旨在确保输出内容不仅符合预期目的,而且能够满足特定的要求和标准。
定义:这一部分指明了语言模型需要扮演的角色以及它应该具备哪些能力。
目的:明确角色有助于设定合适的上下文环境,使语言模型能够在适当的背景下生成内容。
示例:您将扮演一位资深的市场营销专家,在品牌推广领域拥有丰富经验。
定义:这一部分提供了关于请求内容背后的见解、背景和上下文信息。
目的:通过提供背景知识,可以确保生成的内容更加贴切和有意义。
示例:我们的公司即将推出一款全新的产品,该产品具备创新的功能,能够极大程度地提升用户体验。相关发布材料必须能够激发目标受众的兴趣,并精准地传达产品的核心卖点。
定义:这一部分明确了您对语言模型的具体要求。
示例:请为这款新产品创作一份宣传材料,内容需覆盖产品的独特功能、目标市场、用户受益以及产品发布的日期与地点。
定义:这一部分规定了您期望语言模型采用的风格、个性或回应方式。
目的:通过设定个性,可以确保生成的内容与品牌或个人形象保持一致。
示例:期望宣传材料运用热情饱满且极具感染力的语气,彰显出品牌的创新精神以及对用户的高度重视。
定义:这一部分要求语言模型生成多个实例,以便您从中选择最合适的一个。
目的:通过比较不同的选项,您可以挑选出最符合需求的内容。
示例:请为我提供三个风格各异的宣传材料范例:其一适用于社交媒体发布,其二适用于公司官网,其三适用于新闻发布会演讲。
暂时无法在飞书文档外展示此内容
BROKE 框架是由陈财猫设计的一种用于指导大型语言模型(LLM)的提示词框架,它借鉴了 OKR(Objectives and Key Results)的目标管理方法。
这一框架旨在通过精心设计的提示,帮助用户从 LLM 那里获得更高质量的回答,从而提高工作效率和产出质量。BROKE 框架包含五个关键组成部分,每一部分都旨在引导 LLM 理解并完成特定的任务。以下是各组成部分的详细解释:
背景 (Background) :在这一部分,您需要提供足够的背景信息,确保 LLM 能够充分理解问题的上下文环境。这包括但不限于行业知识、具体场景、相关历史等,所有这些信息将帮助 LLM 构建一个清晰的问题框架。
角色 (Role) :在此环节,定义一个明确的角色,让 LLM 能够从这个角色的角度出发进行思考和回答。例如,您可以设定 LLM 扮演一位经验丰富的顾问、一名创新设计师或是某个领域的专家。
目标 (Objectives) :确立清晰、具体且具有挑战性的目标。这些目标应该指导 LLM 的工作方向,并且要足够明确,以便 LLM 可以准确地理解任务要求。
关键结果 (Key Results) :为了衡量目标的完成情况,需要设定一系列量化的关键结果指标(KRs)。这些指标不仅有助于评估进度,还能确保 LLM 的工作产出符合预期。
示例案例:如何提高公共演讲技巧
接下来,让我们以“如何提高公共演讲技巧”为主题,使用 BROKE 框架创建一个具体的示例。
暂时无法在飞书文档外展示此内容
APE 框架是一种精心设计的方法论,用于指导用户向人工智能系统提出请求时的结构化过程。通过将用户的请求细分为行动(Action)、**目的(Purpose)和期望(Expectation)**三个关键部分,该框架显著提升了与大型语言模型交互的明晰度和效率。
暂时无法在飞书文档外展示此内容
LangGPT 是由云中江树开发的一款开源提示词框架,它旨在应对传统提示词(Prompt)在系统性、灵活性和用户友好性方面的不足,并更好地挖掘和利用大模型的潜力。随着 GPT-4 等新一代模型的发布,提示词的重要性日益凸显,其编写过程正逐渐成为 AI 时代的一种编程语言。因此,高效地编写高质量提示词——即所谓的“提示词编程”——成为了一个亟待解决的问题。为了解决这一问题,云中江树主导研发了 LangGPT 提示词框架。
系统性
• 结构化指南:通过结构化的指南帮助用户理解如何构建有效的提示词结构,从而提高提示词的质量和效果。
灵活性
• 变量管理:引入基于 Markdown 的变量概念,使得用户可以方便地引用、设定以及更改提示词内容,提高了编写效率和灵活性。
• 模块化组件:支持模块化的配置方式,用户可以根据需求自由组合不同的提示词组件,以适应各种场景下的使用需求。
交互友好性
• 工作流引导:通过定义清晰的工作流程,LangGPT 帮助用户明确在不同阶段的角色和行为,使整个提示词编写过程更加直观易懂。
• 直观反馈机制:提供了直观的反馈机制,确保用户能够及时了解提示词的效果和可能的改进方向。
充分利用大模型特性
• 模块化配置:支持针对不同任务或场景的模块化配置,使得提示词能够更好地适配特定的应用环境。
• 分点条理性叙述:采用分点条理性的叙述方式来组织提示词,帮助大模型更好地理解和响应复杂的指令。
• Reminder 功能:通过内置的 Reminder 功能,LangGPT 能够在长时间的对话中保持上下文的一致性和连贯性,有效缓解长对话中的遗忘问题。
LangGPT 变量
• 利用 Markdown 语法支持的特性,LangGPT 允许用户定义和引用变量,这不仅增强了提示词的可读性,也方便了内容的动态调整。
LangGPT 模板
• 场景模板:针对不同的应用场景预设了多种模板,用户可以根据自己的需求选择合适的模板作为起点。
格式化技巧
• 使用 Markdown 等格式化语言,确保提示词结构清晰,便于大模型理解和处理。
明确性技巧
• 通过明确具体的指令(如“请用一句话概括”、“请给出详细的步骤说明”),确保大模型能够准确理解用户意图并做出恰当的响应。
上下文技巧
• 在提示词中融入上下文信息,有助于大模型更好地理解用户的具体需求和语境,从而给出更贴切的回答。
通过这些特点和核心语法的支持,LangGPT 不仅提升了提示词的编写效率和质量,还促进了用户与 AI 之间的有效沟通,为 AI 应用的发展提供了强大的工具支撑。
LangGPT 属性词总结
• 基础的属性词
Role:角色,希望大模型扮演的角色。也可使用 Expert(专家), Master(大师)等提示词替代 Role,将 Prompt 固定为某一领域专家。
Profile:角色简介,对大模型所扮演角色的人物背景介绍
skill:技能,该角色所具备的能力
Rules:规则,该角色所需要遵循的规则
Workflow:工作流,该角色工作所遵循的工作流程
Initialization:初始化准备
• 补充属性词
OutputFormat:输出格式要求
Attention:注意事项,提醒大模型需要注意的事项
ConstrAInts:约束,对大模型的某些事项进行约束
Ethics:伦理道德,框定大模型所要遵循的伦理道德准则
Personality:性格,设定大模型的性格
Writing Style:写作风格
Preferences:偏好
Goals:目标,为大模型设定人物目标
Background:背景,任务背景介绍
LangGPT 是开源大模型提示词框架,有不少用户创作了不错的提示词模板,以下就以李继刚创作的提示词模板作为示例:
暂时无法在飞书文档外展示此内容
对于,同样一段提示词内容,如果在实践过程中发现大模型输出的效果并不好,并没有按照这个提示词的要求做出回复,那你可以尝试把这段提示词内容“往前移”,提升它在大模型眼里的“权重”,这样可以获得更好的效果。
大模型作为一种计算机程序语言,对于程序化符号可以说是天然的熟悉和亲切,所以在编写提示词的时候,善用程序化符号来做不同属性内容的区隔,让大模型更好的识别,保证大模型回复的稳定性。
比如在 LangGPT 结构化提示词中,我们采用 “##”符号来做子主题的标记,采用就是 markdown 格式语法。
再比如在 Examples 模块中,我们需要向大模型提供多个示例,那么可以采用“示例”格式来提供示例,这个是一种非常常见的编程语法。
美国康奈尔大学有一份研究报告显示,在提示词中让大模型“深呼吸(take a deep breath)”,从而让大模型“慢些思考”、“不着急回复”,可以在一定程度上提升大模型的回复质量。
Take a deep breath and work on this problem step-by-step
Let’s think step by step,也是一个非常有用的提示词口令。给模型思考的时间,这就像在解答数学问题时,我们可能不会立即知道 17 乘以 28 的结果,但给予时间可以计算出来一样,模型在尝试立即回答时也容易犯更多的推理错误,而不是花时间去计算答案。在答案之前要求一个“思考链(CoT,ChAIn-of-Thought Prompting)”可以帮助模型更可靠地推理出正确答案。
实施技巧:
技巧 1:指导模型在匆忙下结论之前先找出自己的解决方案
示例 1:在解答有关中国五千年历史的复杂问题之前,请先分阶段梳理历史线索。
技巧 2:使用内部独白或一系列查询来隐藏模型的推理过程
示例 1:在分析古诗词的意境和语言特色之前,请先逐句解读其含义。
示例 2:在预测明年的股市走势之前,请先回顾并总结过去一年的重大财经事件。
技巧 3:询问模型是否在之前的尝试中遗漏了什么
示例 1:在列出适合春节期间旅游的目的地之后,请检查是否有遗漏的重要景点或考虑因素。
示例 2:在分析一部电影的主题和风格之后,请回顾是否有未涉及的重要镜头或细节。
这种策略的优点在于,通过允许模型有更多的时间来推理和处理信息,可以提高回答的准确性和可靠性。这对于处理复杂或需要深入分析的问题尤为重要。通过细化问题,并鼓励模型逐步推理,我们可以使得 GPT 模型的应用更加高效和精准。
正如在 LangGPT 框架中,我们使用 Example 模块来给大模型提供示例,示例可以让抽象的文字要求更加具象,从而让大模型更好理解你的需求。
有的时候以其反复调试提示词,不如直接给大模型提供理想的示例。以下几种情况,特别适合或者说需要提供示例:
• 对齐内容风格: 比如我们需要大模型写一篇“文艺范”的信,但是“文艺范”的概念太过于宽泛,有很多作家和流派都可以归到“文艺范”里面,大模型可能就会随机挑选一个让认为的“文艺范”风格给你做回复。如果我们提供示例给大模型,那么大模型就会知道你需要的“文艺范”到底是什么样子的,让大模型对齐你的需求。
• 对齐输出内容结构: 与上面相似,当我们需要大模型回复的内容按照一定要求的格式输出,那么可以提供示例给大模型,让它按照你范例中的格式来输出内容。
• 提升推理能力: 在使用思维链(ChAIn of Thought)提示时,提供示例可以帮助大模型逐步推理并生成更可靠的输出结果。这种方法通过将复杂问题拆解成多个步骤,逐步解决每个步骤的子问题,最终得到准确的输出结果。
这是一个真实的沟通案例,一位社区的群友写了一个“文本内容审核专家”的提示词,但是大模型并不能充分的理解他的需求,无法按照这位群友的要求完成内容审核的工作。
在我看来,这位群友的提示词尽管看上去有条有理,内容详尽,但是对于“内容丰富度”这一判定的标准太过于抽象或者说主观意识太强,无法做到统一标准的量化,所以导致了大模型给出的结果不符合自己的预期。
我认为假如需要完善这个提示词,就需要给大模型提供示例。在这里提供示例有两方面的作用:第一个,是让大模型按照思维链(CoT),step by step 的来完成推理过程,从而提高推理结果的准确性;第二个,是对齐你的标准,在你眼里什么样的内容属于“内容丰富”,什么样的内容属于“内容不丰富”,你需要给大模型示例,让它了解你的偏好和标准,跟你对齐。
大模型在回答问题时,是依据自身的知识来做回答的,但是假设我们询问的内容超出了大模型的知识圈,大模型不会“老实”说自己不懂,而是会“一本正经的胡说八道”,在学术上我们称其为“大模型的幻觉”。
那假设我们需要大模型来充当专属客服,比如我写了一本书,我需要大模型根据这本书的内容来回答问题;再或者,我们需要大模型来充当公司的客服,大模型需要知道公司的产品、售后服务、公司价值与愿景等等信息。这种情况,应该如何做呢?
给大模型提供知识背景,可以让大模型基于知识背景来回答问题,减少幻觉。更高级的用法,是使用 RAG 知识内容增强检索的方式,来为我们工作,关于 RAG 的内容,我们会在 AI 智能体章节讲到。
和我们人类相似,如果领导同时交待了几件事情给我们,要我们同时来完成,那么我们无法专注在一件事情上,勉强要把东西做出来,但是工作的质量往往不高,需要来来回回的“返工”。
大模型也是一样的,你让它一次完成多个任务,或者一次给它太长的任务,出来的质量就会下降,越长越复杂,效果就越“和稀泥”。
所以,为了保证作业品质,我们需要拆解任务,让大模型逐个来完成。
• 长文本任务生成
目前国内外的大模型,一次生成内容在 1000 字以内的质量较为稳定,默认情况下一般 700-800 字。超过 1000 字,生成的文本质量就开始下降了,这一点通过“文本改写”场景测试,可以比较直观的反应出来。我有试过 Claude 单次输出 2800 字,Claude 在长文本生成能力上相对较强。
所以,如果你想要使用 AI 来生成长文章,建议你分段落让 AI 来完成,这样可以保证生成文章的质量;同样,如果你有长文章需要 AI 来帮你解读或者改写,你也可以使用分段的方式,让 AI 来逐项完成,每个段落长度控制在 700-800 字左右效果最好。
• 复杂任务拆分成工作流
多任务拆解
意图判断器
再举一个案例,比如说我们要做一个综合服务的社群机器人,这个机器人依托我们提供的知识库,可以回答多个跨界领域的问题。就以我做的社群服务机器人为例,它可以回答两核医学问题、法律问题、联网检索、社群服务等,每个领域都有专属的 AI 机器人。
那么一个用户的问题进来,就需要首先对用户的问题做【意图判断】,从而根据用户的意图把线路转接到正确的 AI 机器人那里,让专属机器人来做服务。以上说的整个过程,我们把它叫做工作流(Workflow),通过搭建工作流来完成复杂的任务。
在这个案例中,开发者编写了一个“英语口语提升教练”的提示词工程,希望 AI 用英语进行对话回复。
但是这款 AI 大模型,没有很好的 get 到这一重点,还是用中文进行了回复,多次调试都没有效果。
群里的技术“大佬”直接换了一个方式与 AI 对话:
暂时无法在飞书文档外展示此内容
在这个优化过的提示词中,“大佬”使用“补全思维”,让 AI 误以为已经在跟用户对话,并以“I will reply in English next:”开头,让 AI 接着往下“补全”对话。
出来的效果,就是 AI 成功的用英语进行了对话回复。
同样一份提示词,为什么有的 AI 可以很好执行,有的就不能呢? 就在于它们上下文学习和逻辑分析能力不同,简单说就是能不能很好的“get 重点”。
这也是我们后面要说到的大模型能力大小的问题。
那么,对于 AI 使用者和开发者来说,要想让 AI 更好为我们工作,就一定要有“补全对话”的思维认知,在大模型无法正确工作时,“强行扭正”它的工作方向。
不同大模型的能力大小有差,打一个比方,就像小学生和大学生的区别,你不可能让一个小学生去做高等数学的习题。
如果你编写了一个 AI 项目,但是大模型执行出来的结果并不如意,你反复去调试提示词,都没有明显改善,你可以尝试换一个大模型试试。
就像上面提到的 “英语口语提升教练” 案例,如果换其他模型,结果一下就出来了,不需要怎么去调试。所以,实在不行,就换模型。
如果你是一名 AI 应用开发者,使用的是 api,考虑到成本的问题,那么你应该考虑在工作流(Workflow)设计中,不同任务节点使用不同的大模型。
基础性的工作节点,使用免费或者便宜的大模型,像我们上面提到的“意图判断器”就可以采用较低等级的大模型,还有像普通的内容总结类工作,也可以采用较低等级的大模型。
而那些高价值性的工作节点,则以性能优先为考虑要素,优先选择对应性能最好的大模型。