Prompt Engneering(提示词工程)

大模型的目标是理解和生成人类语言。给定一些词语,语言模型可以预测下一个词语可能是什么,或者给定的一些词语生层对应内容。

那么如何引导它们产生期望的输出,或者说如何提问,就成为了一个关键的问题。这就引入了一个重要的概念,即"Prompt Engineering",也就是提示工程。

什么是提示词(Prompt)?

如何向大语言模型提问,或者更好的提问,就是指提示词(Prompt);提示词是给LLM(大语言模型)的指令,它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。LLM会基于 prompt 所提供的信息,生成对应的内容从而获得符合预期的结果。

什么是提示工程(Prompt Engineering):

Prompt Engineering 是一种人工智能(AI)技术,它通过设计和改进 AI 的 prompt 来提高 AI 的表现。通俗而言,是指如何在不更新模型权重的情况下与 LLM 进行沟通,以引导LLM的输出得到更有意义结果的方法。Prompt Engineering 的目标是创建高度有效和可控的 AI 系统,使其能够准确、可靠地执行特定任务。但是我们要知道,我们发给大模型的 prompt,不会改变大模型的参数。和大模型对话,不会让 ta 变聪明,或变笨。但对话历史数据,可能会被用去训练大模型。

学会提示工程,就像学用鼠标、键盘一样,是 AGI 时代的基本技能。

  • 「Prompt」 是 AGI 时代的「编程语言」
  • 「Prompt 工程」是 AGI 时代的「软件工程」
  • 「提示工程师」是 AGI时代的「程序员」

想让机器很好地理解人类说的话,还需要一个过程,因为人类的语言从根本上说是不精确的,这个过程可能3年,可能5年,但不会太长。即使过程不会太长,但提示工程依然是需要我们掌握的。

Prompt 的典型构成

角色:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」
指示:对任务进行描述
上下文:给出与任务相关的其它背景信息(尤其在多轮交互中)
例子:必要时给出举例,学术中称为 one-shot learning, few-shot learning 或 in-context learning;实践证明其对输出正确性有很大帮助
输入:任务的输入信息;在提示词中明确的标识出输入
输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、XML)

类似下边例子,可以指定角色,给定描述,然后提出问题:
在这里插入图片描述
在这里插入图片描述

提示工程种类

随着提示工程的进步,可以分为三类:

  • Zero-shot:仅使用当前任务的自然语言描述,不进行任何梯度更新;
  • One-shot:当前任务的自然语言描述,加上一个简单的输入输出样例,不进行任何梯度更新;
  • Few-shot:当前任务的自然语言描述,加上几个简单的输入输出样例,不进行任何梯度更新;

chatGPT 的发展史,就是从 zero-shot 到 few-shot。

Zero-shot Learning

Zero-shot learning(零样本学习),零样本学习是指该模型可通过从未见过的类别进行分类,使机器具有推理能力,实现真正的智能。

从原理上来说,ZSL 就是让计算机模拟人类的推理方式,来识别从未见过的新事物。之所以独立出来,是因为它解决问题的思路不同于传统的机器学习方法。

首先通过一个例子来引入zero-shot的概念。假设小明和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小明安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小明有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小明根据爸爸的提示,在动物园里找到了斑马。

上述例子中包含了一个人类的推理过程,就是利用过去的知识(马,老虎,熊猫和斑马的描述),在脑海中推理出新对象的具体形态,从而能对新对象进行辨认。(如图1所示)ZSL就是希望能够模仿人类的这个推理过程,使得计算机具有识别新事物的能力。
ZSL就是希望我们的模型能够对其从没见过的类别进行分类,让机器具有推理能力,实现真正的智能。其中零次(Zero-shot)是指对于要分类的类别对象,一次也不学习。

One-Shot Learning

一次样本学习(One-Shot Learning)是一种只需要一个样本就能学习新类别的方法。这种方法试图通过学习样本之间的相似性来进行分类。例如,当我们只有一张狮子的照片时,一次样本学习可以帮助我们将新的狮子图像正确分类。

Few-Shot Learning

少样本学习(Few-Shot Learning)是介于零样本学习和一次样本学习之间的方法。它允许模型在有限数量的示例下学习新的类别。相比于零样本学习,少样本学习提供了更多的训练数据,但仍然相对较少。这使得模型能够从少量示例中学习新的类别,并在面对新的输入时进行准确分类。

Prompt 调优

找到好的 prompt 是个持续迭代的过程,需要不断调优。比如按照模型友好的格式提供prompt,更有利于得到我们想要的答案。

  • OpenAI GPT 对 Markdown 格式友好
  • OpenAI 官方出了 Prompt Engineering 教程,并提供了一些示例
  • Claude 对 XML 友好。

另外高质量 prompt 核心要点是:具体、丰富、少歧义。
最有效的方式就是多试,「试」是常用方法,有时一字之差,对生成概率的影响都可能是很大的。

  • 28
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子松的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值