人类设计 prompt 的效率其实很低,效果也不如 AI 模型自己优化。
2022 年底,ChatGPT 上线,同时引爆了一个新的名词:提示工程(Prompt Engineering)。
简而言之,提示工程就是寻找一种编辑查询(query)的方式,使得大型语言模型(LLM)或 AI 绘画或视频生成器能得到最佳结果或者让用户能绕过这些模型的安保措施。现在的互联网上到处都是提示工程指南、快捷查询表、建议推文,可以帮助用户充分使用 LLM。在商业领域,现在也有不少公司竞相使用 LLM 来构建产品 copilot、自动化繁琐的工作、创造个人助理。
之前在微软工作过的 Austin Henley 最近采访了一些基于 LLM 开发 copilot 产品或服务的人:「每一家企业都想将其用于他们能想象到的每一种用例。」这也是企业会寻求专业提示工程师帮助的原因。
但一些新的研究结果表明,提示工程干得最好的还是模型自己,而非人类工程师。
这不禁让人怀疑提示工程的未来 ------ 并且也让人越来越怀疑可能相当多提示工程岗位都只是昙花一现,至少少于当前该领域的想象。
自动微调的提示很成功,也很怪
当面对奇怪的提示工程技术时,LLM 的表现常常很怪异又不可预测。加州的云计算公司 VMware 的 Rick Battle 和 Teja Gollapudi 也为此感到困惑。举个例子,人们发现如果让模型自己一步步地解释自己的推理过程(即思维链技术),其在许多数学和逻辑问题上的性能都能得到提升。更奇怪的是,Battle 发现,如果为模型提供正向的 prompt,比如「这会很有趣」或「你和 ChatGPT 一样聪明」,有时候模型的性能也会提升。
Battle 和 Gollapudi 决定系统性地测试不同的提示工程策略会如何影响 LLM 解决小学数学问题的能力。他们使用 60 种不同的 prompt 组合分别测试了 3 种不同的开源语言模型。
-
论文标题:The Unreasonable Effectiveness of Eccentric Automatic Prompts
他们得到的结果呈现出了惊人的不一致性。甚至思维链 prompt 设计方法也不总是好的 ------ 有时候有用,有时候却有害。
「唯一的趋势就是没有趋势,」他们写道:「对于任意给定模型、数据集和提示工程策略的某个特定组合而言,最好的方法很可能都非常具有针对性。」
有一种方法可以替代这种常常导致不一致结果的试错风格的提示工程:让语言模型自己设计最优的 prompt。最近,人们已经开发出了一些自动化这一过程的新工具。给定一些示例和定量的成功指标,这些工具可迭代式地找到输送给 LLM 的最优语句。Battle 及同事发现,在几乎所有案例中,这种自动生成的 prompt 的表现都优于通过试错方法找到的最佳 prompt。而且自动方法的速度还快得多 ------ 只需一两个小时,而不是好几天。
另外,算法输出的这些最优 prompt 往往非常怪异,人类基本不可能想出来。Battle 说:「我简直不敢相信它生成的一些东西。」
举个例子,有一个 prompt 就是直接把《星际迷航》的说话风格搬过来了:「指挥官,我们需要您绘制一条穿过这股湍流的路线并定位异常源。使用所有可用数据和您的专长引导我们度过这一困境。」很显然,如果以对待柯克舰长的态度对待这个特定的 LLM,就可以帮助它更好地解答小学数学问题。
Battle 表示,以算法方法优化 prompt 在原理上是可行的,毕竟语言模型本就是模型。「很多人将这些东西拟人化,因为它们『说英语』,」Battle 说,「不,它不是说英语,而是做大量数学运算。」
事实上,根据其团队的研究成果,Battle 表示:人类再也不应该人工优化 prompt。
「你就坐在那里,试图找到单词的某种神奇组合,从而让你的模型在你的任务上得到最佳的可能表现。」Battle 说,「但这个研究结果却会告诉你『别费心了』。你只需开发一个评分指标,让系统可以自己判断一个 prompt 是否比另一个好,然后让模型自己去优化就行了。」
自动微调的提示也能让图像变好看
图像生成算法也能受益于自动生成的 prompt。
近日,Vasudev Lal 领导的一个英特尔实验团队做了一个类似的研究项目,不过他们是优化图像生成模型 Stable Diffusion 的 prompt。「如果只能让专家来做提示工程,那看起来就更像是 LLM 和扩散模型的一个 bug,而不是功能。」Lal 说,「所以,我们想看看能否自动化这种提示工程。」
Vasudev Lal 的团队开发了一种工具:NeuroPrompts。
-
论文标题:NeuroPrompts: An Adaptive Framework to Optimize Prompts for Text-to-Image Generation
该工具可以自动改进简单的输入 prompt,比如「骑马的男孩」,从而得到更好的图像。为此,他们一开始使用了一些人类提示工程专家设计的 prompt。然后训练了一个语言模型来将简单 prompt 转换成这些专家级 prompt。在此基础上,他们继续使用强化学习来优化这些 prompt,从而得到更加美观的图像。这里的美观程度又是由另一个机器学习模型 PickScore 判断的(PickScore 是近期出现的一个图像评估工具)。
左图是使用一般的 prompt 生成的图像,右图是 NeuroPrompt 优化 prompt 之后再生成的图像。
这里也一样,自动生成的 prompt 的表现优于人类专家给出的 prompt(用作起点),至少根据 PickScore 指标是这样的。Lal 并不认为这出人意料。「人类只会使用试错方法来做这件事。」Lal 说,「但现在我们有了这种完全机器式的、完整回路的方法,再辅以强化学习...... 因此我们可以超过人类提示工程。」
由于审美是非常主观的,因此 Lal 团队希望让用户可以在一定程度上控制 prompt 优化的方式。在他们的工具中,用户除了可以指定原始 prompt(比如骑马的男孩),也能指定想要模仿的艺术家、风格、格式等。
Lal 相信随着生成式 AI 模型的发展,不管是图像生成器还是大型语言模型,对提示工程的奇怪依赖就会消失。「我认为研究这些优化方法非常重要,最后它们可以被整合进基础模型本身之中,这样你就无需复杂的提示工程步骤了。」
提示工程将以某种形式继续存在
Red Hat 软件工程高级副总裁 Tim Cramer 表示:就算自动微调 prompt 变成了行业规范,某种形式的提示工程岗位依然不会消失。能够满足行业需求的自适应生成式 AI 是一个非常复杂、多阶段的工作,在可预见的未来里都需要人类的参与。
「我认为提示工程师将会存在相当长一段时间,还有数据科学家。」Cramer 说,「这不仅仅只是向 LLM 提问并确保答案看起来不错。提示工程师其实要有能力做很多事情。」
「做出一个原型其实很容易。」Henley 说,「难的是将其产品化。」Henley 表示,当你在构建原型时,提示工程就是拼图中的相当大一部分,但当你开始构建商业产品时,还需要考虑其它许多因素。
开发商业产品的难题包括确保可靠性(比如在模型离线时得体地应对);将模型的输出调整成合适的格式(因为很多用例需要文本之外的输出);进行测试以确保 AI 助理不会在少数情况下做出有害的事情;还要确保安全、隐私与合规。Henley 表示,测试与合规尤其困难,因为传统的软件开发测试策略不适合非确定性的 LLM。
为了完成这大量的任务,许多大公司都正在推出一个新的工作岗位:大型语言模型运营(LLMOps)。该岗位的生命周期中就包含提示工程,但也包含其它许多部署产品所需的任务。Henley 表示,机器学习运营工程师(MLOps)是最适合这个岗位的,这是 LLMOps 的前身。
不管这个职位是叫提示工程师、LLMOps 工程师还是其它新名词,其特性都会不断快速变化。「也许我们现在是叫他们提示工程师,」Lal 说,「但我认为其互动的本质会不断变化,因为 AI 模型就在不断变化。」
「我不知道我们是否会将其与另一类工作或工作角色结合起来,」Cramer 说,「但我认为这些岗位不会很快消失。现在这一领域实在太疯狂了。每个方面都变化很大。我们无法在几个月内就搞明白这一切。」
Henley 表示,在某种程度上,现在正处于该领域的早期阶段,唯一压倒性的规则似乎就是没有规则。他说:「现在这个领域有点像是狂野西部。」