2023年的某个深夜,一个产品经理打开ChatGPT,输入一句话,得到了一份完整的需求文档。他震惊之余,大概不知道,他输入的那句话,背后有一条10年多的技术暗线。

你可能也以为,Prompt Engineering是2023年ChatGPT火了之后才冒出来的新东西。

错了。

它有一条从2015年就开始的技术因果链,每一步都在改变人类和AI对话的方式。

先给一个定义,Prompt Engineering是通过设计语言提示来引导、控制和定制NLP(自然语言处理)系统输出的方法论。它不是咒语,不是玄学,是一门有学术根基的工程学科。

好,从2015年那个彻底改变一切的突破开始聊起。

图片


2015年,模型终于能「看懂」prompt了

2015年,NLP领域的研究者正在苦苦挣扎一件事。

他们用RNN(循环神经网络)和LSTM(长短期记忆网络)处理长文本,模型处理到后面就会失忆,记不住前面写了什么。你想让模型关注prompt中最关键的几个词,它根本做不到。它看prompt就像翻一本没有目录的记事本,从头翻到尾,翻到哪算哪。

直到一篇论文出现。

八位Google研究者写了一篇叫「Attention is All You Need」的论文。他们提出了一个听起来很简单的想法,让模型在处理每个词的时候,自动判断输入里哪些词跟它最相关,然后给这些关键词分配更高的权重。

这个机制叫注意力机制,英文叫Attention。

它彻底改变了prompt和模型之间的交互方式。之前你写prompt,模型只能按顺序读,读到最后忘了前面。现在模型能注意到你prompt里最关键的词,不管你把它放在哪个位置。

没有它,后面所有的事情都无从谈起。


2018年,做NLP任务的门槛被拉低了

注意力机制之后,prompt设计进入了一个新阶段。

但当时还有一个大问题。你如果想让模型完成一个具体任务,比如情感分析,你得从零开始训练整个模型。准备几千条标注数据,训练几天,调十几个参数。像一个普通工程师想做这件事,成本太高了。

2018年,Google发布了BERT。

BERT做的事说起来也简单。它先用海量无标注文本预训练,学会通用的语言表示。然后你只需要在少量标注数据上微调少数参数,就能完成特定任务。

一个普通工程师发现,之前做一个情感分类任务,从零训练要几千条数据、几天时间。现在微调BERT,几百条数据、几小时就搞定了。

prompt设计也跟着变了。BERT时代出现了一种叫Cloze-style prompt的东西,就是填空式提示。你给模型一句话,中间留一个空,「这部电影太___了」,让模型去填。prompt从训练语料的一部分变成了任务描述

这个阶段,prompt设计门槛被大幅拉低了。更多研究者开始尝试用不同的prompt让模型做不同的事。


2019年,prompt不再是训练的一部分

2019年,OpenAI发布了一篇论文,「Language Models are Unsupervised Multitask Learners」。主角是GPT-2。

论文发布后不久,一个研究者在Twitter上分享了一个惊人的实验。他不给模型任何任务示例,只给一句自然语言描述,「把这段英文翻译成法文」,GPT-2就真的完成了翻译。没有训练数据,没有示例,只有一句话。

这个能力叫零样本学习,Zero-shot learning。

坦率的讲,这是prompt设计理念的一个根本转变。之前prompt是训练语料的一部分,模型需要先用标注数据学会这个任务怎么完成。现在,prompt变成了引导工具。你只需要用自然语言告诉模型你想干什么,它就能干。

我觉得这是整个Prompt Engineering历史里最被低估的一个转折点。大家后来都在讨论GPT-3的1750亿参数有多震撼,但很少有人意识到,GPT-2已经悄悄证明了「引导」比「训练」更高效。

怎么说呢,这一步走完,prompt就不是训练的事了,它变成了对话的事。


2020-2021年,「Prompt Engineer」这个词出现了

2020到2021年,GPT-3发布了。

AI社区陷入了一场集体实验。大家疯狂尝试各种prompt写法,有的模板让GPT-3写代码,有的让它写小说,有的让它扮演心理咨询师。研究者和工程师们发现,同一个模型,prompt写得好不好,效果天差地别???

控制代码和模板式生成也开始被广泛使用。你可以在prompt里加入额外token,指定生成文本的情感、正式度、语言风格。prompt从一句话变成了带格式的模板

就在这个疯狂的实验期,前OpenAI和Tesla的AI研究员Andrej Karpathy,在社交媒体上发了一条推文,提到了一个词,Prompt Engineer。

这个词迅速传播开来。Prompt Engineering从一个只有小圈子讨论的话题,变成了一个被独立讨论的领域。社区的推动力,在这个阶段,比学术论文的影响力还要大。

有一说一,我自己当时看到这个词的时候,也觉得有点好笑。一个「写prompt」的事,怎么就成了「工程」了,后来才知道,是我浅薄了。


2021年,从零散技巧到系统化研究范式

2021年,一篇综述论文发布了。

标题很朴素,「Pre-train, Prompt, and Predict,A Systematic Survey of Prompting Methods in Natural Language Processing」。(预训练,提示词,和预测:自然语言处理中提示方法的系统综述)

但这篇论文做了一件非常重要的事。它把之前散落在几百篇论文、几千条社区讨论中的prompt技巧,整理成了一个清晰的系统框架。

它提出了一个全新的范式,「预训练,提示,预测」。之前NLP的主流范式是「预训练,微调,预测」,你做每个任务都需要微调一次。现在,通过设计不同的prompt模板,同一个预训练模型可以解决不同类型的任务,不需要微调。

从此,Prompt Engineering不再是经验技巧的合集。它有了学术定义,有了系统框架,有了可以被研究、被教学、被传承的方法论。

图片


方法论从哪来,三条路径

讲完学术脉络,你可能会问,那现在大家到底是怎么学Prompt Engineering的。

相对而言,有三条路径。

第一条,学术研究。读论文,跟着学术界的最新进展走。这条路最扎实,但也最慢。

第二条,工业实践。OpenAI、Anthropic这些公司通过API文档和博客分享案例,讲怎么在真实产品里用prompt。这条路最实用,但偏商业化。

第三条,社区贡献。GitHub上有个项目叫awesome-chatgpt-prompts,收集了500多个场景的prompt模板。Reddit上也有专门的社区讨论。这条路最鲜活,但质量参差不齐。

三条路径各有侧重,但共同构成了这门学科的方法论。产品经理和工程师通常结合这三条来学。


Prompt不是咒语

所以,讲完这条10年多的因果链。

下次当看到有人说「Prompt Engineering就是几句咒语」的时候,你可以告诉他。

它不是咒语,也不是玄学。不是「换个写法就好用了」的神秘技巧,是对「如何用自然语言引导大语言模型」这一问题的系统研究和工程实践。

从2015年注意力机制开始,经过BERT的预训练范式、GPT-2的零样本能力、GPT-3和社区的爆发,最终在2021年被一篇综述论文系统化定义。

是一条由几百篇论文、几千名研究者、几万名工程师共同推进的技术因果链。

而且它还在继续演化。多模态prompt、基于人类反馈的强化学习,这些新方向让prompt从纯文本扩展到了图像、视频、音频。

但那是另一个故事了。


本文的技术时间线主要参考了论文「A Brief History of Prompt: A Survey of Prompting Methods in Natural Language Processing」(arXiv:2310.04438)


如果你对 Prompt Engineering、AI Agent 这些方向感兴趣,也欢迎来群里一起学习交流。扫码即可加入图片

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