你还在用听不懂人话的 ChatGPT 吗?

你还在用听不懂人话的 ChatGPT 吗?

腾小云导读

近年来,大模型如 ChatGPT 等愈发强大的生成才干一次次引爆职业评论。你真的玩了解 GPT 等等 AIGC 工具了吗?它是否满足“听话”、了解并满足你一切的需求?提示词工程是激活大模型才干的要害所在。能够说谁掌握 Prompt Engineering 才干,谁就拿到了激活大模型强才干的钥匙。本篇文章讲述了 Prompt Engineering 的根底实用技巧和进阶操作门道,无论你是 AIGC 入门小白仍是已上手的玩家,看完文章将会有新启示。欢迎阅览~

目录

1 什么是提示工程

2 提示工程根底

2.1 提示四要素

2.2 通用技巧 2.3 简略提示解析

3 提示工程进阶

3.1 零/少样本提示

3.2 思维链提示

3.3 Explicit 思维链

3.4 自动提示

3.5 思维树 3.6 脑筋风暴提示

3.7 多模态思维链

3.8 一致性提示

3.9 Progressive-Hint 提示
3.10 Plan-and-Solve 提示
3.11 增强(检索)提示

4 懒人全能提示工程

01、 什么是提示工程

提示工程是一门新兴学科,就像是为大言语模型(LLM)规划的”言语游戏”。通过这个”游戏”,咱们能够更有用地引导 LLM 来处理问题。只要熟悉了这个游戏的规矩,咱们才干更清楚地认识到 LLM 的才干和约束。

这个”游戏”不仅协助咱们了解 LLM,它也是进步 LLM 才干的途径。有用的提示工程能够提巨大言语模型处理复杂问题的才干(比方一些数学推理问题),也能够提巨大言语模型的扩展性(比方能够结合专业范畴的常识和外部工具,来进步 LLM 的才干)。

提示工程就像是一把钥匙,为咱们了解和应用大言语模型打开了新的大门,无论是现在仍是未来,它的潜力都是无穷无尽的。

02、提示工程根底

2.1 提示四要素

一般一个 Prompt 会包含以下四个元素中的若干个:

指令:期望 LLM 履行什么使命;上下文:给 LLM 供给一些额定的信息,比方能够是垂直范畴信息,然后引导 LLM 给出更好的答复;输入数据:期望从 LLM 得到什么内容的答复;输出格局:引导 LLM 给出指定格局的输出。

2.2 通用技巧

  • 由浅入深

规划提示词经常是一个迭代的进程,需求不断试验才干取得最佳成果。你能够从简略的提示词开始,跟着试验深入,逐步增加更多的元素和上下文。在处理复杂使命时,能够将使命分化为简略的子使命,逐步构建并优化。

比方你想让一个言语模型来写一首关于春天的诗。一个简略的提示词或许是:“写一首关于春天的诗。” 跟着你对模型输出的调查,你或许发现需求更详细的指示,例如:“写一首四行关于春天的诗,用押韵的方法。”

  • 清晰指令

规划有用的提示词,最好是运用清晰的指令来辅导模型完结你想要的使命,如“写作”、“分类”、“总结”、“翻译”、“排序”等。然后,依据详细使命和应用场景,测验运用不同的要害词、上下文和数据,找出最佳的组合。

假设你期望模型能够将一段英文翻译成中文。你能够开始运用这样的提示词:“将以下文本翻译成中文”,接着供给你要翻译的英文段落。可是,假如你期望翻译得更具有正式感,你或许需求增加更多上下文:“将以下的正式英文陈述翻译成平等正式的中文。”

  • 清晰细节

当你需求模型履行特定使命或生成特定风格的内容时,详细且清晰的提示词会得到更好的成果。

假如你想要模型生成一段描绘美食的文本,你或许会这样指示:“描绘一道美味的意大利面。”可是,假如你期望得到关于某个特定菜品的详细描绘,你或许需求指示得更详细:“描绘一道由新鲜西红柿、大蒜、橄榄油和罗勒叶制成的意大利面的味道和口感。”

  • 清晰需求

这儿的清晰类似于给 LLM 限定一些规模,而不是泛泛而谈。

比方你或许期望模型解说一个科学概念,例如:“解说相对论。”但假如你需求用非专业的言语来描绘,你或许需求更清晰的指示:“用易于了解的非科学言语解说爱因斯坦的相对论。”

  • 正向引导,防止反向约束

