结构化 prompt = 数字员工?

发表于:August 27, 2023 at 08:36 AM

你好,我是小树。这是我为你写的第 78 封信。每期都会同步更新在微信公众号一颗小树竹白专栏。现在有 327 位朋友订阅了这封信,也欢迎你。

为什么需要结构化 prompt

最近在做大模型相关的产品需求时,发现用户实际对输出的结果反馈效果并不好。

除开国产大模型本身的一些能力限制,在用户输入这端,也存在很多问题。

常见的问题:

  1. 用户无法准确地描述自己的需求
  2. 用户会默认大模型能够理解需求背后的背景信息、限制条件
  3. 用户会默认大模型的输出结果符合自己的预期

举几个例子:

为我写一篇关于赤壁赋的教案

一个更好的写法是:你是一名中学语文老师,请为我撰写一份关于《赤壁赋》的教案,内容包括:教学目标、教学内容、教学步骤和评估方法,不少于 1000 字。

按照销售渠道分析占比

一个更好的写法是:你是一名数据分析专家,我的表格数据为 xxx,请帮我分析不同销售渠道本年度的销售金额趋势,并给出业务增长的建议。

这种提示词的书写方式,借鉴了 CRISPE 框架。

这就是我们俗称的:“你告诉大模型的信息越多,返回的结果就会越好。”

但使用过几次这种方式之后,就会意识到,这类框架只教会了我们思维方式,实际还是需要我们自己编写,就像是高考时的命题作文,即使有固定的套路,依然要靠自己的逻辑和思维能力才能把话说清楚。

通过这种方式生成的提示词不容易沉淀,每次都要重新写一份新的,如果是复杂的需求,费时费力。

如果想要批量化工厂化地生产提示词,并保证结果的稳定性,我们就需要更加结构化的提示词。

结构化 prompt 的好处

基于这个 prompt,我向他提问:现在是否应该买房。

从输出结果的角度看,一方面结构化的 prompt 能够降低模型理解的语义负担,从而提升理解效果。标签化的属性词起到了对 prompt 内容归纳和总结的作用,减少被 prompt 不相关内容干扰的可能。

另一方面,特定的属性词能够确保唤醒大模型的深层能力。比如用 Role 指定模型当前的角色,将 ChatGPT 固定为某个领域专家;用 Rules 规定模型应该遵守的规则,缓解大模型的幻觉和不良内容问题。

从使用者的角度看,结构化的 prompt 符合人的阅读和表达习惯,更易于书写和维护,相当于是把写作文的难度,降低到了完形填空。基于已有的 prompt 进行微调后适应自己当前的场景,也会更容易。

从构建生产级的 prompt 角度看,结构化意味着标准化,也是批量生产和维护的前提。结构化的 prompt 清晰地划分为了不同的模块,更易于用编程语言描述,也可以方便地进行版本管理。

现在很多地方都在提数字员工的概念,我认为结构化的 prompt 模版,就是一份用于招聘数字员工的岗位描述,最终可以让 ChatGPT 为你生成专注于解决这个需求场景的助理。

如何编写结构化提示词

下面是一个用于生产结构化 prompt 的模版,可以按照自己的需求场景进一步完善。

各个模块的内容,可以按照自己的需要自行填充。

这是我按照模版实现的一个简单的“数字员工”。

注 1:以上方法基于 ChatGPT 模型产出,不同模型可能会有不同的提示词方法。

注 2:实际场景中,部分需求需要 GPT4 才能达到更好的效果,也有部分场景需要使用英文 prompt 效果更好,需要自行尝试。

这篇文章参考了如下内容,感谢社区的无私贡献:

碎碎念

推荐一期播客:Ep98【沈阳生存手册】要不是怕削,我可就都说了

这期太好了 🥹 最后的合唱让我热泪盈眶,好久没有这么简单纯粹的快乐了。谢谢基本无害,谢谢大风天。

谢谢你的关注,我们下期再见。👋🏻


往期推荐

你也可以在这里找到我:即刻Twitter、微信公众号一颗小树

如果你觉得这篇文章对你有用,欢迎分享给更多好友。