主题
03-提示词:怎样与大模型沟通
你好,我是郑晔!
通过前面的学习,我们已经从整体上了解了大模型,想必你已经摩拳擦掌准备充分利用大模型做点事情了。使用大模型,最直接的方式就是输入一段信息,让大模型根据我们的输入生成相应的内容。我们提供给大模型的信息就是提示词。
如果用过任意一个大模型,你就会发现,不同人的使用效果千差万别。有的人能运用它完成各种工作任务,有的人却只能通过它得到一些无关痛痒的内容,其中的差异就是每个人使用技能上的差异。
同前面讲大模型特点类似,关于如何使用 GPT,我们也会分成两个视角:用户视角和技术视角。这一讲,我们先从用户视角来看看如何用好 GPT。
用好 GPT
如果想用好 GPT,那么需要做到以下几点:
- 定义任务目标;
- 给 GPT 下达命令;
- 根据生成的结果进行调整。
与 GPT 交互的第一步是定义任务目标。一个明确、清晰的目标可以使 GPT 更好地理解用户的意图,帮助用户生成更加符合要求的内容。
很多时候你无法得到有效结果,根本原因是目标不清晰。比如,你希望 GPT 帮你生成 10 条文案用来发到某个社交媒体,却只告诉它“生成文案”,自然很难得到预期的结果。
明确任务目标之后,我们就可以给 GPT 下达命令了。不同的命令,其效果是不一样的,这里的“命令”就是“提示词”。虽然我们面对的是同样的 GPT,但提示词运用上的差异会带来结果上的差异。
接下来,我们讨论的重点就是怎样写好提示词。不过,在此之前,先来看看用好 GPT 的最后一步——根据结果进行调整。
这里的调整分为两个方面。一方面,如果你对生成的结果不太满意,则可以修改提示词,要求 GPT 重新生成一个回答。我们可以修改提示词的措辞或是增加更多的上下文信息,让 GPT 对你的意图有个更清晰的理解,然后重新生成回答。很多时候,通过这种方法,我们可以得到更加切合需要的新回答。
另一方面,如果你对生成的结果基本满意,那么往往还可以对该结果进行人工调整。这是因为 GPT 生成的内容是相对通用的,而有时候我们需要更有自己特点的内容,例如,当你让 GPT 写一封邮件时,虽然它写的内容还可以,但看上去非常像一篇公文,这时我们就可以通过人工修改,让这些内容看上去更像出自我们自己的手笔,这个过程可以称为“加人味儿”。
现在,我们已经对怎样用好 GPT 有了一个基本的理解,接下来进入更为关键的部分——怎样写好提示词。
一个公式
站在用户的视角,写好提示词只需要掌握一个提示词公式即可,这个公式就是:
提示词=定义角色+背景信息+任务目标+输出要求
为了让你对这个公式有一个直观的认识,我们先来看一个例子。

在这个例子里,我们给大模型设定的角色是文案助手,背景信息是通知毕业班学生周三下午到学校大礼堂听升学专家的分享,任务目标是写一封邮件,输出要求是字数在 200 字以内。可以看到,GPT 基本上是按照我们的设想写了一封还不错的邮件。
有了初步的了解之后,接下来,我们来解析一下前面那个公式。
定义角色
定义角色的作用是为 GPT 赋予特定的角色,让其从特定的角度进行思考和回答。例如,可以让它扮演历史学家的角色,从历史的角度回答我们的问题;也可以让它扮演医生的角色,从医学的角度回答我们的问题。一旦被赋予了特定的角色,GPT 就可以根据这个角色的知识和经验,给出更为准确和专业的回答。
前面我们讨论过大模型的基础实现,大个模型本质上就是基于上下文信息推断下一段要输出的内容。如果不给它提供额外信息,那么它生成的内容就是通用的。我们给 GPT 设定了角色,相当于给它提供了额外的上下文信息,这样它就能针对这个上下文信息进行内容输出了。正是因为如此,GPT 才具备了“知人晓事”的特点。
同样是回答医学问题,如果让 GPT 扮演医生的角色,那么它输出的内容就会与诊断治疗相关,而如果让它扮演医学论文写作者的角色,那么它生成的内容就会更加专业。由此可见,定义一个特定的角色对 GPT 而言,是非常重要的。
除了扮演一个特定角色,反过来,我们也可以让自己扮演一个角色,让 GPT 针对我们的角色进行解释。例如,针对某一问题,我们可以扮演一个初学者的角色,让 GPT从基础的角度进行解释;或者扮演一个专业人士的角色,让 GPT 从专业的角度进行解释。通过定义自己的角色,GPT 可以根据我们的知识水平和需求,给出更为恰当和贴合实际的回答。下面就是一个例子。