规划提示词时,防止指示模型不要做什么,而是清晰告知它应该做什么。这将鼓舞更多确实定性,并聚焦于引导模型产生好的回应。

例如,你正在规划一个电影引荐的聊天机器人。一种或许的提示词是:“引荐一部电影,但不要询问任何个人信息。”可是,更有用的提示或许是:“依据全球抢手电影引荐一部电影。”

2.3 简略提示解析

  • 场景:写一个关于自己的介绍

提示:“Reid 的简历:[张贴完整的简历在这儿]。依据以上信息,写一个关于 Reid 的风趣的演讲者简介。”

剖析:这个提示直接供给了 LLM 所需的信息,使得 LLM 能够依据给定的信息来编写一段介绍,并清晰了简历的风格和用途。

  • 场景:用五个要害总结一篇文章

提示:“[在这儿张贴全文]。总结上面文章的内容,用五个要害。”剖析:这个提示清晰地指出了使命——对文章进行总结,并拟定了输出的形式——五个要害。

  • 场景:写一篇关于生产力的博客

提示:”写一篇关于小型企业的生产力重要性的博客文章。”

剖析:这个提示供给了清晰的上下文,告知 LLM 所需的内容类型(博客),以及博客文章需求包含的详细主题(小型企业的生产力的重要性)。

  • 场景:写一首诗

提示:“以李白的风格写一首关于落叶的诗。”

剖析:这个提示要求 LLM 以特定的风格(李白的风格)写诗,并给出了诗的主题(落叶)。这让 LLM 知道了应该选用的写作风格和主题。

  • 场景:关于怎么练习小狗的文章

提示:“作为一名专业的狗练习师,写一封电子邮件给一位刚刚得到一只3个月大的柯基的客户,告知他们应该做哪些活动来练习他们的小狗。”

剖析:在这个提示中,咱们要求 LLM 扮演一个特定的角色(狗练习师),并供给特定的上下文信息,如狗的年龄和类型。咱们也指出了咱们想要的内容类型(电子邮件)。

03、提示工程进阶

3.1 零/少样本提示

Zero-Shot Prompting: 在这种情况下,模型接收到的提示没有包含任何特定使命的示例。这意味着模型需求根据给定的提示,而没有任何相关使命的从前示例,来揣度出应该履行的使命。例如,假如咱们向模型供给提示 “Translate the following English text to French: ‘Hello, how are you?'”,那么模型将要依据这个提示,而没有任何额定的翻译示例,来履行翻译使命。

Few-Shot Prompting: 在这种情况下,模型接收到的提示包含了一些(一般是几个)特定使命的示例。这些示例作为上下文,供给了关于期望输出的头绪。例如,假如咱们想要模型进行文本翻译,咱们或许会供给如下的提示:

English: 'Cat' 
French: 'Chat'
English: 'Dog'
French: 'Chien'
English: 'Bird'
French: 'Oiseau'
English: 'Elephant'

在这个例子中,模型通过前三个英法翻译对的示例,了解了咱们期望它将 ‘Elephant’ 从英文翻译成法文。因而,它会输出 ‘lphant’。

3.2 思维链提示

思维链的思维其实很简略,便是给 LLM 通供给一些考虑的中心进程,能够是用户供给,也能够让模型自己来考虑。

少样本思维链: 便是用户供给一些“解题进程”,如下图所示,左侧直接让 LLM 答复问题时它给出了过错的答案,可是右侧通过在 Prompt 中告知模型解答进程,终究给出的答案便是精确的。

你还在用听不懂人话的 ChatGPT 吗?

零样本思维链: 厌弃供给中心进程太麻烦?偷闲的办法来了,零样本思维链通过一句 magic prompt 实现了这一目标 “Let’s think step by step”。

你还在用听不懂人话的 ChatGPT 吗?

可是过于简化的办法肯定也会存在一定约束性,比方 LLM 或许给出的是过错的考虑进程。因而有了自动化思维链,通过选用不同的问题得到一些推理进程让 LLM 参阅。它的中心思维分两步:

首要进行问题聚类,把给定数据集的问题分为几个类型;

采样参阅案例,每个类型问题挑选一个代表性问题,然后用零样本思维链来生成推理的中心进程。

你还在用听不懂人话的 ChatGPT 吗?

3.3 Explicit 思维链

这个工作的首要意图是让 LLM 在对话时考虑用户的状况,比方用户的 personality, empathy 和 psychological,遵从的仍是思维链套路,而且将思维链拆成了多个进程(LLM 每次答复一点,不是一次性根据思维链悉数答复)。这样的优点在于用户还能够修改、删去中心进程的一些答复,原始的上下文和一切中心进程都会用于终究答复的生成。

