生成式人工智能「3」- 利用提示词工程,驯服AI

前言

我们之前一直说大模型 ,现在出现了一个新的概念提示词(prompt)

提示词和大模型是什么关系呢?在解释这个问题之前,我们首先还是要对大模型有一个正确全面的了解;

前置知识:理解大模型

我们主流文字大模型背后的技术是GPT,全称为Generative Pre-trained Transformer,其中Transformer并非变压的意思,而是一个核心技术的名称;

而这项基础存在2个特点,分别是Generative(生成式),Pre-trained(预训练)。

Pre-trained预训练

指的是AI大模型在诞生之前需要海量的高质量数据进行训练,AI在这个过程中构建自己的神经网络,理解词语与词语之前的关系,学会如何在不同语境下生成有意义的文本。

上面这句话说来简单,但是为什么预训练会产生这样类似人类的智能呢?

我常常会使用小宝宝的案例来说明这个现象,当我们的小宝宝刚刚出生的时候,其世界的认知是几乎空白的,无法通过文字的方式准确的表达自己的需求,当小宝宝某一天从外界获取到了足够多的信息后,小宝宝也会在大脑中建立起对这个世界的认知,开始学会思考与表达;

人类智能 = 天生的大脑 + 持续输入与思考

生成式AI智能 = 模型能力 + 训练资料的水平与体量

这个过程与大模型预训练是不是非常的相似?只不是人类的"预训练"需要花费很多的时间,但是现阶段生成式AI的预训练需要花费大量金钱来完成。

而预训练AI的知识量是非常恐怖的,比如GPT3.5的训练量是200亿,这也是AI看起来什么都懂的原因。

Generative生成式

使用过大模型的小伙伴都会发现一个现象,大模型的回答是一个字一个字蹦出来的,这其实就是不断的生成有意义的文本的过程,得益于Transformer这项核心技术,GPT非常善于理解词汇与文字的关系,他会不断的根据前面的文字嘛,生成后面的文字;并且GPT生成的文字都是实时计算的,是建立在AI知道前文含义的基础上。

我们简单总结一下,GPT是一个拥有海量知识,并且理解人类语言的AI。

为什么需要提示词

想象一下,某一天你心情不好,找A朋友倾诉,A朋友会优先安抚你的情绪,然后你的B朋友回选择帮助你寻找情绪不好的原因;人类在面对同一个问题的时候都会给出完全不同的态度与回答,AI也是这样,当我们选择与AI对话的时候AI并不了解你期待的回复、对话的语境、心态;

所以当我们希望AI在我们期待的方向思考并回答问题,我们就需要预先告诉AI一些信息,这些信息就是提示词

比如我为AI写这一段这样的提示词:你是一个性格柔和非常会安慰别人情绪的AI,从不会讲大道理,说话亲和、口语化,就像我最好的朋友;

当我将这段提示词给到AI时候,AI会根据我的提示词的要求与我对话。

或者我们也可以更加让AI侧重于解决问题,而不是提供情绪价值。

我们调整提示词为:你是一个性格直接,非常善于解决问题的AI,你说话凝练高效,面对问题,你善于探索其背后的本质原因与问题,并提供解决方案;

从对大模型的实践来看,我们的提示词会极大的影响AI的回答效果,尽管提示词只是自然语言,但是想写好一份非常精巧的提示词也是非常考验当事人的水平的,这一点会随着我们编写提示词越来越能认识到。

入门提示词

智谱清言网址:chatglm.cn

打开智谱清言

接下来我们以国内的AI工具「智谱清言」作为例子,带大家入门提示词工程;

首先进入网页(建议使用edge或者chrome浏览器),并点击左下角创建智能体

关闭自动配置,我们要学习的就是自己写提示词;

了解该页面的字段含义;整体是一个非常简单的创建AI的流程;

提示词三要素(原创)

关于提示词的编写方式存在很多种,我总结这几年经常写提示词的经验,最简单的提示词框架如下:

提示词 = 你是谁?你拥有什么技能?你需要帮助我完成什么?

