人类设计 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
论文地址:https://arxiv.org/pdf/2402.10949.pdf
他们得到的结果呈现出了惊人的不一致性。甚至思维链 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
论文地址:https://arxiv.org/pdf/2311.12229.pdf
该对象可以主动改进简单的输入 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 默示,在某种程度上,将来正处于该畛域的早期阶段,唯一压倒性的规则似乎就是没有规则。他说:「将来这个畛域有点像是狂野西部。」
原文链接:https://spectrum.ieee.org/prompt-engineering-is-dead