人类设计 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 表示,在某种程度上,现在正处于该领域的早期阶段,唯一压倒性的规则似乎就是没有规则。他说:「现在这个领域有点像是狂野西部。」
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。