![](http://dingyue.ws.126.net/2024/0617/40160c73j00sf7lno00p5d200u000cvg00it0082.jpg)
新智元报道
编辑:编辑部
【新智元导读】大语言模型提示中,竟有不少「怪癖」:重复某些内容,准确性就大大提高;人名变匿名,准确性就大大下降。最近,马里兰OpenAI等机构的30多位研究者,首次对LLM的提示技术进行了大规模系统研究,并发布75页详尽报告。
大语言模型提示的「怪异世界」,首次如此详尽地被暴露在我们眼前。
最近,来自马里兰大学、OpenAI、斯坦福、微软等12所机构的30多名研究者,首次对LLM的提示技术进行了大规模的系统研究,并发布了一份长达75页的详尽报告。
![](http://dingyue.ws.126.net/2024/0617/220bb8e6j00sf7lnp004ad200u0009ng00id005w.jpg)
论文地址:https://arxiv.org/abs/2406.06608
![](http://dingyue.ws.126.net/2024/0617/0d65bd0bj00sf7lns00jtd200tw014lg00id00ox.jpg)
![](http://dingyue.ws.126.net/2024/0617/db04375ej00sf7lnt006yd200tu00crg00id007u.jpg)
如今,提示已经无处不在,然而在整个生成式AI行业,仍然缺乏对已出现的数百种技术系统和彻底的调查。
在这项工作中,研究者通过结合人工和AI的力量,从arXiv、Semantic Scholar和ACL数据库中处理了4,797条记录,并通过PRISMA审查过程筛选出1,565篇相关论文。
由此,他们得到一种分类法,建立了包含33个术语的综合词汇表,一个包含58种文本提示技术的分类体系,以及40种其他模态的提示技术等。
![](http://dingyue.ws.126.net/2024/0617/8e4492c3j00sf7lnu005xd200u000r4g00ei00d3.jpg)
这篇有史以来最全的提示技术报告,纷纷得到了业内大佬们的鼎力推荐。
![](http://dingyue.ws.126.net/2024/0617/81009185j00sf7lnv001yd200u00059g00id0037.jpg)
![](http://dingyue.ws.126.net/2024/0617/79390e88j00sf7lnv002pd200u0006mg00id0041.jpg)
这里需要明确三个概念——
提示,是指向GenAI提供提示,然后生成响应的过程。 提示技术,是一个蓝图,描述如何构造一个提示或多个提示的动态排序。它可以结合条件或分支逻辑、并行性或涉及多提示的架构。 提示工程,是指通过修改或更改正在使用的提示技术,来开发提示的迭代过程。
![](http://dingyue.ws.126.net/2024/0617/0dd94b95j00sf7lnx004qd200nb00xig00ag00f0.jpg)
奇奇怪怪的大语言模型
有趣的是,在这个过程中,研究者发现了大语言模型一些奇怪的现象。
1. 重复某些话,LLM会给你惊喜
研究者发现,如果重复部分提示,会显著提高模型的性能。
![](http://dingyue.ws.126.net/2024/0617/71fb5b6aj00sf7lny00g3d200r400k5g00ag007r.jpg)
比如,在一个关于自杀危机检测的案例中,因为意外,导致一封包含案例背景的邮件在提示中出现了两次,这就导致模型的性能大大提高。
删除掉重复内容后,模型的准确性就显著降低了。
这是什么原理?
对此,研究者也无法给出明确的解释。
2. 说出你的名字!
研究者在测试中发现的另一件有趣的事,就是在提示中包含人名也很重要。
比如在上面的邮件中,如果名字被匿名,或者替换为随机姓名时,模型的准确性也会下降。
![](http://dingyue.ws.126.net/2024/0617/575922e3j00sf7lnz0056d200dv006wg00ei0077.jpg)
为何LLM会对这种看似无关痛痒的细节如此敏感?对此,研究者们也没有答案。
往好处想,我们可以通过探索,来提供LLM的性能。
然而如果往坏处看,这也证明提示工厂目前仍然是我们人类难以理解的黑盒。在我们人类看来毫不相干的细节,LLM却出乎意料地敏感。
为此,研究者建议,知道如何控制模型的提示工程师,一定要和准确理解目标的专家之间密切合作。
因为,这些AI系统是被哄骗的,而非被编程的。
它们除了对所使用的特定LLM非常敏感,对提示中的特定细节也很敏感,但我们实在找不出任何明显理由,证明这些细节到底怎么重要了。
![](http://dingyue.ws.126.net/2024/0617/c717ea12j00sf7lo0008ld200q400meg008g0078.jpg)
3. 示例的选择和顺序,LLM也很敏感
通常最有效的提示方法,就是少样本提示了,也即在提示中直接举例。
![](http://dingyue.ws.126.net/2024/0617/10abd130j00sf7lo1000xd200js00bsg00id00ax.jpg)
在语言理解MMLU基准测试中,带有示例的提示取得了最佳效果,尤其是与CoT结合时
不过,这其中也有一些奇怪的陷阱:LLM对示例的选择和顺序,竟然非常敏感。
同一示例以不同顺序出场,竟让模型的效果大相径庭,准确度可以低于50%,也可以高于90%。
4. 代码辅助推理潜力巨大
目前在研究和行业中得到广泛应用,只有一小部分提示技术,最常见的是就是few-shot和CoT。
但「思维程序」(Program-of-Thoughts)之类的技术(代码被用作推理的中间步骤)也很有前途,但尚未广泛使用。
![](http://dingyue.ws.126.net/2024/0617/5c4265c7j00sf7lo2006zd200u000cbg00id007j.jpg)
而且,在案例中,自动化取得了最佳结果。由于手动提示对我们往往是很大的挑战,因此自动化显然潜力巨大。
不过在研究人员看来,人类微调和机器优化的结合,可能会是最有前途的方法。
三大提示技术
论文中,研究人员提出了全面的分类提示技术——基于文本、多语言、多模态三大类。
文本提示
在文本提示类中,整整涵盖了58种纯文本提示技术,如下图所示。
![](http://dingyue.ws.126.net/2024/0617/b4f81f9ej00sf7lo400bqd200u00109g00id00m6.jpg)
如下,将会列举几个基于文本提示技术的例子。
In-Context Learning(ICL)是指AI通过提示中的范例/相关指令,可以学习技能,无需更新权重再训练的能力。
比如,你给出2+2=4,4+5=9,然后8+0这样的提示之后,LLM便会从前两个算式中学习推算,进而解决任务。
![](http://dingyue.ws.126.net/2024/0617/42786e1fj00sf7lo50013d200u000c8g00ei005w.jpg)
再比如,给出指令,从以下文本中提取包含3个同样字母,以及至少有3个其他字母的所有单词:{TEXT}。
LLM通过理解指令,针对文本完成查找。
![](http://dingyue.ws.126.net/2024/0617/05b05165j00sf7lo60037d200u000cpg00ei0064.jpg)
不过,「学习」一词或许有些误导。ICL其实可以被视为「指定任务」,可能这些技能并非是真正的学习,而早已存在训练数据之中。
就好比,你让LLM去把一个单词「奶酪」翻译成法语。
![](http://dingyue.ws.126.net/2024/0617/e70598eaj00sf7lo7002zd200u000c1g00ei005t.jpg)
上图2.4中给出例子的提示,也称为「少样本」提示(Few-Shot Prompting),模型与此进行的是少样本学习。
这里,样本质量非常关键,决定着模型的输出性能。而且,样本的顺序也会影响模型的行为,进而导致LLM输出的准确率可能在50%以下,或90%以上不等。
对此,研究人员建议可以使用K-Nearest Neighbor(KNN)算法、Vote-K等方法,来提升样本质量。
此外,还可通过AI自生成上下文学习(SG-ICL)方法,让AI自动生成样本。作者表示,在训练数据不可用的情况下,它的效果要好于零样本场景。
![](http://dingyue.ws.126.net/2024/0617/5625cb7fj00sf7lo7001hd200u000asg00ei0057.jpg)
作者总结了在设计少样本提示时的六个主要设计决策,如下图所示。
![](http://dingyue.ws.126.net/2024/0617/bcc32e4fj00sf7lo80040d200u0006lg00id0041.jpg)
针对零样本,有很多我们熟知的提示技术,比如:
角色提示:指定AI一个角色,作家、数学老师等。
风格提示:在提示中指定所需的风格、语气或体裁。
情感提示:将与人类心理相关的短语纳入提示,如「这对我的职业生涯非常重要」。
系统2 Attention(S2A):要求LLM重写提示语,并删除其中与问题无关的任何信息,然后,自动将新的提示传递给 LLM,以获取最终响应。
SimToM:涉及多人或多物的复杂问题时,LLM试图确定一个人所知道的一系列事实,然根据这些事实回答问题。这是一个双提示过程,有助于消除提示中无关信息的影响。
重述和回答(RaR):指示LLM在生成最终答案之前,重述和扩展问题。
重读(RE2):在提示语中加上「再次阅读问题」提示,可显著提高大模型在复杂推理问题性能。
自我追问(Self-Ask):让LLM先决定是否需要针对给定的提示提出后续问题。若需要,LLM会生成这些问题,然后回答这些问题,最后回答原始问题。
在「思维生成」上,CoT是其中最具代表性的方法,而「最纯净」的CoT是不需要任何示例,即零样本CoT。
仅需在提示语中,添加一个诱导思考的短语——让我们一步一步地思考,让我们一步一步地解决这个问题......
![](http://dingyue.ws.126.net/2024/0617/01944cacj00sf7lob0068d200u000h0g00id00ae.jpg)
此外,CoT还可以是少样本CoT,顾名思义,就是为LLM提供一些样本,可大幅提升模型性能。
![](http://dingyue.ws.126.net/2024/0617/8737e108j00sf7loe005kd200u000k5g00ei009q.jpg)
我们还可以通过分解(Decomposition)的提示策略,明确将问题分解,以提升模型解决问题的能力,其中就包括:
从少到多提示法:提示LLM将给定的问题分解成子问题,但不求解这些子问题。分解完成后,再依次解决这些子问题,每次都将模型响应附加到提示中,直到得出最终结果。
分解提示(DECOMP):少量样本会提示LLM如何使用某些函数,比如包括字符串分割或互联网搜索等(单独作为工具调用)。鉴于此,LLM将其原始问题分解为子问题,并将其发送给不同的函数。
「计划-解决」提示:包括一个改进的零样本CoT提示——让我们先了解问题,并制定一个解决问题的计划。然后,让我们执行计划,逐步解决问题。
思维树(ToT):从初始问题开始,然后以思维的形式生成多个可能的步骤,从而创建一个树状搜索问题。并评估每一步在解决该问题上所取得的进展。
Skeleton-of-Though:将一个复杂问题分解成多个子问题,并行地让LLM分别回答,最后将结果合并就能得到整体回答。
![](http://dingyue.ws.126.net/2024/0617/947e9713j00sf7log009fd200u000gvg00id00ab.jpg)
与「分解」相对应地,还有「集合」(Ensembling)策略,是指使用多个提示来解决同一问题,然后将这些回答汇总为最终输出的过程。
其中的方法包括,示例集合(DENSE)、推理混合专家(MoRE)、自洽、DiVeRSe、多种CoT元推理等等。
最后,还有自我批评(Self-Criticism)提示策略,包括以下几种技术:自我校准、逆转思维链 (RCoT)、自我验证、验证链 (COVE)、累积推理。
除了研究提示技术,研究人员还回顾了用于自动优化提示的「提示工程」技术。
提示工程过程包括三个重复步骤:1)在数据集上进行推理,2)评估性能,3)修改提示模板。
![](http://dingyue.ws.126.net/2024/0617/bcc06b86j00sf7loh00l5d200rs00fng00id00ac.jpg)
这是一个用于标注任务的LLM输出注释结果,展示了答案工程(Answer Engineering)的三个设计决策:答案形状的选择、答案空间和提取器。
由于这是一个分类任务的输出,答案形状可以限制为单个token,答案空间可以限制为两个token之一(「positive」或「negative」),尽管在这个图像中它们没有被限制。
![](http://dingyue.ws.126.net/2024/0617/9912c79fj00sf7loi002qd200rv00dug00id0094.jpg)
最后,研究者总结发现,在所有的提示技术中,少样本学习、零样本推理、高质量上下文提示示例,自洽,提示顺序敏感性使用率排在了前五。
![](http://dingyue.ws.126.net/2024/0617/5dd07f26j00sf7lok005cd200jw01cgg00ei00zb.jpg)
与此同时,我们还可以通过数据集中论文引用的基准数据集和模型次数,来衡量提示技术的使用情况。
![](http://dingyue.ws.126.net/2024/0617/e3c34bfdj00sf7lol004ld200u000o9g00id00eu.jpg)
多语种提示
在多语种提示技术中,研究人员主要介绍了CoT、Human-in-the-Loop、上下文学习、上下文示例选择、翻译提示、多语种技术、提示语言这几大要点。
![](http://dingyue.ws.126.net/2024/0617/53b5aa16j00sf7lon005qd200u000h3g00id00ag.jpg)
先翻译后提示,是最简单的策略。不过,有些提示技术,要比翻译性能速度来的要快。
比如CoT已经通过多种方法(XLT、CLSP),已扩展到了多语种环境中。
![](http://dingyue.ws.126.net/2024/0617/4ea32cc2j00sf7loo00c6d200i200m6g006f007v.jpg)
针对上下文学习的策略有:X-InSTA提示,以及跨语言翻译上下文提示(In-CLT)。同时,上下文示例选择对模型多语言性能也至关重要。
因此,需找与源文本语义相似的上下文示例,就成为一项技术活。有研究者曾提出了,PARC(通过跨语言检索增强提示)的方法。
Human-in-the-Loop包含了交互链提示(ICP)以及迭代提示两种方法。
另外,提示模板语言选择会明显影响模型的性能。在多语言任务中,用英语构建提示模板,往往比用任务语言更加有效。
这是由多数LLM在预训练期间,使用了大量的英文数据决定的。
![](http://dingyue.ws.126.net/2024/0617/a72202c6j00sf7lop00bsd200g100c0g00id00dq.jpg)
顺便提一句,任务语言提示模板,则是针对特定语言使用情况来使用任务语言提示。
多模态提示
![](http://dingyue.ws.126.net/2024/0617/bf175b72j00sf7loq003jd200u000a3g00id0066.jpg)
随着GenAI模型的发展,现今也出现了许多多模态提示技术。
图像
比如图像形态的提示,包括照片、图画、屏幕截图等数据。
这个过程中,可以使用负面提示对某些提示中的某些术语进行数字加权,让模型更多或更少地考虑它们。
比如,如果对「错误的手」或「多余的手指」进行负权重,模型更有可能生成解剖学上正确的手。
![](http://dingyue.ws.126.net/2024/0617/c7d8117ej00sf7los00wnd200u000lpg00id00da.jpg)
如今,CoT已经以各种方式扩展到了图像领域。
比如一个简单的例子,就是包含数学问题的图像的提示,同时附有文本说明「一步步解决这个问题」。
另外,还有职责明确的思维链。
![](http://dingyue.ws.126.net/2024/0617/f4f72da9j00sf7lou007dd200u000c3g00id007e.jpg)
上面这道题,要求考虑每对磁铁的磁力,来判断以下陈述哪个是正确的。这个例子证明了,输入理由在多模态推理中是多么重要,以及理由在zero-shot和fine-tuning场景中的不同作用
它可以把从最少到最多的提示扩展到多模态设置,创建子问题,然后解决它们,将答案组合成最终响应。
比如这项任务中,要求模型选出图中的哺乳动物。
![](http://dingyue.ws.126.net/2024/0617/a62920c1j00sf7lov007id200u0009tg00id0060.jpg)
这项任务要求模型回答:哪种溶液中的蓝色颗粒浓度更高?
![](http://dingyue.ws.126.net/2024/0617/a1d6d012j00sf7lov005fd200u000c3g00id007e.jpg)
请问:这种杂交产生的大鼠是侏儒的概率有多大?
![](http://dingyue.ws.126.net/2024/0617/bfa7eebbj00sf7loy005bd200u000c6g00id007g.jpg)
多模态思维图则是将Graph-of-Thought扩展到多模态设置中。
在推理时,输入提示会用于构建思维图,然后和原始提示一起使用,来生成回答问题的基本原理。
![](http://dingyue.ws.126.net/2024/0617/abd2f0e2j00sf7lp00079d200u000exg00id0094.jpg)
当图像与问题一起输入时,图像标注模型被用来生成图像的文本描述,然后在思维图构建之前,将其附加到提示中,以提供一种视觉的上下文。
![](http://dingyue.ws.126.net/2024/0617/0312ff1bj00sf7lp200bnd200u000zlg00id00ls.jpg)
![](http://dingyue.ws.126.net/2024/0617/4b864d20j00sf7lp3005kd200u000lbg00id00d1.jpg)
图像链(CoI)是思维链提示的多模态扩展,生成图像是其思维过程的一部分。
用「让我们逐个图像思考」来生成SVG,模型就可以用它进行视觉推理了。
![](http://dingyue.ws.126.net/2024/0617/c557ee4bj00sf7lp40067d200u000ajg00id006f.jpg)
具体来说,CoI的首要步骤,就是逐步生成图像。不过要求SD XL或Dall-E遵循复杂指令生成图像时,他们却遇到了困难。因此,研究者引入符号多模态LLM。当LLM提供各种文本提示时,它将生成不同格式(如SVG格式)的符号表示。
![](http://dingyue.ws.126.net/2024/0617/502082f7j00sf7lp600aud200u000aug00id006m.jpg)
该图展示了SDXL(中)和 DALL-E 3(右)使用原始图像(左)中的标注生成新图像的过程
![](http://dingyue.ws.126.net/2024/0617/5cbef40aj00sf7lp7007jd200u000asg00id006l.jpg)
「一个女人正在等电梯,但电梯里的人却着火了。这种情况会在哪里发生?」
可以看出,在解决相同问题时,与纯文本推理相比,CoI的直觉性更强,能够用视觉常识知识来补充文本中缺失的细节,从而辅助推理过程。
![](http://dingyue.ws.126.net/2024/0617/b38a2a9dj00sf7lp800gyd200u000g1g00id009t.jpg)
除了图像之外,还有分解提示、视频提示,以及3D提示技术,可以显著提升多模态模型的响应性能。
案例研究:自杀危机综合症(SCS)的标注
在这项研究中,研究人者将提示技术应用于标注Reddit帖子是否表明自杀危机综合症(SCS)的任务。
通过这个案例研究,未来去展示提示工程在现实世界问题中的应用。
对此,研究人员使用了马里兰大学的Reddit自杀倾向数据集,并与一位专家提示工程师合作,记录了他们将F1分数从0提升到0.53的过程。
![](http://dingyue.ws.126.net/2024/0617/8330d080j00sf7lp9001dd200js00fsg00id00en.jpg)
不同提示技术的陷阱分数
![](http://dingyue.ws.126.net/2024/0617/67ffe759j00sf7lpa001dd200gz00feg00id00gn.jpg)
随着提示工程师的开发,不同提示技术的陷阱分数被绘制成图
![](http://dingyue.ws.126.net/2024/0617/c0511098j00sf7lpa000hd200cl009dg00id00dn.jpg)
自动化技术(DSPy)能够击败人类提示工程师
PRISMA审查过程
论文的数据收集过程,遵循了基于PRISMA方法的系统审查流程。
首先,通过关键词搜索从arXiv、Semantic Scholar和ACL数据库中抓取数据。其中,包含44个术语,每个术语都与提示和提示工程密切相关。
然后,根据论文标题进行去重,通过人类和AI审查确定相关性,并通过检查论文正文中是否包含「prompt」一词自动删除不相关的论文。
![](http://dingyue.ws.126.net/2024/0617/7487d35dj00sf7lpc005nd200u000vjg00id00ja.jpg)
参考资料:
https://trigaten.github.io/Prompt_Survey_Site/
https://arxiv.org/abs/2406.06608
热门跟贴