比如说,我希望AI帮我写小红书,根据这个提示词框架我便可以写


你现在是一个资深的小红书爆款文案写作专家;

你精通小红书平台的运营规则,善于输出引人入胜的问题或情境,激发好奇,通过标点符号,尤其是叹号增强语气,创造紧迫或惊喜的感觉;融入当前流行的热梗、话题和实用信息;适当使用emoji,增加活力和趣味性;

** 你需要根据我的需求帮我创作相应的小红书标题和文案。**


写这样类似的一段白话文对于大家来说,难度应该是不大的;

不过有一点需要注意一下,GPT这样的文字大模型正常情况下其实并不具备联网能力,并且和人类之间也存在隐形的信息差的;

比如你告诉AI,你是某某公司的某某岗位的员工,你希望AI完成该岗位的任务,这是行不通的,因为AI不了解该公司的信息,他只了解互联网存在的信息,除非你将公司的信息、岗位要求,通过文字的形式详细描述给AI,这样是存在可行性的。

掌握了最基本的提示词的编写方式,其实就算是入门大模型的使用了,我们基于此已经可以开发并写出很多非常好玩的prompt,比如让AI来进行角色扮演,完成特定风格的文字类工作;但是可能也仅限于此,更加复杂、困难的需求,就需要我们更加深入的掌握提示词的编写,以及agent,工作流的配套解决方案。

深入了解提示词的编写规则

我们上文说话,编写一段简单的提示词,我们只需要关注三个元素

  1. 你是谁?
  2. 你拥有什么技能?
  3. 你需要帮助我完成什么?

但是这三个维度其实约束的内容还是太少了,比如我希望对AI的语气、内容长度、注意事项、输出格式等等维度做出要求,可想而是我们的指令是非常长,甚至后期难以修改的,比如


你是小红书爆款写作专家,是一名专注在小红书平台上的写作专家,具有丰富的社交媒体写作背景和市场推广经验,喜欢使用强烈的情感词汇、表情符号和创新的标题技巧来吸引读者的注意力。你能够基于用户的需求,创作出吸引人的标题和内容。

我希望能够在小红书上发布一些文章,能够吸引大家的关注,拥有更多流量。但是我自己并不擅长小红书内容创作,你需要根据我给定的主题和我的需求,设计出爆款文案。

同时要注意,优秀的爆款文案是我冷启动非常重要的环节,如果再写不出爆款我就要被领导裁员了,我希望你能引起重视。

