链载Ai

标题: 撒娇、威胁对大模型都没用?顶级科研团队2000次实验,14种常用prompt技巧谁是强神谁是狼!撬动大模型能力杠杆,秘诀都在这了 [打印本页]

作者: 链载Ai    时间: 昨天 18:35
标题: 撒娇、威胁对大模型都没用?顶级科研团队2000次实验,14种常用prompt技巧谁是强神谁是狼!撬动大模型能力杠杆,秘诀都在这了

大型语言模型(LLMs)的飞速发展,在代码翻译、提交信息生成、程序修复等软件工程任务中展现出令人惊叹的能力。相信各位AI的同好们也有很强的体感,仅仅是提示词上的微小变化,就可能导致LLM的输出质量千差万别,这也是大家为什么总说和AI交互像是在“抽盲盒”。

所以,“提示工程”(Prompt Engineering)至关重要,这时候我们人类强大的大脑又会开始不自觉的追求最佳实践了(本质还是大脑懒得思考):面对琳琅满目的提示工程技术,哪一种才是特定软件工程任务中的最佳选择?

面对这个还没有标准答案的挑战,来自巴西巴伊亚联邦大学、伯南布哥联邦乡村大学以及美国加州大学尔湾分校的研究团队,进行了一项开创性的系统性评估—《Which Prompting Technique Should I Use? An Empirical Investigation of Prompting Techniques for Software Engineering Tasks》。

研究团队通过花了大量时间和计算资源,调研了58种,整理了46种,最终筛选测试了14种主流提示技术在10个软件工程任务上的表现,用了4个主流LLM模型(DeepSeek-V3Qwen2.5-Coder-32B-InstructLlama3.3-70B-InstructOpenAI o3-mini四个模型),总共跑了2000多次实验。告诉我们“用什么”,更揭示了“为什么”和“如何用”的深层奥秘。

反正本人是真的几度被《如何让大模型听懂我的人话》这个课题搞疯了,非常无比的需要这些行之有效的提示词玩法,如果各位AI的同好们也有需要,走,往下看。

参与pk的14种核心提示工程技术

研究团队精心挑选了14种提示工程技术,涵盖了六大核心维度:零样本(Zero-Shot)、少样本(Few-Shot)、思维生成(Thought Generation)、集成(Ensembling)、自我批评(Self-Criticism)和分解(Decomposition)。这些技术在代码生成、Bug修复、面向代码问答等广泛任务中接受了全面检验,参赛选手如下:

ES-KNN (Exemplar Selection KNN):找好例子给模型看

CCoT (Few Shot Contrastive CoT):对的错的一起学

ToT (Thread Of Thought):线程思维思考,逐层分解

TroT (Tree Of Thought):树形思维探索,多维求解

SA (Self Ask):模型自问自答,拆解复杂问题

USC (Universal Self Consistency):模型从结果里投票选最好

SR (Self Refine):自我优化评估

SG-ICL (Self-Generated In-Context Learning):自动生成学习样例,少样本学习

SBP (Step Back Prompting):退步提示,全局审视问题

EP (Emotional Prompting):情感牌,可惜还是输给逻辑

SP (Style Prompting):确保输出一致的格式控制

RR (Rephrase and Respond):模型重新描述问题再作答

RP (Role Prompting):角色扮演专家,点亮人物技能

AP (Analogical Prompting):类比提示,泛化理解

究竟哪种提示工程技术效能最佳?

‼️重要观察结论:

【没有“银弹”!不存在一种提示工程技术能在所有SE任务中都表现最佳。】

没有一种提示工程技术能在所有SE任务中持续超越其他技术。甚至某些“高阶”提示技术甚至可能对性能产生负面影响。这意味着我们不能“一招鲜吃遍天”,而必须根据具体任务进行选择:

真正能打的“王炸”组合:ES-KNN、USC、ToT

图:不同Prompt技术在不同模型+不同任务上的最佳选型

实验中,有几种技术脱颖而出,被证明在软件工程任务中表现异常出色:

值得注意的是,在实验中,OpenAI的o3-mini模型显示出了与其他三个模型(DeepSeek-V3、Qwen2.5-Coder-32B-Instruct、Llama3.3-70B-Instruct)不同的偏好模式,这提醒我们,在不同模型间切换时,需要重新验证提示策略。

避坑指南:哪些Prompt技术是“花架子”?

图:不同Prompt技术在不同模型+不同任务上的最差选型

有表现出色的,自然也有不尽如人意的。这项研究也无情地揭露了一些看似高大上,实则“拉胯”的 Prompt 技术,大家千万要避雷:

