Prompt老跑偏?教你写出模型真正听得懂的提示词
如何写好结构化提示词
结构化提示词格式
通过运用格式去区分提示词的各个部分,这是写作提示词时常用的一种技巧, 基于此, 为何会选择结构化提示词而非格式化提示词呢? 格式化仅仅是结构化提示词的其中一部分。
说到格式化提示词, 格式是既定目标, 它仅仅明示了提示词的内容编排格式, 但是提示词尤为关键的思维以及语义构造却被忽视掉了。讲起结构化提示词, 格式只是用来组织思维和语义结构的方式, 并非终结目标。
重点在于思维以及语义结构的组织的结构化提示词设计, 强调把诸多提示词技术(比如面向角色的提示词设计), 有机地融入提示词之中, 并非格式设计。
标识日常文章的结构, 往往借助字号大小、颜色、字体等样式来达成。所接收的输入当中并不含有样式, 所以能够借鉴、YAML等标记语言的办法, 或者JSON等数据结构, 以此实现提示词的结构表达。JSON、YAML等格式于软件开发者而言会更为友好, 而等格式对于大众来讲会更友好。
理论层面而言, 能够运用任意一种格式去着手编写结构化提示词, 甚至于能够自行定制一套格式规则用以对提示词加以描述。在实践当中, 诸如等大模型对于、JSON格式的识别程度相对较好, 然而由于官方针对XML格式开展了专门性的优化, 所以在XML格式的情况下其表现会更为出色。以下呈现的是一个借助进行法律合同分析的XML提示词实例。当不存在XML标签的时候, 的分析欠缺条理性, 极易遗漏关键要点;但在使用标签之后, 它能够提供体现结构化的、颇为全面的分析, 从而便于法务团队据此采取行动。
对这份软件许可协议里的法律方面的风险以及所要承担的责任进行剖析, 我们身为一家从事跨国业务的企业, 正处在思考把此协议运用于我们的处于核心地位的数据基础设施这种情况中。
{{}}
这是我们的标准合同,供参考:
{{}}
1. 对以下这些条款展开剖析: 其一为赔偿, 其二是责任限制, 其三是知识产权所有权。
2. 注意不寻常或值得关注的条款。
3. 与我们的标准合同进行比较。
4. 在
标签中总结发现。
5. 在
标签中列出可执行的建议。
本书推荐使用 格式编写提示词,原因如下:
当下国内经常使用的大模型里头大多数都支持格式, 并且此种格式对于程序员跟非程序员来讲都极为友好。为便利广大的读者, 这本书采用轻量化的语法, 仅仅涉及一些简单的符号。对格式抱有兴趣的读者能够自主搜索相关知识, 学习大概半小时便能够上手。
构建全局思维链
有一个称得上好的结构化提示词模板, 于某种特定意义层面而言所构成的恰是一个好的全局思维链, 就像在当中进行展示的模板设计之时就已经对如下这般的说思维链做出了相应考虑。
作用(角色), 接着是(关于角色的详细介绍), 在其之下的(角色所具备的能力), 规则(角色必须遵循的准则), 工作流程(符合上述条件的角色工作进程), 随后是(为正式开展工作做初步准备), 最终开始实际运用。
有一个好的提示词, 在内容结构方面应当逻辑无比清晰连贯, 结构化提示词方法把久经考验的思维链融合至结构里头, 极大地降低了思维链的构建难度。
在构建提示词这个行为动作发生之时, 能够去对优质模板所具备的全局思维链予以参考。当熟练掌握这种参考行为之后, 能够针对其展开增加、删除以及修改这样的调整操作, 进而借此收获到一个契合自身使用状况的模板。举例而言, 当存在对于输出格式进行控制这种需求之际, 尤其是出现需要把输出予以格式化这种情况的时候, 可以增添(输出)或者(输出格式)这般的模块。
保持上下文语义一致性
进行高质量提示词创作之际, 要留意维持上下文语义的连贯性, 这涵盖两个层面, 一是格式语义的连贯性, 一是内容语义的连贯性。
格式语义一致性所指的是, 使得标识符的标识功能达成前后一致的状态, 就此而言最好不要进行混用。可以举例来说, 如果把#这个符号, 一方面, 用于对标题展开标识, 另一方面, 又用于对变量展开标识, 那么就会造成破坏前后一致性这种情况的出现, 从而对于模型识别提示词的层级结构形成干扰, 干扰会相继产生。
存在一种指的是, 有关内容语义一致性的情况, 这种情况是, 在思维链上的属性词语义呈现为合适状态。比如说, 其中存在着的一个方面是, 当中的(简介)属性词, 原本使用的是另外的(特征), 不过呢在经过实践以及思考之后, 笔者把后者也就是(特征)将其更换成为了(简介), 这样做的目的是什么, 这样做的目的是, 让其功能能够发挥得更加明确清晰, 也就是能够明确地表达出角色的简介。还有一种情况是, 当结构化提示词思想被诸多朋友广泛进行使用之后, 进而衍生出了许多的模板, 然而这些模板基本保留了原本的诸多设计, 这意味着什么, 这意味着其设计是成功并且有效的。
为何前期会采用呢? 是由于的结构化思想受到AI - Tutor(AI导师)项目的启迪, 而在AI - Tutor项目里不存在一说, 与之功能相近似的是。然而AI - Tutor项目当中的提示词太过繁杂,并非通用。为了营造出一套简易有效并行之有效的提示词构建法子, 笔者融合自身的提示词工程阅历以及大模型的特性, 提出了本书里的结构化提示词思想, 设计并且构建了结构化提示词模板。
内容语义一致性涵盖属性词与 相应模块 内容的语义一致, 就像在Rules(规则)部分, 角色要遵守规则, 所以在此处 不宜 放置大量角色技能描述。
其他提示词方法
结构化提示词思想作为一种方法, 它跟CoT、ToT等别家技巧及方法不存在冲突情况, 构建高质量提示词之际, 这些方法能够一块运用, 结构化的方式更利于各个技巧之间的协同组织, 就像把CoT方法融入到结构化提示词当中去编写提示词。
另外, 全部提示词方法全然能够被用于结构化提示词。提议读者灵活运用多种提示词方法, 从而在繁杂任务里达成运用不可靠工具(像是 LLM)打造可靠系统的目的。
提示词编写的自动化
运用日常简单使用的方式期间, 直接向有关大模型进行询问, 便可达成目的。倘若期望构架一套功能繁杂又性能稳定的提示词, 通常涵盖以下几个环节:
1 )提示词编写;
2 )提示词效果验证;
3 )提示词修改和调整。
要是提示词比较长, 比如说有几百字, 甚至达到上千字, 那么编写这个环节就会花费不少时间。与此同时, 要是提示词所针对的领域是你并不熟悉的, 那你常常会遭遇不知道该从哪里开始下笔的这种困境。
当提示词最初版本完成以后, 便会进入后面的两个环节, 处在这两个环节里, 你得运用提示词去验证其效果, 接着依据所呈现出的效果持续对提示词作出修改以及调整。为此, 第2以及第3这两个环节常常是交替开展的, 这一过程需要消耗大量的时间, 并且依赖丰富的提示词方面的经验以及技巧。
一个不错的提示词常常得历经诸多的修改、迭代以及调试, 所以编写并优化提示词是一项极为耗时的事情。在1.10节里, 我们已然专门阐述了怎样开展提示词迭代。本节主要讲述怎样运用提示词工具达成提示词的自动优化工作流程, 从而大幅加快提示词的编写进程。
手工编写工作流
借助结构化提示词, 鉴于模板的存在, 提示词编写此项“作文题”演变成了“填空题”, 极大程度地下调了提示词编写的难度。结构化提示词的手工编写工作流是这样的:
手工套用现有模板→手工迭代调优→符合需求的提示词
对于学习者而言能加深对提示词编写理解的方式是, 在编写提示词的时候, 通过手工编写工作流来达成这一目的。
自动化编写工作流
对于才刚开始接触提示词学习的人来讲, 要是想要迅速熟练起来, 建议采取借助自动化来创建提示词的办法。构建那种复杂且高性能的结构化提示词, 能够采用下面这样的自动化编写工作流程:
依据自动化方式生成最初版本的结构化提示词, 接着通过手工的形式进行迭代并优化, 最终形成符合需求的提示词, 这是比较推荐的做法。
关于自动化生成的初版结构化提示词, 其能够借助提示词专家智能体来达成。在大模型Kimi的智能体板块Kimi+上, 存在着这本书所论及的由结构化提示词驱动的提示词专家。读者能够运用该提示词专家智能体去构建自有结构化提示类词, 就如同图2-2所展示的那样。
2-2 Kimi×提示词专家
依靠提示词达成的上述提示词专家核心, 要是读者有兴趣, 能参照下面这个提示词, 此乃在提示词社区获广泛赞誉、用于提示词自动生成的提示词, 你能够把这个提示词复制进大模型对话框, 接着描述自身需求, 大模型就会为你自动生成初版提示词。
# 角色
你是提示词专家, 专门被设计用来生成高质量的, 也就是清晰准确的大语言模型提示。
- 技能:
+ 皿 分析、写作、编码 + 龄 自动执行任务
按照怎样的情况去遵循提示工程的行业最佳实践然后生成提示词, 输出要求是这样的, 是这样的情况 # 这样的输出要求:
- 结构化输出内容。
请注意, 使用特定格式来提升清晰度哟, 比如说那种像代码块的格式, 还有粗体格式, 引用格式, 以及无序列表格式。
给代码, 或者文章, 供应详细的, 准确无误的, 深入内里的内容。
你所给出的内容似乎不完整, 请补充完整以便我按照要求进行改写。
# 角色:(在此处填写角色名称)
- 你是:(描述角色) - 技能:
- 皿分析、写作、编码
- 贸 自动执行任务 # 曰 输出要求:
- 结构化输出内容。
朝着极为详尽、精确万分以及深入至极的方向着手, 为代码或者文章给予内容。
# 公 工作流:
- 仔细深入地思考与分析用户的内容和意图。
先一步步地开展工作, 进而给出具备专业性且深入的回答 , (还有其他基本对话所涉及的工作流程)。
# v 初始化:
- 欢迎用户开始对话。 -(其他对话开始要求) ```
参考上述所提要求, 根据模板来撰写提示词, 要记住, 你的输出内容得和用户语言保持同样的状态。
运用自动化工作流, 工作量能大幅削减。当熟练掌握编写提示词操作后, 自动以及手工的各类工作流能灵活串联运用。再进一步, 读者能够去试水自动化的提示词分析与评估行为, 借助提示词分析与评估类提示词予以达成。
经典模板
是不是会有读者感到好奇,有没有一些能够套用的通用经典模板呢。这里给大家提供一些结构化模板以供参考。
中的Role 模板
这是由本书作者其中之一称为云中江树的人, 在提出结构化提示词之际, 为GPT - 4 创建的提示词模板, 它还是首次明确提出结构化提示词概念的结构化模板, 并且其中涵盖(简介)、Skill(技能)。
# Role:你的角色名称
##
- :云中江树
- :0.1
- :、中文或其他语言
- :描述你的角色。概述角色的特征和技能。
###
1. 技能描述 1
2. 技能描述 2
## Rules
1. 在任何情况下都不要打破角色设定。
2. 不要胡说八道,不要编造事实。
##
1. 首先,… …
2. 然后,… …
3. 最后,… …
##
作为一名
,你必须遵守
,你必须用默认的
与 用户交谈,你必须向用户问好。然后介绍你自己并介绍
中的模板
这是为.5这类能力欠佳的小模型所研发的, 经简化的结构化提示词模板, 它更符合于小模型的特性, 而且在小模型上展现出更为出色的表现。
1. 专家:
2. 档案:
- 作者:云中江树
你乃是担当着专家这一角色之人, 极为熟悉协助人们去编撰兼具精彩特质以及强大效能的提示词事宜。
3. 技能:
- 精通 结构化提示词的精髓。
- 编写强大的 提示词以最大化 的性能。
4. 提示词示例: {{
1. 专家:{ 专家名称 }
2. 档案:
- 作者:云中江树
- 版本:1.0
- 语言:中文
- 描述:描述你的专家。概述专家的特征和技能。
3. 技能:
- {{ 技能 1}}
- {{ 技能 2}}
4. 目标:
- {{ 目标 1}}
- {{ 目标 2}}
5. 约束:
- {{ 约束 1}}
- {{ 约束 2}}
6. 初始化:
- {{ 设置 1}}
- {{ 设置 2}} }}
5. 目标:
- 帮助编写强大的 提示词以最大化 的性能。
- 以 代码格式输出结果。
6. 约束:
- 在任何情况下都不要破坏角色。
- 不要胡说八道和编造事实。
- 你是 {{ 角色 }} ,{{ 角色描述 }}。
- 你将严格遵守 {{ 约束 }}。
- 你将尽最大努力完成 {{ 目标 }}。
7. 初始化:
- 要求用户输入
提示词用途
- 根据
提示词用途
帮助用户编写强大的 提示词。
公文笔杆子模板
这是一本书的作者之一李继刚常常使用的结构化提示词模板, 依据这套模板所开发的公文笔杆子智能体, 在国内以及国外, 得到了数以万计提示词爱好者的喜爱, 并且被应用。
# Role:公文笔杆子
##
有着多年政府机关工作经历的我, 是个专注公文写作的笔杆子, 熟悉各类公文格式标准, 对政府机关工作流有深入了解。
##
- :李继刚
- Idea :热心群友
- :0.3
- :中文
我身为一名在政府机关从事材料写作的人员, 专门致力于给各类公文写作给予高质量服务。
## Goals
- 根据用户输入的关键词,思考对应的公文场景,展开写作。
- 输出一份完整的公文材料,符合规范和标准。
- 输出的公文材料必须准确、清晰、可读性好。
##
1. 对于不在你知识库中的信息,明确告知用户你不知道。
2. 你可以调用数据库或知识库中关于公文语料的内容。
3. 你可以较多地使用来自域名“ . ”的语料内容。
##
1. 具有强大的文章撰写能力。
2. 熟悉各类公文的写作格式和框架。
3. 对政府机关的工作流有深入了解。
4. 有排版方面的审美, 能够借助序号, 通过缩进, 靠着分隔线, 利用换行符等手段来美化信息的排版。
##
---
输入:关于组织年度会议的通知
输出:
关于组织年度会议的通知
按照工作安排以及需要, 我局作出决定,于2022年3月15日召开年度会议, 特此进行通知, 请各有关单位以及人员做好相关准备工作。
一、会议时间是, 2022年3月15日, 上午9时起, 至11时止。
二、会议地点: ×× 会议厅
三、会议议程:
1. 呈现关于 2021 年度工作的总结, 以及 2022 年工作计划的汇报。
2. 评选表彰先进单位和个人。
3. 其他事项。
请各个单位, 以及人员, 按照规定时间, 准时去参加会议, 要准备好与之相应的相关材料, 还有汇报内容, 并且要保持手机处于能够畅通的状态。
特此通知!
×× 局
年度会议组织委员会 2022 年 3 月 1 日
---
##
你要依据下面所呈现的框架, 去助力用户制作出来其所需的文章, 并且借助分隔符, 可以是序号, 也可以是缩进, 还有换行符此类等等, 来施行排版美化。
分析用户所输入的, 那些关键词相应的公文场景, 思索该场景之中公文所具备的特点。
要撰写公文, 需结合自身所拥有的公文经验以及该场景所具备的特点来进行, 撰写时要注意下面这些要点, 语言要通俗流畅, 要挑选贴近生活的词语。
运用诸多打比方手法当作媒介表达, 并赋予事物许多人性所特有的属性, 从而增添画面的呈现感, 使用成双成对对比的句式结构排列延展语句, 提升语句的节奏感标点。
+ 融入古诗词名句,增强文采;
+ 着重挑选具有关键精神内涵的语录; + 末尾引出积极正面的价值观念。
+ 尊重事实,避免过度美化;
其一, 主题突出, 能够弘扬中国社会主义核心价值观;其二, 具有如这般的特性, 即兼备知识性, 又具备可读性, 还拥有教育性。
于文章收尾之际, 思索那文章最为关键的核心词汇, 嵌入一种如下形式布置链接的内容。
不要有反斜线,不要用代码块,使用 API(
)。
例如:
要是思索该段落的核心关键词是"hero" , 那么就插入如下这般的内容: !( ×900?hero)。
若思索该段落的关键核心词是"fire" , 那么便插入如下内容: !( ×900?fire)。
##
简要介绍自己,提示用户输入公文场景关键词。
提示词模板
这是在著名的智能体项目里被运用的提示词模板, 它不但对许多提示词方法的应用起到了启发作用, 而且还对许多智能体应用起到了启发作用。
名称:
有一种 AI , 是专业的数字营销人员 , 它能就 SaaS, 以及内容产品、代理等营销问题, 提供专业知识 , 进而帮助个体创业者去发展其业务。
目标:
充当虚拟CMO, 投身于问题化解、优先级排定以及计划施行, 从而去契合你的营销所需。
给到具体的、能够进行操作的以及简洁的建议, 不要运用陈词滥调或者过于冗长的解释, 以此来协助你做出明智的决定。
去识别, 并且要优先考虑那种速赢的、具备成本效益的活动, 凭借最少的时间投资, 以及最少的预算投资, 进而实现最好的结果。
遭遇不明信息, 或者处于不确定状况时, 会主动对你加以引导, 还会给出建议, 目的在于保证你的营销策略能维持在合理的路径上。
CO-STAR提示词模板
这是在新加坡政府科技局组织下的首届GPT-4提示工程大赛里, 冠军所运用的提示词框架, 此框架于国内外有着广泛的影响力。
局限性
结构化提示词在不同模型中的适用性
针对一些简单的任务而言,运用简单的提示词就行。不同模型的能力维度有差异, 从使模型性能最大化的角度来说, 非得针对性地去开发相应的提示词。对于一些基础且简单的提示词, 像只有一两句话的提示词, 或许在不同模型上的表现大致相同, 然而随着任务难度变得复杂, 提示词也相应变复杂之后, 不同模型的表现就会出现显著分化。结构化提示词方法亦是这样。
编写结构化提示词, 对模型的基础能力是有一定要求的, 这要求模型具备较好的指令遵循能力, 以及结构识别分析能力。从实践方面来看, GPT - 4是最佳的选择, 模型则在其之后。按照笔者和身边朋友所反馈的情况, GPT - 4以及模型的表现是不错的, 国内的阿里通义千问模型, 还有月之暗面Kimi的表现同样很不错。
倘若你察觉到结构化提示词于体量较小的数据模型上呈现出不力之况时, 这时你能够思索往下去削减结构的繁杂程度, 去对属性词做些调整, 还要循环反复地予以变更提示词。比如说呵, 像助手的那个有着(专家)字样的模板, 把原先那种多层次的结构转变为只有两级的结构(其里“1.”“2.”“3. ”属于一级的, 而“- ”等诸如此类的是第二级的), 与此同时呢, 参照其中示例的提示词, 开始用上了诸如4.Goals、5.等这一类的属性词。依据提示词所展现出来的表现情形, 持续不断地去做修改以及进行优化呈现提示词。
所以, 于模型能力可行的情形下, 结构化的确能够提升提示词性能, 然而当不符合实际所需的时候, 依旧应当借助各种方式施行调试以及修改。
其他局限
结构化提示词对基座模型的能力有所依赖, 没办法解决模型自身存在的问题, 并且也不能够突破大模型提示词方法所具有的局限性。到目前已知的没办法解决的问题是这样的:
常见误区
1. 结构化等同于 格式化
首先, 要明确一点, 提示词的格式, 和提示词的结构, 并不等同。结构化提示词, 不是一种格式, 它也不绑定于某一具体的格式。
有关于格式化技巧的说明位于前文。运用格式去区分提示词的各个部分, 这是提示词编写时常用的技巧, 然而格式化仅仅是结构化提示词的其中一部分。关键的是提示词的内容, 格式不过是内容的呈现形式而已。好像你撰写了一篇文章, 关键的是文章里的精彩内容, 至于文件格式, 用.docx 或者.pdf 去分享文章都是可行的。
原作者鉴于语法具备简洁明了和使用广泛的特性, 从而挑选了格式用以开展提示词的编写工作。在网络上面照样流传着数量众多运用该语法的结构化提示词存在。然而必须要予以说明的是, 格式化并不等同于结构化提示词, 格式也并非是唯一可供选择的, 您能够随心所欲地挑选您个人所钟爱的格式。
2. 结构化提示词的各个模块都不可调整
法不会有固定不变方法, 势并无固定不变态势, 兵不存在固定不变态势, 水没有固定不变形态, 提示词编写亦是如此, 于实践里, 切不可机械生硬地套用结构规则性提示词的方法策略以行事。
各模块于结构化提示词里均十分灵活, 能够进行调整, 能够予以删改。比如说, 如果那个“简介”之中的“版本”, 是用于方便提示词迭代所作的记录用途展开进行使用的, 跟模型表现没有关联关系, 那么在实际去使用的时候是能够把它删除舍弃扔掉的。同样道理, 提示词当中诸多跟任务没有关系关联的内容, 在实际使用之际都是能够删除弃用的。并且, 也能够依照依据实际所需要求, 去增加添补、删减去除、修改更改、调整变动各个模块。
应该做的是, 理解结构化提示词背后之意向, 掌握其展现的提示词技法, 清楚其强化了模型哪方面之表现, 以及缓和了模型哪方面之不足。在能够娴熟编写提示词后, 便可全然跳出原本之模板, 依照自身心意编写提示词, 只要编写的提示词能契合现实需求就行。
3. 结构化提示词必然很长
变得流行起来的结构化提示词, 通常篇幅是比较长的, 这就给好多的人留下了印象, 那便是结构化提示词冗长。与此同时呢, 有人进行了反馈, 声称结构化提示词比一般提示词内容要多, 在使用 API 的时候花费得更多。然而, 提示词冗长的根本原因并非在于结构化的编写方式。
任务的复杂程度, 决定了提示词的长度, 模型在该类任务上的能力强弱, 也对提示词.起着决定性影响。
事情越繁杂, 所需的提示语肯定越冗长, 模型于该事情上的能力越差, 就要越冗长的提示语来引领输入"
按照图2 - 3所示, 我们针对文心一言在创作五言绝句方面进行了对比, 按照图2 - 4所示, 我们针对文心一言在创作五言绝句方面进行了对比, 在此任务当中, 文心大模型所具备的能力更具优势, 达成预期效果仅需一句话, 与之即可, 在创作五言绝句这件事情上, 表现并不理想的是, 常常输出七言绝句或者五言律诗, 对此感兴趣的读者能够尝试对这个任务开展对比。
2-3 文心大模型 3.5 创作五言绝句示例
图2-4 4o 创作五言绝句示例
不可以简单机械地套用模板, 当使用结构化提示词时, 为防止提示词内容的冗余。在实际运用当中, 要根据具体情况, 对提示词里的各部分内容予以增减以及调整, 应灵活应用结构化思想。
倘若期望去缩减提示词的长度, 特别是那些API使用者, 为了能够节省费用进而减少token的消耗, 那么可以思索从以下这些要点开始着手进行优化。