你还在用听不懂人话的 ChatGPT 吗?

3.4 自动提示

本质上仍是思维链,因为人工规划的思维链或许自动化思维链的成果也并不一定抱负(思维链的规划跟详细使命相关),因而提出了用不确定性来评估思维链的好坏,然后再让人来修正一些不确定性比较大的思维链。

你还在用听不懂人话的 ChatGPT 吗?

3.5 思维树

Tree of Thoughts(ToT)是思维链的进一步拓宽,首要想解决 LM 推理进程存在两个问题:不会探究不同的或许挑选分支;无法在节点进行前后向的探究。

ToT 将问题建模为树状查找进程,包含四个进程:问题分化、想法生成、状况点评以及查找算法的挑选。

你还在用听不懂人话的 ChatGPT 吗?

3.6 脑筋风暴提示

首要考虑的是代码生成方向,不过思维仍是能够用在各种范畴的发问。中心思维分为三步:

脑筋风暴: 通过多个 Prompt 喂给 LLM 得到多样化的“思路”;

挑选最佳思路: 这儿用了一个神经网络模型来打分,并用最高分的思路来作为终究 Prompt;

代码生成: 根据问题和挑选出来的最佳思路进行代码生成。

你还在用听不懂人话的 ChatGPT 吗?

3.7 多模态思维链

本年一些需求多模态 LLM 也被提出,天然也有了一些多模态提示工程的测验,它包含两个阶段:

理由生成: 在这个阶段,咱们将言语和视觉输入供给给模型,以生成推理的理由。这个理由能够看作是解决问题的中心进程或考虑链的一部分。这个进程能够协助模型了解问题的上下文,并为下一步的答案揣度做好预备。

答案揣度: 在这个阶段,咱们将从第一阶段生成的理由增加到原始的言语输入中。然后,咱们将更新后的言语输入和原始的视觉输入一起供给给模型,以揣度出答案。这个进程允许模型利用在理由生成阶段取得的信息来做出更精确的揣度。

你还在用听不懂人话的 ChatGPT 吗?

3.8 一致性提示

中心思维便是少数服从多数,多让模型答复几次(这儿的发问也用到了少样本思维链),然后在 LLM 的屡次答复中挑选出现屡次的答案。

你还在用听不懂人话的 ChatGPT 吗?

3.9 Progressive-Hint 提示

Progressive-Hint Prompting(PHP)类似于一致性提示的进阶,企图模仿人类推理的进程,通过重复检查和修正答案来进步推理的精确性。详细来说,PHP 办法会对上一次的推理进程进行处理,然后将其合并到初始问题中,让模型进行再次推理。当接连两次的推理成果一致时,就认为得出的答案是精确的,并返回终究答案。

在 PHP 办法中,初次与 LLM 交互运用的 Prompt 称为根底提示(Base Prompting)。根底提示能够是规范提示、CoT 提示或许其他改进版本的提示。在随后的交互中,将运用 PHP 提示,直到最新的两个答案一致。

你还在用听不懂人话的 ChatGPT 吗?

3.10 Plan-and-Solve 提示

Plan-and-Solve 提示的规划理念是让模型拟定一个解决问题的计划,然后依照这个计划来履行子使命,以此达到清晰生成推理进程的作用。

你还在用听不懂人话的 ChatGPT 吗?

为了进一步增强 PS 提示的作用,作者扩展了它,形成了一种名为 PS+的新提示方法。PS+提示在 PS 提示的根底上,增加了“pay attention to calculation”这样的引导句子,要求模型在核算进程中愈加精确。为了防止模型在处理问题时忽略了要害的变量和数值,PS+提示还增加了“extract relevant variables and their corresponding numerals”这样的引导句子。此外,为了强化模型在推理进程中核算中心成果的才干,PS+提示也加入了“calculate intermediate results”这样的引导句子。通过这种方法,PS+提示进一步进步了模型在处理多步推理使命时的作用。

3.11 增强(检索)提示

增强 LLM 本质上在做的工作仍是进步提示词的信息,然后更好地引导模型。这儿首要能够有两种方法,一种是用自己的私有常识库来扩充 LLM 的常识,一种是借用 LLM 的常识库来进步 Prompt 的信息量。

3.11.1 外部常识库

  • 本地常识库

