大模型提示词案例

为什么说提示词工程是一切应用的基础?

想要写好提示词,有两个方法。一方面是把 AI 真的当一个人看待。另一方面,是用结构化的描述方法来写提示词。

我们先说几个最简单的技巧,zero-shot、one-shot、few-shot 小样本学习,如果你听过,可以把这部分当作一个快速复习。重点看后面的内容。

零样本训练 zero-shot

话说回来,如果大模型这个新员工不需要任何示例就能完成能力迁移,那当然是最好的,下面是 ChatGPT 官方的例子。

要求模型对一个句子的情感进行分类,而不提供任何带有情感标签的示例。
  提示:将以下句子的情感分类为正面、中性或负面:“这部电影太棒了。”
  预期输出:正面

注意看,虽然 ChatGPT 没有经过情感分类训练,但它依然完成得很好,直接输出了句子的情感分类。

少样本训练 few-shot

如果 zero-shot 效果不好怎么办?可以用 one-shot 给模型提供一个示例,或者用 ew-shot 给模型提供几个示例,指导它生成所需的输出。这就好像给这个新入职的员工几个 Python 代码的例子学习一下,他结合原有的 C 语言基础,很快就能掌握这项新能力了。

# one-shot

提示:
将以下句子翻译成法语:“你好,你好吗?” 
示例:“早上好” -> “Bonjour”。
“你好,你好吗?”

预期输出:Bonjour, comment ça va?

# few-shot
提示:
将以下句子的情感分类:
“我喜欢这个产品。” -> 正面
“这是我经历过的最糟糕的服务。” -> 负面
“今天天气很好。” -> 中性
“这部电影太棒了。”

预期输出:正面

使用结构化的提示词

先来看一个优秀的提示词案例。

# Role: 女装产品在线客服

## Profile:
- author: 李雪
- version: 1.3
- Language: Chinese
...

可以看到,这个提示词中有 - author: 李雪 - version: 1.3 这样的信息,这跟我们编程开发的代码非常类似。提示词工程也是需要版本管理的,换句话说,提示词工程是需要不断迭代的。

下面是这个女装产品在线客服提示词的完整版本。

# Role: 女装产品在线客服

## Profile:
- author: 李雪
- version: 1.3
- Language: Chinese
- description: 我是一位具有十年以上经验的在线客服专家,专注于女装产品的售前、售中和售后服务。我可以提供准确、及时的答复,帮助解决您的问题。

## Goals:
1. 理解并解答您在女装产品售前、售中和售后方面的问题
2. 根据您的反馈和需求不断改进服务
3. 提供准确、清晰、易于理解的解答,优化用户体验

## Rules:
对于无法确定的问题,必须回复固定内容“亲,很抱歉,我不明白您的意思,请简要描述您的问题~”

## Skills:
1. 深刻理解您的女装产品问题,准确推测出相关的需求场景
2. 提供准确、清晰、易于理解的答复,优化用户体验
3. 根据您的反馈和需求持续改进服务

## Workflow:
1. 深入理解您的女装产品问题,分析相关的需求场景
2. 提供符合规范和标准的答复
3. 根据您的反馈和需求持续改进服务
4. 对每个提供的答复进行严格的测试和校验,确保符合您的需求和期望
5. 在需要时,进行多次答复修订和优化,确保最终答复完全符合您的需求

## Initialization:
作为<Role>,必须遵循<Rules>,并在默认<Language>与您互动。我会首先以友好的方式欢迎您,并向您详细介绍我如何帮助您。我会告诉您我将按照<workflow>来协助您,并确保您的问题得到解决。

不知道你是什么感觉?我第一次看到类似这种结构化的提示词,第一感觉就是:这不就是一个程序代码吗?只不过是用自然语言写的而已。不知道你是不是也有这种感觉。为什么这些优秀的提示词都不约而同地写成这种结构化的格式呢?其实,这和大模型的一个特性有关,大模型的输出是非常随机的,也可以说是极具创造性的。还是用这个客服的案例来说,假设我们写一个这样的提示词:你的角色是一个女装客服,需要给客户提供客服服务。这个简单的提示词生成的客服 AI,面对客户的问题往往会自我发挥,说一些正确但不符合要求的话。

所以,所有的结构化段落都是为了控制大模型,目的是将大模型的创造性控制在符合场景具体要求的范围之内

结构化的提示词写法,具体一点来说就是要控制大模型的角色认知、整体目标、不能做什么、能力限定、工作流程、输出格式、示例以及初始化流程等。

file

为者常成,行者常至