分享

普通人也能当“作词家”:快速掌握ChatGPT提示词技巧之二

 传承专家老杨 2023-08-10 发布于广东

前情提要

上篇文章《普通人也能当“作词家”:快速掌握ChatGPT提示词技巧》介绍了提示词的五项基本原则:明确目的、多试几次、具体化、用词准确和尽量用英文,以及五种常见的设计模式:角色扮演、听众角色、问题细化、反向提问和事实检查清单。如有不清楚的地方,可移步至该文。
这里要说明的一点是,如果用全英文表达有些困难,或者某些词用中文反而更容易让GPT“理解”,可采用中英文混搭的方式(即关键词、句用英文),甚至在同一句话中都可以这么做。因为对于大语言模型来说,语种本身是没有隔阂或者区别的,最重要的是我们的想法能不能被GPT正确地get到。
好,今天我们来看另外三种设计模式。

设计模式之六:按部就班
(Step-by-Step Pattern)

有人对ChatGPT下了个有趣的定义:它是一个学习过网上所有知识的,保守而道德的名校大学生,理性思考5秒钟,回答10句话。“保守而道德”显然指的是各大模型公司在公众舆论、监管部门的压力下,以及基于自身利益的考虑,不断自我约束甚至“弱化”的行为。而所谓“思考5秒钟”说的是GPT并不会主动地“慢思考”,所以你得要用提示词引导它“学会”一步一步地拆解问题、经过“深思熟虑”后给出答案,这就是“按部就班”模式的本质。
总的来说,GPT是一个看重“形式大于内容”的工具。有时候,我们需要通过明确的方式(形式)引导GPT。而最简单的方式就是在提示词问题中加一句“一步一步地(in a step-by-step way) ”。
那么,按部就班模式具体是怎么运作的呢?
想象一下,你在做一道复杂的数学题,如果一下子给出答案可能会让人摸不着头脑。但如果你能把问题拆分成几个小步骤,逐一解释,那么复杂的问题也变得容易理解了。同样的道理,当你与GPT互动时,你可以引导它通过添加“一步一步”的方式来解释问题,让整个过程更加清晰、有条理。
提示词模板
请一步一步地帮我{需要完成的任务}
Please help me with {the task that needs to be completed} in a step-by-step way.
提示词示例
1.不用“按部就班”模式的提示词
请帮我计划一个周末的家庭旅行。
Please help me plan a family trip for the weekend.
图片

2.加入“一步一步地”后的提示词
请一步一步地帮我计划一个周末的家庭旅行。
Please help me plan a family trip for the weekend in a step-by-step way.
图片

3.又加上一些对详细描述各步骤后的提示词
请一步一步地帮我计划一个周末的家庭旅行。首先选择目的地和交通工具,然后安排住宿,再考虑餐饮和参观的景点,最后请为可能的意外和紧急情况准备一个备选方案。
Please help me plan a family trip for the weekend in a step-by-step way. First, choose the destination and mode of transportation, then arrange accommodations, followed by considering meals and sightseeing spots. Finally, please prepare an alternative plan for any possible accidents and emergencies.
图片

不难看出,如果不用按部就班模式(示例1),GPT就会自己“假设”一些信息,输出一个“普通”的答案。示例3给出的当然是最周全的答案,但也需要提问者对这个问题有一些背景知识。示例2的结果显然比示例1好多了,而这一切仅仅是多加了五个字:“一步一步地”。

设计模式之七:认知验证
(Cognitive Verifier Pattern)

当你询问GPT较复杂的问题时,通常得到的答案都让人不太满意,那么你可以用“认知验证”模式来让GPT更准确地回答这些看似普通但实则复杂的问题。
“认知验证”的名字听起来挺玄乎,其实它和上文介绍的“反向提问”模式类似,也是帮助GPT和你进一步了解问题的各个方面。想象一下,当你问一个很宽泛的问题时,就像探测一个庞大而复杂的迷宫,只有找到正确的路径,你才能获得满意的答案。大型语言模型通过将大问题分解成许多小问题,找到通往答案的正确路径,换句话说GPT可以通过将问题拆分成许多更小的问题来更好地推理。
让我们从实际的例子开始理解。假设你想知道如何做旅行计划。如果我们利用认知验证器模式,可以让大型语言模型将这个问题分解成一系列的小问题,比如:
  • · 目的地选择:旅行的目的是什么?想要去哪里?那里的气候和季节合适吗?
  • · 行程规划:计划在目的地停留多久?每天的活动安排是怎样的?有没有充分的休息时间?
  • · 预算设定:旅行的总预算是多少?吃、住、行等各个方面的花费怎么分配?
  • · 交通安排:选择哪种交通工具?订票时间和价格如何?当地的交通是否便利?
  • · 住宿选择:住宿地点离旅游景点近吗?价格合理吗?设施完善吗?
或者,如果你想知道如何提高公司的员工满意度,你可能需要考虑:
  • · 员工的薪资和福利是否与市场水平相符?
  • · 工作环境是否舒适和鼓舞人心?
  • · 有没有充足的培训和晋升机会?
  • · 员工与管理层的沟通是否畅通?
  • · 工作生活平衡是否得到良好的维护?
这就是认知验证模式的精髓所在:
  1. 1. 拆分问题:通过将复杂问题拆分成许多更小、更易于回答的部分来达到更精确、更深入的理解。
  2. 2. 合成答案:通过回答这些子问题,可以得到更准确的答案,因为这些子问题的答案可以提供解决主要问题所需的上下文和细节。