这儿能够结合网上的信息或许个人的本地信息,假如是结合网上的信息(比方 newbing),其实便是需求结合一些爬虫工具,捞出一些相关信息一起拼到 Prompt 傍边(也会需求比方做一些相关性的比较、摘要等)。结合本地常识库也是现在业界内比较重视的方向,首要有以下几步:

将本地常识库转为 embedding 保存。 关于用户发问转为 embedding,然后去数据库查相关的信息。 检索出本地常识库相关的信息后,比方能够用如下提示拼接上检索出来的信息。
Use the following pieces of context

这样 LLM 在答复时就能利用上私有的常识了。

你还在用听不懂人话的 ChatGPT 吗?

3.11.2 LLM常识库

  • 常识生成提示

因为 LLM 本身具有很多的通用常识储藏,仅仅你不提示它一下或许难以在很多常识中找出来给你答复。关于一些问题,咱们能够先让 LLM 产生一些相关的常识或事实(比方Generate some numerical facts about xxx),然后再利用这些辅佐信息和本来的问题来发问,Knowledge 处放上 LLM 给出的一些事实信息。

Question:
Knowledge:
Explain and Answer:

你还在用听不懂人话的 ChatGPT 吗?

前面提到的 Clue And Reasoning 提示其实也属所以在借用 LLM 的常识库。

  • Clue And Reasoning 提示

Clue and Reasoning Prompting (CARP) 是一种用于文本分类的办法,它首要提示大型言语模型(LLMs)寻找外表头绪,例如要害词、语调、语义联系、引证等,然后根据这些头绪引导出一个诊断推理进程进行终究决策。

你还在用听不懂人话的 ChatGPT 吗?

(其实也适用于其他场景,让模型帮忙供给点头绪再给出终究答案)

  • 常识反刍提示

尽管现有的预练习言语模型(PLMs)在许多使命上表现出色,但它们仍然存在一些问题,比方在处理常识密集型使命时,它们往往不能充分利用模型中的潜在常识。

你还在用听不懂人话的 ChatGPT 吗?

作者们提出了一种名为”Knowledge Rumination”的办法,通过增加像”As far as I know”这样的提示,让模型回忆相关的潜在常识,并将其注入回模型以进行常识稳固。这种办法的创意来自于动物的反刍进程,即动物会将食物从胃中带回口中再次咀嚼,以便更好地消化和吸收。

文章提出了三种不同类型的提示:

Background Prompt:这种提示旨在协助模型考虑背景常识。提示的形式是”As far as I know [MASK]”。这种提示鼓舞模型回忆和考虑其已经知道的一般信息或背景常识。 Mention Prompt:这种提示用于引发模型对提及的回忆。形式是”About [Mention], I know [MASK]”。这种提示鼓舞模型回忆和考虑与特定主题或实体(即”[Mention]”)相关的常识。 Task Prompt:这种提示旨在协助模型回忆使命的回忆。例如,关于情感剖析,提示是”About sentiment analysis, I know [MASK]”。这种提示鼓舞模型回忆和考虑与特定使命(例如情感剖析)相关的常识。

04、懒人全能提示工程

现在网上已经有不少 Prompt 优化工具,比方 ChatGPT 的插件中就有一个不错的工具 Prompt perfect,能够根据用户给的 Prompt 进行优化,再喂给 ChatGPT 进行发问。

你还在用听不懂人话的 ChatGPT 吗?

当然,通过前面那么多提示工程的介绍,大家也能够考虑一下,怎么用一个提示工程来协助自己写提示工程,下面是笔者之前做的一个工具,提示词的作用肉眼可见进步。感兴趣的也能够试试用 ChatGPT 来优化自己的 Prompt。欢迎转发共享~

你还在用听不懂人话的 ChatGPT 吗?

参阅文献:

Prompt Engineering Guide.

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.

Multimodal Chain-of-Thought Reasoning in Language Models.

Automatic Chain of Thought Prompting in Large Language Models.

Self-Consistency Improves Chain of Thought Reasoning in Language Models.

Chain-of-thought prompting for responding to in-depth dialogue questions with LLM.

-End-

原创作者|陈铭

技能责编|wallychen

ChatGPT 等 AIGC 工具 有哪些神奇的运用方法?欢迎在腾讯云开发者大众号评论区评论。咱们将选取1则最有意义的共享,送出腾讯云开发者-手腕垫1个(见下图)。7月4日正午12点开奖。

你还在用听不懂人话的 ChatGPT 吗?