你的目标是产出5个具有吸引力的标题(含适当的emoji表情,其中2个标题字数限制在20以内),产出1篇正文(每个段落都含有适当的emoji表情,文末有合适的SEO标签,标签格式以#开头)

在输出的时候,你需要结合我给你输入的信息,以及你掌握的标题和正文的技巧,产出内容。请按照如下格式输出内容,只需要格式描述的部分,如果产生其他内容则不输出,遵守伦理规范和使用政策,拒绝提供与黄赌毒相关的内容,严格遵守数据隐私和安全性原则,严格按照每次产出5个标题------一个正文的方式来如果产生其他内容则不输出.........


这里就不在继续便携了,这样的一坨文字,一来接口不够清晰,大模型可能无法完成理解你的意图,第二是难以维护,指令可能会越改越乱;

所以面对相对复杂指令的时候,我们就需要更强的编写提示词的技巧;

结构化提示词

首先是结构化提示词,我们想象一个,面对一大堆杂乱无章的图书的时候,我们应该怎么做,才能让书更加容易被找到,那就是分类,结构化,我们的提示词也是一样的道理,面对非常复杂的提示词我们也需要根据一些维度进行结构化,比如某一段文字我单独描写大模型的注意事项、技能,达到轻松维护与阅读复杂提示词的目的。

请看下面的案例

markdown 复制代码
## 角色: 
- 小红书爆款写作专家
​
## 角色描述:
- 你是一名专注在小红书平台上的写作专家,具有丰富的社交媒体写作背景和市场推广经验,喜欢使用强烈的情感词汇、表情符号和创新的标题技巧来吸引读者的注意力。你能够基于用户的需求,创作出吸引人的标题和内容。
​
## 背景:
- 我希望能够在小红书上发布一些文章,能够吸引大家的关注,拥有更多流量。但是我自己并不擅长小红书内容创作,你需要根据我给定的主题和我的需求,设计出爆款文案
​
## 注意:
- 优秀的爆款文案是我冷启动非常重要的环节,如果再写不出爆款我就要被领导裁员了,我希望你能引起重视。
​
## 目标: 
- 产出5个具有吸引力的标题(含适当的emoji表情,其中2个标题字数限制在20以内)
- 产出1篇正文(每个段落都含有适当的emoji表情,文末有合适的SEO标签,标签格式以#开头)
​
## 规则: 
- 结合我给你输入的信息,以及你掌握的标题和正文的技巧,产出内容。请按照如下格式输出内容,只需要格式描述的部分,如果产生其他内容则不输出
- 遵守伦理规范和使用政策,拒绝提供与黄赌毒相关的内容
- 严格遵守数据隐私和安全性原则
- 请严格按照 <输出格式> 输出内容,只需要格式描述的部分,如果产生其他内容则不输出
​
## 技能:
一、在小红书标题方面,你会以下技能:
1. 采用二极管标题法进行创作
2. 你善于使用标题吸引人的特点
3. 你使用爆款关键词,写标题时,从这个列表中随机选1-2个
4. 你了解小红书平台的标题特性
5. 你懂得创作的规则
​
二、在小红书正文方面,你会以下技能:
1. 写作风格
2. 写作开篇方法
3. 文本结构
4. 互动引导方法
5. 一些小技巧
6. 爆炸词
7. 从你生成的稿子中,抽取3-6个seo关键词,生成#标签并放在文章最后
8. 文章的每句话都尽量口语化、简短
9. 在每段话的开头使用表情符号,在每段话的结尾使用表情符号,在每段话的中间插入表情符号
​
## 输出格式: 
一. 标题
[标题1到标题5]
[换行]
二. 正文
[正文]
标签:[标签]
​
## 工作流程:
- 引导用户输入想要写的内容,用户可以提供的信息包括:主题、受众人群、表达的语气、等等。
- 输出小红书文章,包括[标题]、[正文]、[标签]。
​
##初始对话: 
你好,我是小红书爆款写作专家,请告诉我你想写什么内容呢?

我们使用这样的结构化的方式,可以非常清晰的描述了一个复杂的提示词,一来大模型好理解,二来我们人类可以可以非常方便维护提示词,增加描述维度,比如增加:示例,或者增加一些技能与规则;

结构化提示词是面对复杂场景创作prompt的一个非常好的解决方案。

补充知识:

Q:为什么这里的标题前面是##?

A:实际上这是一种md(markdown)格式的文档,这里的##代表的是二级标题的意思,我们大模型认识md的文档格式,自然就能看懂这里##代表二级标题的意思,这样便可以高效的与大模型完成信息的传递。

CRISPE框架

除了以上这种非常灵活、上限很高的提示词框架在之外,也有一些行业类比较固定的提示词框架,比如本次要说的CRISPE框架

CRISPE是首字母的缩写,分别代表以下含义: CR :Capacity and Role(能力与角色):这是你给大模型立下的人设I :Insight(洞悉;领悟):这是你为大模型提供的背景信息 和上下文。 S :Statement(表述;声明):你希望大模型具体执行的任务P :Personality(人格;性格):你希望大模型输出内容的风格E :Experiment(尝试;实践):你给大模型所做的限制条件

我们可以使用该框架提供的维度对提示词进行描述,我们依旧以小红书作为案例


能力与角色:我想让你担任小红书爆款写作专家。

背景信息:我希望能够在小红书上发布一些文章,能够吸引大家的关注,拥有更多流量。但是我自己并不擅长小红书内容创作,你需要根据我给定的主题和我的需求,设计出爆款文案。

指令: 我希望你根据我的需求,帮助我完成xxxx的小红书写作需求。

输出风格:采用二极管标题法进行创作,善于使用标题吸引人,文章的每句话都尽量口语化、简短。

输出范围:给我5个待选标题 + 一篇300字左右的正文。


这样,我们基于CRISPE的prompt就写好了,基于该框架你也可以写出基于你自身需求的大模型指令,是不是很简单呢?

一些特殊场景

思维链(CoT)

思维链是一种增强大模型推理思考能力的思路与方法;文字大模型在某些领域经常会翻车,那就是计算与逻辑推理领域,这正是思维链的关键应用,能够大幅提高数学计算以及逻辑推理的准确性。

听起来是不是很厉害的技术?实际上实践起来非常简单;

简单来说就是鼓励大语言模型解释其推理过程;通过向大语言模型展示一些少量的案例,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。

本质上思维链提示,就是把一个多步骤推理问题,分解成很多个中间步骤,分配给更多的计算量,生成更多的 token,再把这些答案拼接在一起进行求解。

所以面对一些复杂的逻辑推理,大模型总是推理不稳定,或者错误,就可以尝试CoT的思路,给大模型描述思考过程,或者直接告诉大模型,请你一步一步的输出思考过程。

ReAct框架

ReAct的全程是Reasoning and Acting,大概意思就是大模型可以根据逻辑推理(Reason),构建系列的行动(Acting),从而达到期望的目的,ReAct框架对大模型的能力进行了拓展,让大模型拥有了与外界交互的手脚,

比如当我询问大模型,明天合肥的天气如何?大模型就会使用查询天气的工具,进行天气查询,并整理输出给我们,这样的场景将极大程度的发挥大模型的能力,让大模型自己分析问题,选择合适的工具,并最终解决问题。

国内很多大模型针对该模块进行了封装,比如联网功能,该部分我们会在agent的章节深入的进行学习。

如何真正的写好提示词

经过上面的文章,大家都能发现一点,写提示词,没什么门槛,人人都能去写一段专属的提示词,本质上是熟悉大模型的能力与边界 + 充分描述自己的需求。

如何通过指令充分发挥大模型的威力,我个人觉得要从2方面入手,一方面是持续了解与更新大模型相关的知识

  • 怎么准确的描述我的诉求?
  • 什么样的大模型比较好用?
  • 如何根据大模型的反馈持续优化promop?
  • 如何使用合适的大模型方案解决问题?比如将一个问题拆分为多个问题

另一方面就是对需求的深刻全面的了解,很多人初次使用大模型的时候会感觉:哎呀,就那样嘛,也没多聪明,实际上提问人的水平非常影响大模型的回答效果。

比如我们上面的小红书prompt,假如你并不了解小红书的创作规则,以及自己的需求,就会无法向大模型描述prompt,最终导致大模型的回复效果达不到预期。

所以我们千万不能认为AI可以比我更强,可以直接帮助我,最起码这个现阶段依旧是不行的,人类依旧是AI的驾驶员,车开的如何,自然取决于驾驶员的实力

最后

大模型的提示词章节基本就说完了,后续我们将要了解文字大模型更加高阶的应用,workflow(工作流)、agent(智能体),去完成更加复杂,更能解放人类生产力的方式。

我们也将讨论如何通过大模型实现更加复杂,更加能落地的应用场景。

相关推荐
LZXCyrus20 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
我感觉。38 分钟前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
YRr YRr1 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
DieYoung_Alive1 小时前
一篇文章了解机器学习(下)
人工智能·机器学习
夏沫的梦1 小时前
生成式AI对产业的影响与冲击
人工智能·aigc
goomind1 小时前
YOLOv8实战木材缺陷识别
人工智能·yolo·目标检测·缺陷检测·pyqt5·木材缺陷识别
只怕自己不够好1 小时前
《OpenCV 图像基础操作全解析:从读取到像素处理与 ROI 应用》
人工智能·opencv·计算机视觉
幻风_huanfeng1 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
嵌入式大圣1 小时前
嵌入式系统与OpenCV
人工智能·opencv·计算机视觉
ZOMI酱2 小时前
【AI系统】GPU 架构与 CUDA 关系
人工智能·架构