产品必读|AI对话(二):Prompt不只是一句话

0 评论 6134 浏览 16 收藏 9 分钟

很大程度上,Prompt的结构与内容会对最后模型的输出能力产生极大影响,所以,我们需要做好Prompt的设计。这篇文章里,作者就对Prompt如何构建等问题做了分享,一起来看。

Prompt是什么?简单理解,用户输入给AI模型的一串指令或提示词(Prompt)让模型完成指定任务。前文提到,训练模型的【Pre-train,Prompt,Predict】这个范式,用特定语言的模板(prompt)挖掘预训练模型(Pre-train)的本身能力,因此可以降低语义差异。(其他训练范式请见上个系列)

理所当然的,输入的不同直接决定了输出的质量。Prompt 的结构与内容对最后模型的输出能力有极大影响,要想更好地得到输出,对Prompt的设计必不可少。

一、Prompt有哪些分类

1. Zero-shot

零样本提示,即直接给指令,不举例引导。其实这是最为能证明模型推理能力的情况,也是我们最理想的任务形式,我们让机器人做什么事,它就能直接做了。

例如:在机器没有专门针对进行股市描述分析训练,输出一份股市走势报告。

我们常发现这样的情况模型输出的效果不是很好,因此针对这样的情况,还会进一步补充更多的提示信息过渡。

2. Few-Shot

即提供给模型几个示例,实现上下文学习(ICL – In Context Learning),引导模型更好地输出任务。其中只提供了一个示例的是One-shot。

例如下图(与豆包对话),在这个Case中给出了两个示例,最后的输出也可以看到依赖了相关输入。

但Few shot仍然具有局限性,特别是对于推理性等复杂任务。

但大家发现,如果将问题分解成步骤,并向模型演示,可能会有所帮助,因此CoT(chain-of thought prompting)成为大家关注的方向,以解决复杂任务(例如算术、推理等)。

3. CoT(Chain of Thought)

简单来讲,为了更好地解决复杂问题,我们需要模型了解中间推导/计算的过程,因此思维链其实是多了中间的推导。但CoT对小模型作用不大,对复杂问题的性能增益更大。(模型参数达到10B有效果,100B效果明显)

1)Zero shot CoT

这种思维链非常的取巧,即不再给模型任何的示例,只是发出指令让它自己“一步步想”。即利用:Let’s think step by step 以及 Therefore,the answer is 等提示得出答案。

例如下图的情况,虽然模型回答错了;

当然如果矫正这个问题,我们可以再给出一些提示,继续给出推导思路 (不属于Zero Shot);

现在模型已回答正确,那么我们再提问一次,可以看到模型已经学到这样的推导逻辑。

2)Few shot CoT

是ICL(In-context learning)的一种特殊情况,将<Input,Output>扩充为<input,CoT,output>

Few shot CoT是在进行提示的时候,给出一个具体的推导示例,例如:

3)增强的CoT策略:Self- Consistency

这个名字看起来很复杂,翻译也比较复杂,利用自洽性提高语言模型中的思维链推理效果。其实你可以很简单的理解,就是模型通过了多种思维得出了多个结果,最后投票看哪个结果占比最多(可能也有其他维度),最后输出这个投票出来的结果。

例如刚刚的篮子数学题,豆包给了三种解法:

假设现在使用的是Self- Consistency,那么模型内部投票发现有两个结果的答案是4个水果,1个答案是5个水果,按照既定投票规则,最后输出的答案是4,就可以在很大程度上可以提高模型的效果。

针对思维链,行业内也整理了有效思维链的特点:

  1. 具有逻辑性,即思维链的逻辑相互连接,形成了一个完整的思考过程
  2. 具有全面性:即全面细致地思考问题,这里可以采用MECE法则(独立且穷尽每一个关键步骤)
  3. 可行性:每个步骤都可行
  4. 可验证性:每个步骤都可验证

二、如何构建Prompt

AIGC产品经理(及人工智能训练师)构建Prompt的能力是核心竞争力之一,Prompt影响最终模型输出,而使用者需要洞察当下产品需求。框架化、结构化组建Prompt可以更好地完成任务。

网上已经有很多介绍如何Prompt的体系和模板,但万变不离其宗,再多维的框架也有基础。针对文本类,我个人比较推荐QCIPSPE框架,大家可以根据不同的需求进行修改。注意,要避免说不做什么,直接说要做什么即可,做直接、具体、精确的输入。

  • Q:Question type:问题类型,例如建议、查询、比较等
  • C:Capacity and role :角色
  • I:Insight:提供上下文
  • P:Priorty::表明问题中的优先级
  • S:Statement:需求澄清
  • P:Personality:回答的风格
  • E:Experiment:多个答案或者比较

三、Prompt需要避免的问题

  • 过于精简的信息:如果BOT能根据缺失信息再触发多轮问询是最好的,但如果BOT不支持,可能就会出现回答过于宽泛或者不准确的问题。如框架所示,附上背景描述或示例参考有助于模型更好的输出。
  • 过于修饰的词藻:复杂的语义反而会扰乱模型输出,Prompt简单、直接、完整,即可最高效的得到答复。
  • 前后语义互斥:保证指令的准确性,不要将冲突信息放在一起。这里特殊地,尽量要求模型做什么,不要说不可以做什么。

对于生成类对话产品来说,Prompt决定了最后的输出。但是对于垂类场景来说,Prompt是用户对于BOT的指令,用户使用门槛是否过高还需提供框架精简用户输入,是否每个场景都合适生成式引入也需垂类产品考虑。

本文由 @JasmineWei 原创发布于人人都是产品经理。未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!