在计算机领域,提示词 (Prompt) 指的是算法输出之前的那段前置左向字符串。比如最早 MSDOS 下的 C:\>,Linux 下的~:,IPython 下面的 >>> 这些都算是提示词。在 2023 年,提示词已经成为和大规模语言模型 (LLMs) 互动最自然直观的方式。
如果将 ChatGPT 比喻成哈利波特小说中的绚丽魔法,那么提示词就像召唤魔法时的咒语。 能不能用好这个魔法,取决于你念咒语时是清晰明确,还是夹杂着 “口音”。 同样一个魔法,念咒的人不同,威力也不尽相同。所谓一千个读者就有一千个哈姆雷特,但一千个巫师的阿瓦达索命咒也不及伏地魔一个人念的有效(当然伏地魔念得再好也不如哈利念得有效)。
所以,能不能用好 ChatGPT 和大规模语言模型,很大程度上取决于你提示词的质量。事实上,不仅语言模型,包括几个月前很火的 DALL·E,Stable Diffusion 等 AI 文本到图片的生成模型,提示词对其生成艺术的风格和质量也有非常大的影响。
(同样是汉堡,同样是 Stable Diffusion 2.1 模型,左边汉堡中的提示词哪怕加了 “Trending on Artstation” 也令人没有胃口。那么问题来了,右边的提示词你能猜到是什么么?)
但说起提示词,难免让人爱恨交加。爱的人把它视为技术与艺术的融合,恨的人把它看做阻碍机器学习和 AI 前进的绊脚石。
ChatGPT 创始人 Sam Altman 认为提示词工程(Prompt Engineering)是用自然语言编程的黑科技,绝对是一个高回报的技能。 网络和论坛上搜集、整理甚至高价出售、悬赏提示词的比比皆是。很多人把提示词看做 AIGC 这个时代的源代码,对应的网课已经开始涌现。
与之相对应的, 人尽所知的深度学习巨头 Yann LeCun 却认为,提示词工程的存在是因为 LLMs 对真实世界理解的不足 。他觉得 LLMs 需要提示词只是一个临时态,这恰恰说明了当前 LLMs 还有很大的改进空间。随着 LLMs 技术的不断革新,LLMs 很快会具备理解真实世界的能力,到那时提示词工程就失去了存在的价值。
未来太远,但就目前 LLM 的发展来客观讲,提示词的存在是有一定意义的。正如在现实世界中人与人的互动需要一定的沟通技巧一样, 你也可以把提示词看做人与机器互动时的沟通技巧 。好的提示词可以帮助你在使用 LLMs 时取得更好的结果,这就像在现实世界中,口才出众、能说会道的人往往可以更快速地协调完成工作。
尽管在 2023 年,自然语言已经鱼跃成为了人和人、人和机器之间沟通的统一方式,然而与 LLM 机器 进行沟通还是比与人交谈更具挑战性。首先,LLM 无法像人类一样理解细微差别、语气或上下文,这意味着需要仔细设计提示词,使其明确且易于被模型理解。你可以想象你叽里咕噜对 LLM 说了一大堆,然后 LLM 冷淡地回复了一句 “说人话”。其次,由于训练语料的限制,LLMs 在语言理解方面可能存在一定的局限性,一些现实世界中的长逻辑表达,铺陈、反转、甚至是简单推理归纳在 LLMs 中不能被完美的理解和执行。而 LLMs 中因为训练语料中而产生的一些暗语(比如 GPT 中最著名的 “Let’s think step by step / 让我们一步一步思考” , “Below is my best shot / 下面是我最好的一次预测”)在人与人的日常沟通间反而不常见。这些都使得提示词工程进一步复杂化,晋升为所谓的 “玄学”。
对于母语非英语的中国用户来说,提示词也是阻碍大家对 LLMs 尝鲜的最大痛点。 回想 2022 年暑期 Midjourney、Stable Diffusion 在英语市场如日中天时,国内的社区反应并不热烈。究其原因,还是因为 Midjourney、Stable Diffusion 的提示词以英文为主,在构建时需要大量的词汇和流行文化储备。这对于想尝鲜的中文用户都极其不友好。ChatGPT 之所以能够在中文社区火爆,一部分原因也得力于其在中文上的良好支持,这极大地降低了中文用户的门槛。汉语作为世界上使用量数一数二的语言,仍然被提示词绊了一个小跟头;自郐而下,小语种究竟有多难可想而知。
总而言之,提示词工程的存在具有它的合理性。一个好的提示词也确实能带来事半功倍的意义。好的提示词能够帮助我们了解大语言模型的能力和边界,深入挖掘它的潜力,从而在生产实践中更好地发挥其作用。这其中最著名的例子就是 上下文学习 (In-context learning)。
用魔法打败魔法
在现实中,提示词的优化过程需要反复试错迭代,极其繁琐;并且还需要一定的知识储备。这就不禁让人发问,在 AI 当道的今天,提示词能不能也自动生成?
在 Yann LeCun 抨击提示词的推文回复里,我们注意到了这条回复:“提示词工程就如同对科学中对待一个问题的描述和定义;同一个问题,在不同人的描述下,或优或劣、或易或难、或可解或不可解。所以,提示词工程的存在并没有错,而且提示词工程本身也可以被自动化。” 这位网友同时还给出了一个产品: 「最美提示词」(PromptPerfect.jina.ai)。 也就是说,这种 用算法来优化提示词 的新范式已经被成功实现了!
产品体验链接:
https://promptperfect.jina.ai
这条回复中提到的 promptperfect.jina.ai 用魔法驯化魔法,让 AI 指导 AI,当你输入提示词后,它就会输出优化后的「最美提示词」,并让你预览优化前后的模型输出。这样就实现了从 “garbage-(prompt)-in-garbage-(content)-out” 到 “好输入 – 好输出” 的良性循环。根据产品的官方文档介绍,其不仅支持当下最火的 ChatGPT 提示词优化,还支持 GPT 3、Stable Diffusion、Dall-E。接下来就让我们来测评一下这位 “AI 提示词工程师” — 最美提示词(PromptPerfect)究竟有哪些科技与狠活。
如何 10 秒钟内轻松优化提示词?
1、将口语需求变成条理清晰的提示词
优化提示词需要理解语言的构造,知道哪些句子哪些词能够 “启动” LLMs 的智能。如果没有这些储备,提示词含糊不清,如口语一团乱麻,那么就容易被 LLM 带沟里。“最美提示词” 可以从海量数据中学习并深入理解更深刻的语言知识,以产生更加准确、清晰、有效的提示词,不管想要什么样的需求和任务,都能 直接量身定制,提供最精准的表述。