揭秘实验设计:这项重磅研究是如何进行的?

要得出哪些 Prompt 技术真正“能打”的结论,离不开严谨科学的实验设计。这项开创性的研究,其背后凝聚了研究者们大量的心血和精密的考量,确保了其结论的权威性和说服力。

任务范围与数据基础

本次研究的覆盖面可谓极广,精心挑选了从代码理解到代码生成等十大类核心软件工程任务。为了保证评估结果的统计学可靠性,每个任务都经过了科学的随机抽样,确保有稳定且充足的测试实例,数量均在378到391之间。这为后续深入分析奠定了坚实的数据基础。

Prompt 技术精挑细选:

面对市面上琳琅满目的 Prompt 工程技术(最初多达46种),研究团队采取了极为严格的筛选标准,最终精简出14种最具代表性和主流的 Prompt 技术进行深度测试。他们的筛选原则非常明确:

提示语的“千锤百炼”:

研究者们深知,即便是同一项 Prompt 技术,不同的措辞也可能带来不同的效果。为了避免这种“提示语陷阱”,他们为每种选定的技术构建了10个不同的变体模板。这些变体首先由强大的语言模型(如 ChatGPT)生成,确保语法正确性和表达多样性。随后,由6名研究人员分成3个小组,对这些模板进行严苛的人工审核,每组负责4-5种技术。只有当两位审核者都确认某个模板完美符合其文献描述时,该模板才会被最终采纳。这种双重验证机制,最终使得人工审核的一致性系数(Cohen's kappa)达到0.45,这在人工标注领域已属相当高的可靠性。

模型的多元选择:

为了让研究结果更具普适性,研究团队选择了四款来自不同组织、拥有独特架构和训练目标的大模型参与实验:包括DeepSeek-V3、Qwen2.5-Coder-32B-Instruct、Llama3.3-70B-Instruct,以及OpenAI的o3-mini。这些模型在EvalPlus等权威代码生成基准测试中均表现出色。值得注意的是,o3-mini在许多任务中展现出与其他模型不同的行为模式,这也提醒我们,在实际应用中切换大模型时,原有的 Prompt 策略很可能需要重新验证和调整。

2000多次实验的严谨执行

这项研究总计进行了超过2000次独立的测试运行。具体操作流程细致入微:每一种精选的 Prompt 技术都被完整地应用于所有10个软件工程任务。为确保数据分配的公平性,数据集被平均切分,保证每个 Prompt 变体都处理38到40个独立的实例。研究者们通过together.ai API调用开源模型,并通过OpenAI API调用o3-mini。模型返回的响应则由专门编写的解析脚本进行提取和评估:如果模型按约定使用了指定的分隔符,解析器会精准提取分隔符内的内容;如果模型未按约定使用分隔符,则对整个响应进行评估。

论文数据集:面向开发者的“宝藏”

这项研究的价值,不仅在于其权威的结论,更在于论文作者慷慨地公开了其所使用的实验数据集。对于广大代码工具类产品的开发者而言,这份数据集无疑是一份极具价值的“宝藏”,它提供了:

1. 业界领先的标准化测试基准:

2. 源自真实世界的代码场景:

3. 全面支持多语言编程:

意想不到的“黑马”:“小而美”的 Prompt 技巧

RP (角色提示):性价比之王

通过给大模型分配一个特定角色,比如“你现在是一名经验丰富的代码审查员”,或者“你是一名资深开发者”。

虽然性能不是最顶尖,但 RP 在 Token 效率(也就是花钱)方面表现突出,在大多数任务中都能提供不错的性能,同时保持相对较低的资源消耗。对于预算有限或对响应速度有要求的场景,RP 可能是更明智的选择。这也是我们日常目前用的最多的一个方式了。

Exemplar Selection (示例选择):基础但有效

其实这个跟 ES-KNN 的核心思想是类似的,就是给模型看一些例子。研究发现,这种看似简单的“当复读机”的方法,只要例子选得对,效果就不会很差。

深度揭秘:Prompt成功的真正底层逻辑

符合人类找规律的习惯,这项研究还从更深层次剖析了 Prompt 成功的底层逻辑,对我们优化 Prompt 策略极具指导意义。先看下试验结果:

图中展示了每个任务中最佳和最差技术的具体表现,以及通过对比解释分析得出的成功关键因素,怎么看:

  1. Task (任务):这个很直观,就是具体的软件工程任务,比如“克隆检测 (Clone detection)”。
  2. Std (标准差):这个指标告诉我们,在这个任务上,不同Prompt技术的表现差异有多大





欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5