在这个例子里,我们分别扮演了成年人和小学生两个角色让 GPT 给我们解释什么是微积分。对比两段关于微积分的解释,很明显,给小学生解释的版本要更加浅显易懂。
背景信息
背景信息指的是为 GPT 提供与任务相关的背景知识,包括但不限于相关概念、事件、人物等。这些背景信息将有助于 GPT 更好地理解任务,并为产生正确的内容和回答提供支持。
这和我们在日常工作中与领导进行沟通是类似的。当接到领导下派任务时,我们肯定希望领导能够把各种背景信息、前因后果一次性交代清楚,否则,我们就只能靠着自己的悟性去发挥了。同样,当面对 GPT 这个“下属”时,我们也要尽可能地给它提供更多的信息,让它对自己面对的任务有更深刻的理解。我们提供的信息越充分,GPT 的回复就越接近我们的需求。
在下面这个例子里,我们要求 GPT 写一首七言绝句,它很快就生成出来了,但内容非常随机。

而当我向它提供更多的背景信息之后,它生成的内容更接近我的需求了。

任务目标和输出要求
如果说定义角色和背景信息是我们在帮助 GPT 更好地理解我们,那接下来要讲的“任务目标”和“输出要求”则是我们对 GPT 提出的要求。
关于任务目标,前面已经讲过了,这是我们在一开始就应该想好的事情。任务目标越清晰,越有利于 GPT 帮助我们完成工作。
在明确 GPT“给谁在什么背景下完成什么样的工作目标”的定义之后,我们就来到了整个提示词的最后一步:输出要求。在这一步,我们可以告诉 GPT 用什么样的方式完成任务,比如格式上是纯文字,还是要有表格;回复的节奏是一步一步的,还是要给出一个整体的输出。
下面是一个例子。我让 GPT 给我安排一个到西安旅游的行程,要求输出的格式是一张表格,GPT 很好地完成了我的需求。

至此,我们已经对用什么样的提示词给 GPT 下达命令,让它帮助我们更好地完成工作有了完整的了解。在大部分情况下,前面给出的提示词公式能够帮助我们更好地指导 GPT 完成各种任务。
虽然这个公式在使用 GPT 时很有帮助,但我们也要意识到它并非苛刻的模板。因此,我们需要根据具体情况来灵活应用这个公式,并进行适当的调整和修改。
在实际的使用过程中,有时我们需要 GPT 帮我们解决一些具有复杂性或不确定性的问题。我们很难一次性地提供解决问题的所有信息,所以,GPT 返回的答案可能就不够完整或不够准确。
我们往往是在看到 GPT 的回复之后,才能发现一些信息的缺失。这时,我们需要向 GPT 提供更多信息,让它重新调整自己的回答。与 GPT 的连续对话可以让我们更好地理解问题,更加清晰地表达自己的需求。
虽然我这一讲都在说如何使用 GPT,但实际上,这个使用方式完全可以用在与其它大模型的沟通过程中,因为各个大模型的工作原理都是类似的。
总结时刻
这一讲,我们站在用户的角度说明了如何用好大模型。想用好 GPT,我们需要:
- 定义任务目标;
- 给 GPT 下达命令;
- 根据生成的结果进行调整。
给 GPT 下达命令,关键点是写好提示词,我们需要掌握一个提示词公式:

我们逐一解释了提示词公式的各个部分,探讨了如何写好提示词,本质上,就是给大模型提供充足的上下文信息,以便大模型更方便地推导应该生成怎样的内容。
如果今天的内容你只能记住一件事,那请记住:提示词=定义角色+背景信息+任务目标+输出要求。
练习题
我们今天讨论了如何用好大模型,接下来我们就来实践一下,如果你要学习一门新的技术(程序设计语言、编程框架、程序库、技术概念等等),请结合自身的实际情况,让大模型帮你设计一条学习路线,欢迎在留言区分享你与大模型的对话。