提示词模板
当你被问到一个问题时,请遵循以下规则。生成一些相关的子问题,这些子问题将帮助你更准确地回答这个问题。然后把子问题的回答组合起来,生成对原问题的最终回答。现在请让我告诉你问题是什么。
When you are asked a question, follow these rules. Generate a number of additional questions that would help you more accurately answer the question. Combine the answers to the individual questions to produce the final answer to the overall question. Now ask me for the question to start.
请注意,最后这句话“现在请让我告诉你问题是什么”是必要的,否则大概率GPT会自己“随便”编个问题(而不是询问你想问的问题),然后套用这个模式回答。
提示词示例
1.如何做旅行计划
图片如何做旅行计划?

2.如何提高公司的员工满意度
图片
如何提高公司的员工满意度?
可以看出,通过将问题拆分为更小、更具体的部分,我们可以更好地理解问题,得到更精确的答案。这其实也是一种分步式(即“按部就班”模式)的延伸。它不仅帮助GPT得到更准确的答案,还帮助你更好地组织自己的思维,更深入地了解问题的不同方面。

设计模式之八:少样本学习
(Few-shot Examples Pattern)

在日常生活中,人们学习新技能往往是通过观察和模仿别人的示范开始的。同样的原理也可以应用到机器学习中。通过给模型提供几个输入和预期的输出示例,我们可以“教”GPT如何解决特定问题。这是一种训练模型的有效和直观的方法。
举例,也叫少样本学习是一种强大而灵活的模式,它允许我们通过示例教授大型语言模型如何执行特定任务。我们来详细探讨下这个设计模式。
假设我们要进行文本情感分析,可以通过提供一系列评论的输入,然后让GPT给出这些评论是正面、负面还是中立的判断,以此来训练模型。这里的关键在于示例之间的一致性,以便模型能够捕捉到模式并学会执行任务。如:
【输入】: 这款手机的电池续航力真不错,运行流畅,我非常满意!
【情感判断】: 肯定的
【输入】: 音箱的声音太小了,还有点沙哑,不是我想要的效果。
【情感判断】: 否定的
【输入】: 这台洗衣机清洗效果一般,但是它的节能功能还是挺不错的。
【情感判断】: 中性的
除了文本情感分析,我们还可以将此模式用于其他任务,例如文本分类、命名实体识别甚至是机器翻译等。
  1. 1. 文本分类: 通过举例模式,你可以给模型展示一些新闻标题,并告诉它每个标题属于哪个类别(例如,体育、政治、科技等)。例如:
    【输入】:“中国女足夺得世界冠军!”
    【类别】:体育
    在给出一系列这样的例子后,模型可以自动将新的新闻标题分类,从而达到自动化的文本分类效果。
  2. 2. 命名实体识别: 命名实体识别是从非结构化文本数据中识别特定类别的信息(如人名、地名、组织名等)。你可以通过展示一些句子,并标注出其中的人名、地名等特定实体,从而让模型学会识别未标注句子中的命名实体。例如:
    【输入】: “比尔·盖茨是微软的创始人。”
    【实体】:“比尔·盖茨, 人名; 微软, 组织名”
    这样的方式可以帮助模型了解在新的句子中如何识别命名实体。
  3. 3. 机器翻译: 通过提供一些句子及其对应的翻译,模型可以学习在两种语言之间转换。例如,你可以展示如下的例子:
    【输入】 : “我爱学习新的语言。”
    【翻译】 : “I love learning new languages.”
    在多个这样的例子之后,模型将学会在特定的两种语言之间进行翻译。
提示词模板
【输入】:输入内容
【输出】:输出内容
【输入】:输入内容
【输出】:输出内容
【输入】:输入内容

这里有几点需要特别注意:
  1. 1. 【输入】/【输出】代表”前缀“,它们是可以按需替换的(比如问题/回答,标题/类别,中文/英文),而且前缀最好不要用“输入/输出”,因为它们实际上没有告诉GPT太多的额外信息(上下文)。但不论如何,请保持案例之间的前缀格式的统一
  2. 2. 你给出的输入内容和输出内容最好是具体的且能合理地从输入推导到输出(有规律可学习)。
  3. 3. 更为关键的一点是,举例中的内容不一定要是正确的!换句话说即使中间有错误,也不会影响GPT接下来的判断,因为“形式大于内容”。如下面的例子:
提示词示例
1.给出正确判断的输入
图片
2.给出错误判断的输入
图片
在第二个案例中,我们故意颠倒了前两次的判断结果作为输入,但这并不会影响GPT对第三句的判断结果。
3.你也可以在给出一些输入/输出后,让GPT自己按这个模式生成更多的案例,可以以此作为对大模型进行微调的语料。
图片
少样本学习的方法不仅节省了时间,还可以针对特定应用场景进行高度定制。通过不断调整和优化示例,可以使模型的输出更有效。此外,通过对示例逐渐增加复杂度,我们甚至可以在不需要编程的情况下训练模型执行复杂任务。同时,“少样本学习”模式是下一篇要介绍的“思维链”模式(Chain of Thoughts Pattern)的基础。

未完待续

本文分享了另外三种设计模式,它们也都是构建高效提示词的核心。还是那句话:运用之妙,存乎一心。希望学习和探索的过程中,你能对任何挑战保持开放的心态,并以创新的方式寻找更佳的答案。
另外,如果你觉得这篇文章还不错,欢迎关注、点赞和转发。今天先到这里,期待下次再见。Stay tuned😄


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多