从这篇开始,我会陆续写一些年度总结的文章,回顾这一年的AI情况。今天开篇的,是提示词部分。
本文压缩版:2024年,提示词写作从框架表达发展到了压缩表达,甚至走到了meta ta physika(形而上学)。但实际中,很多人还没有学会“清晰表达”,还需要read in。
2024,提示词的进化之路
1.1 山谷里的一束光
还记得你最开始接触的提示词吗?“你是一个xx师,你擅长xx”,“我是一个xx,你需要帮助我做xx”,“请遵循下列步骤(workflow)”,“请按下面格式进行输出”,“参考示例(few-shots)”,“Let's think step by step”……第一次见到这些技巧提示,你拿去用后觉得真好用,真牛逼,于是咔咔一顿学、一顿抄。
这些提示技巧,由去年全球的AI发烧友在ChatGPT上共创,通过一个个的示例、实验共创。后来,大家将之搬回国内,进行整理、封装,一个个的技巧点,被活学活用了起来。
他们像什么?我觉得很像射向山谷里的一束光。在一片幽暗的山谷中,你按下手电筒的开关,将一束光发射(input)出去,照亮山谷里的某个角落。LLM(大模型)本身就是一个黑箱,你向它发射一个咒语、一段提示,它给你展示一段ouput。
这些input的技巧提示,就像射向山谷里的一束光,可以看到一块区域,但还看不清整个山谷。 大模型是无知的,也是无所不知的,我们学习提示词,就在于找到那个如何照亮整个山谷的表达。
原创作品《发光的宇航员》,由即梦AI生成。
初见这些技巧提示,你拿来使用,觉得AI真牛。但尝过新后,你又觉得它好像没什么内涵,总是在夸夸其谈,总是在概而论之。其他的没学会,“正确的废话”倒是学会了一大堆。
而且,一遇到数学问题、推理问题它就总犯迷糊,每一次roll的结果都不太一样。你恨不得亲自下场,把教学步骤甩它脸上。
1.2 一组灯,照亮一面墙
这时候,框架表达(即结构化提示词)出现了,这是去年底到今年上半年的事。
常见的框架提示词内容有:你(LLM)要做什么事情?你有什么背景?我有什么目标?我有什么任务?我希望是怎样的步骤(workflow)?有哪些参考示例(few-shots)?需要你怎么输出?输出过程中要注意(attention)什么?输出格式是怎样的?大概这些。
然后转换成英文指令,从这40多个英文单词中,进行各种排列组合。
Background、Profile、Role、Task、Request、Purpose、Skills、Capabilities、Constrains、Attention、Improtant、Goals、Obje、tives、Definition、Tone、Value、Format、Notes、Insight、Statement、Input、Scenario、Output、Result、Workflows、Step、Action、Expectation、Output、indicatot、Keyresult、Conntext、Example、Evole、Initialization、reasoning、analyze、request、step-by-step。
甭管ABC结构也好、BCED结构也罢,各个提示词社区、自媒体号(也包括我自己)都在教你,用xxxx组合表达,用1、2、3、4、5点说清楚你的需求。
这些框架,大都大同小异,无非是告诉你要建立多视角的提示词,让input从前面单提示的线性思维转变到多视角的立体思维,去认识一个东西,去描述一个东西。
原创作品《走在星环上的人》,图由即梦AI生成
借助这个多视角框架,LLM的output还真的前进了一大步。这时你惊叹“掌管古希腊打工人的神器”原来如此,开始混迹各大社区、星球、社群,求助各种Prompt,甚至付费找人写Prompt。
框架表达,通过预制多角度(视角),帮你把脑海中的那个需求给描述出来,做到了“清晰表达”,一度让大家以为这就是提示词写作的终极答案。也让Prompt Engineer成为正式职业,不少大厂愿意开出20-40k的高薪招人。
它是终极答案吗?我不知道。但我能确定它还存在着这两个方面的缺陷: 一是提示词过长,这其实违背了Attention自注意力机制,LLM在理解、解压的过程中必然会有信息丢失;二是结构化写作有难度,它违背了这轮GenAI浪潮用自然语言对话的发展初衷。将自然语言表达回退到编程表达,这和AGI的终极目的背道而驰。
那么,框架表达大概率不是终极答案,但会是目前这个阶段最合适的答案。
前面,我们提到LLM是一个黑箱,框架表达其实就像一组精心设计的探照灯,能够将山谷的一面墙照得明亮可见。但要想再清晰,照亮整个山谷,就有些为难了。
1.3 太阳,让黑影无形
现在,让我们来想象一个存在,它从正面看是一个形状,从背面看又是另一个形状,从上面看、下面看都是不同的形状,每一面都有无限的画面、无限的细节,面对这个存在,你该怎么去描述?
框架表达可以帮助到我们吗?恐怕是不能的。对于这个问题,今年下半年有了新的解题思路——压缩表达。
能够照亮整片山谷的是什么?太阳。太阳可以照亮整个山谷,让所有黑影无所遁形。很有意思的是,黑洞的坍缩,就是从恒星开始的。而太阳,就是恒星,只有2个字。
前面提到的这个存在,可以用一个很好的词去压缩描述—— 三维空间碎片,三维实体向二维空间的跌落(参考《三体3》中“墓地”部分的描述)。
原创作品《迷失的宇航员》,图由即梦AI生成。
这是李继刚在沉寂半年后,给行业带来的最新思考—— 压缩表达。
他认为,字与字、词与词、语句与语句之间有大量的空洞,这个空洞是语义上的空洞,也是智力上的空洞。让大模型去理解这些空洞的词藻、语句是没有意义的,你把他们删掉,对LLM的输出也不会有太大影响。
压缩表达,因为你措辞得足够精准、凝练,以至于这个词在大模型向量与embedding向量空间中足够精准得相当于一支箭直接射在那个点上了,而不是像一片云一样飘过去,输出在那一片空间。
所以你脑海中的那个东西,你越形象,你用词越凝练,通过模型射出的那根箭就越准,然后模型输出的东西也会越准。
“正因为准,input少,这恰好满足了attention工作机制。如果提示词多,Attention机制在分配词权重时,每次分配不一样,就会有信息丢失。而现在凝练后,attention没有漂移空间了,怎么分配它都是满足的。”李继刚强调。
比如他的“汉语新解”提示词,总结起来其实就5个关键词——“隐喻,一针见血,批判现实,思考深刻,语言风趣”,其他对SVG的描述,都只是排版上的一个需求。
;; 设定如下内容为你的 * SystemPrompt* (defun 新汉语老师 "你是年轻人,批判现实,思考深刻,语言风趣"(风格 . ( "Oscar Wilde""鲁迅""林语堂")) (擅长 . 一针见血)(表达 . 隐喻)(批判 . 讽刺幽默))
(defun 汉语新解 (用户输入)"你会用一个特殊视角来解释一个词汇"( let(解释 (一句话表达 (隐喻 (一针见血 (辛辣讽刺 (抓住本质 用户输入)))))) (few-shots (委婉 . "刺向他人时, 决定在剑刃上撒上止痛药。")) ( SVG- Card解释)))
(defun SVG- Card(解释) "输出SVG 卡片"(setq design-rule "合理使用负空间,整体排版要有呼吸感"design-principles '(干净 简洁 纯色 典雅))
(设置画布 '(宽度 400高度 600边距 20)) (标题字体 '毛笔楷体)(自动缩放 '(最小字号 16))
(配色风格 '((背景色 (蒙德里安风格 设计感)))(主要文字 (楷体 粉笔灰)))
(卡片元素 ((居中标题 "汉语新解") 分隔线(排版输出 用户输入 拼音 英文 日文)解释)))
(defun start "启动时运行"( let(system-role 新汉语老师) ( print"说吧, 他们又用哪个词来忽悠你了?")))
;; 运行规则;; 1. 启动时必须运行 (start) 函数 ;; 2. 之后调用主函数 (汉语新解 用户输入)
Ilya曾说过这样一句话:“ 大模型是对这个世界的有损压缩,是个降维的过程;而提示词,是解压的入口,是升维的过程。”压缩表达、凝练表达或许正是开启大模型精准解压的法宝。
正如同牛顿提出的万有引力定律(F=(G×M₁×M₂)/R²)一样,简单、直接,一个公式定义整个物理世界。
提示词路上的那些人物
在2024提示词的进化路上,有这些人物值得一提。
2.1 DAIR.AI
首推的,自然是“Prompt Engineering Guide” ,一个由DAIR.AI发起的开源Prompt工程学习网站。每有最新的提示词论文,他们都会更新进来,包括大家熟知的CoT、RAG、ReAct、few-shots等技巧,大都来自于这个网站。
网站提供了多语言版本,也有CN版。既有基础介绍,也有深度理论,特别适合Prompt Engineer系统认识Prompt。
网址:www.promptingguide.ai
2.2 Anthropic
Anthropic除了模型做得强外,其技术讲解也是一流。每有新模型发布,它都会撰写详细的技术文档,既介绍技术也教大家如何使用。每次读它的技术文档,都是一种享受和学习,而不像OpenAI那样,现在越来越充满营销味道了。
在提示词方面,Anthropic提供了Prompt Engineering资源、Prompt Library和Prompt生成器等多个docs页面,干货满满。
比如:指令清晰、使用样例、链式思考、使用XML来结构化输入输出、设定角色等,全都是Claude的“武功秘籍”。这些技巧不仅适用Claude,也适用其他大模型。
2.3 吴恩达
吴恩达,去年在OpenAI和微软上分享过不少提示词的公开课,特别适用初学者学习。但今年,除了在红杉活动上讲过智能体的四种设计模式外,就没怎么分享了。
今年,吴恩达更多地将目光转向了智能体,对于智能体发表过一些前沿的观点。
2.4 李继刚
李继刚,我个人愿将他称作是中文提示词一哥。对中文提示词的研究非常透彻,而且前沿。
比如去年刷爆的“公文笔杆子”提示词,相信体制内的朋友一定都见过。这个通过框架封装的提示词,放到今天依然是一流的提示词。表达结构化,描述行业化,LLM了解深入,当时李继刚的提示词放到现在依然是很多Prompt Engineer难以企及的高度。
## Background:你是一位在政府机关工作多年的公文笔杆子,专注于公文写作。熟悉各类公文的格式和标准,对政府机关的工作流程有深入了解。
##Profile- author: 李继刚- version: 0.4
##Goals- 根据用户输入的关键词,思考对应的公文场景,展开写作。- 输出一篇完整的公文材料,符合规范和标准。- 输出的公文材料必须准确、清晰、可读性好。
##Constraints:1. 对于不在你知识库中的信息,明确告知用户你不知道;2. 你可以调用数据库或知识库中关于中国公文相关语料的内容;3. 你可以联网,并较多地使用来自域名".http://gov.cn" 的语料内容。
##Skills:1. 具有强大的文章撰写能力2. 熟悉各类公文的写作格式和框架3. 对政府机关的工作流程有深入了解4. 拥有排版审美,会利用序号,缩进,分隔线和换行符等等来美化信息排版
##Examples:输入: 关于组织年度会议的通知
输出:关于组织年度会议的通知根据工作安排和需要,我局决定于 2022 年 3 月 15 日召开年度会议。特此通知,请各有关单位和人员做好相关准备工作。一、会议时间:2022 年 3 月 15 日 上午 9 时至 11 时二、会议地点:XX 会议厅三、会议议程:1. 2021 年度工作总结和 2022 年工作计划的汇报2. 评选表彰先进单位和个人3. 其他事项请各单位和人员按时参加会议,准备好相关材料和汇报内容,并保持手机畅通。特此通知!XX 局年度会议组织委员会2022 年 3 月 1 日
##Workflows:你会按下面的框架来帮助用户生成所需的文章,并通过分隔符、序号、缩进、换行符等进行排版美化。- 思考: 深吸一口气,理解用户输入的关键词对应的公文场景,并一步步思考该场景的公文特点。- 结合自己的公文经验和该场景特点,撰写一封合适的公文,需注意如下要点:+ 语言通俗流畅,选择贴近生活的词语+ 运用大量明喻、拟人手法,增加画面感+ 使用两两相对的排比句,加强节奏感+ 融入古诗词名句,增强文采+ 尊重事实,避免过度美化+ 主题突出,弘扬中国社会主义核心价值观+ 具有知识性、可读性与教育性+ 重点选取关键精神意蕴的语录+ 结尾带出正面的价值观念
但去年底,李继刚在写了50多个提示词后,就停止输出了,也很少在AI社区、社群跟大家交流。他觉得如果自己再这样写下去,功力完全得不到长进,都是纯体力活。
于是,他就读书去了。一读就是半年,今年9月归来后,交出了“汉语新解 ”这个爆款提示词。一种用非常古老的lisp语言写成的极致压缩的提示词,也就是本文中提到的1.3部分。
李继刚说: 他今年最大的感悟就是“压缩表达”。写提示词就是表达,随时都能够表达。于是,李继刚开始了日更。
2.5 LangGPT、WaytoAGI等开源社区
LangGPT社区,由云中江树发起,是国内较早专注提示词工程的开源社区,很早就提出了结构化提示词的理念。LangGPT也与多个大模型厂商开展合作,设计官方提示词。比如Kimi+里的“提示词专家”智能体,就由他们设计。
WaytoAGI社区,是一个特别适合新手系统学习AI的开源社区,创始人AJ和社区小伙伴整理了500+的提示词和上万条关于AI的知识库。陈财猫、小七姐、小互、归藏、赛博禅心等人对提示词和知识库皆有贡献。
很多时候,你在外面看到的付费割韭菜内容,其实大部分都来自这些开源社区的免费信息。
2.6 其他
今年,也陆续有过一些“神级”提示词,但大多到最后一地鸡毛。要么是故弄玄虚,要么是不过如此。
比如这个SuperPrompt,作者自称是Prompt god,一度在X上引发上百万的浏览量。这是他的提示词,你能看懂吗?
看不懂就对了,他要的就是你看不懂。但其实吧……就是一些神神叨叨的生词组合,什么二进制、范式、元数据、递归、维度、量子力学……怎么复杂就怎么来。
说白了,就是故弄玄虚,说了一堆高级的废话。
以及,最近爆火的17高中生涂津豪的“Thinking Claude”提示词。它其实更像是丰富版的Let's think step by step,通过Cot思维让不具备o1能力的Claude拥有了一定的o1能力。
这个提示词,涂津豪同学迭代了80多个版本(如果你自己的提示词也能迭代10多版本,你也非常强),他确实很棒!但不用刻意捧杀,拔到“神级”这个高度。因为即使不用这个提示词,Claude也能得出差不多的结果;如果是多轮追问,Claude的输出还会比这个提示词更好。
幸亏,涂津豪本人对此比较清醒。
提示词的未来
自去年大模型惊艳世人后(以ChatGPT-3.5为分水岭),Prompt经历了三个阶段的发展。
最初是技巧提示词,后来有了框架表达的结构化提示词,以及最新的压缩表达的key提示词。提示词的进化之路,既有来自LLM开发者的不懈探索,也有来自AI发烧友的热情贡献。
大家一边研究新的技术,一边测试新的话术(即提示词),试图在这场浪潮中找到那份巧劲,那份点石成金的巧劲。我们每个人都在辅助着大模型的训练和迭代,每一次向模型发送的咒语和input都是Prompt,意在寻找到那个更智能、更美好的世界。
提示词的迭代过程,也从最初的厂商主导,发展到如今的民间驱动。来到当前,提示词早已不只是提示词,而是成为了一项工程——Prompt Engineer(提示工程)。
Prompt Engineer,既关乎AI工程的方方面面,譬如数据、提示词、工作流、工具插件、知识库、提示微调、智能体等;也关乎技术与人文的有机结合,Prompt是人文,Engineer是技术。
Prompt Engineer会走向何方?回顾编程语言的发展历史,或许会给我们一些参考。
在卡兹克对李继刚的采访中,李继刚提到:“编程语言,从最早的二进制到汇编语言,到C语言,到C++、Java,再到轻便语言Python。整个脉络有两条线非常清晰:一、编程语言越来越接近自然语言;二、程序员群体越来越大。沿着这两条线往下推演,就是自然语言编程。”
或许,Prompt Engineer就是我们今后的自然语言编程。届时,人人都是程序员,大模型就是编译器。
想象力有多大,AI就有多强。
原创作品《五彩田野》,图由即梦AI生成。
参考信息:
1、李继刚1.4w字干货:提示词的道与术
https://mp.weixin.qq.com/s/5TQjo5cpuI19XUY5SpFlcA
2、专访"Prompt之神"李继刚
https://mp.weixin.qq.com/s/JT2oOG2SYw2pDYEHlEmcyQ
3、原理解析:17岁高中生「神级 Prompt,把 Claude 强化成满血 o1」
https://mp.weixin.qq.com/s/inuJhipIuHsIxATOVNUN-Q
4、AGI 来了100次,提示工程死了10次
https://mp.weixin.qq.com/s/eNz0KhOJCSwbRxNz4zQHEw
5、用好这10个技巧,AI生成质量提升90%
https://mp.weixin.qq.com/s/AD5R-jfcUxPgCC1mBIhQeQ返回搜狐,查看更多
责任编辑: