大语言模型(LLM)的出现标志着人工智能技术的重大进步,LLM 表现出对自然语言强大的处理、生成和理解能力。为了让 LLM 更好发挥自己的能力,需要设计有效的 prompt 输入,因此 prompt 工程变得至关重要。这篇论文系统研究了不同 prompt 模板对 LLM 性能的影响,旨在帮助人们优化设计 prompt,更好地开发和利用 LLM 的能力。
论文地址:
https://arxiv.org/abs/2411.10541v1
研究目的
有效的 prompt 可以更好地指导 LLM 产生期望的输出,更加高效地使用 LLM 的能力。有效的 prompt 设计通常包括清晰的指令、检索增强生成(RAG)、其他用于增强上下文学习(ICL)的 prompt 方法以及适当的格式化。
许多现象表明 prompt 的变化会对 LLM 的性能产生显著的影响,这篇论文旨在系统性研究不同 prompt 模板对 LLM 性能的影响,作者评估了 prompt 模板对 OpenAI 四个 GPT 模型在六个 benchmark 中的影响,其中 prompt 模板的格式涵盖了纯文本、Markdown、YAML 和 JSON。
具体研究问题包括:
-
敏感性:
模型对 不同 prompt 格式的敏感程度
-
一致性:
不同 prompt 结构下模型响应的一致性
-
可转移性:
prompt 格式在不同模型间的可迁移性,以及 prompt 格式与任务特定能力的相关性和模型大小对性能的影响
实验设置
1. 数据集
这篇论文的研究涵盖自然语言理解(NL2NL)、代码生成(NL2Code)、代码翻译(Code2Code)三类任务,包括 MMLU、NER Finance、HumanEval、FIND、CODEXGLUE、HumanEval-X 等数据集,使用特定评估指标衡量模型性能。
2. prompt 设计
采用 4 种输入格式(纯文本、Markdown、YAML、JSON),prompt 包含角色、任务指令、示例、输出格式指令和用户问题五个组件,确保不同格式下内容一致,仅结构和语法有差异。
3. 模型选择
使 OpenAI的GPT-3.5和GPT-4模型,包括“gpt-35-turbo-0613”、“gpt-35-turbo-16k-0613”、“gpt-4-32k-0613”和“gpt-4-1106-review”,以对比不同上下文窗口大小和模型版本的性能。实验使用了Azure OpenAI 平台。
实验结果与分析
1. 敏感性
评估方法:通过比较不同 prompt 模板下模型性能得分,使用配对t检验确定性能差异是否显著,定义敏感性指标衡量 prompt 格式对模型性能影响。
实验结果:模型性能对 prompt 格式变化敏感,不同格式下性能差异显著(p 值大多小于 0.01)。如在 FIND 数据集,GPT-3.5-turbo 系列从 Markdown 切换到纯文本格式时性能提升 200%;HumanEval benchmark 中,GPT-4-32k-0613 的输入从 JSON 切换到纯文本格式性能提升超 300%,表明模型性能受 prompt 格式影响大。
2. 一致性
评估方法:采用一致性度量指标,计算不同 prompt 模板下产生相同响应的测试样本比例,衡量模型输出的一致性。
实验结果:在 MMLU 和 FIND 数据集上测试表明,GPT-4 一致性得分超 0.5,优于 GPT-3.5-turbo 系列(得分低于 0.5),但仍需改进以实现跨格式可靠性能,说明模型大小影响响应一致性,较大模型在不同 prompt 下输出更一致。
3. 可迁移性
评估方法:计算不同模型间最佳 prompt 模板集合的交并比(IoU),衡量 prompt 格式在模型间的可迁移性,IoU 越高表示可迁移性越强。
实验结果:GPT-3.5-turbo 偏好 JSON,GPT-4 青睐 Markdown,不同模型系列间 prompt 格式兼容性低(IoU 常低于 0.2),同系列模型(如 GPT-3.5-turbo-16k-0613和GPT-3.5-turbo-0613)IoU 超 0.7,表明即使同架构模型对相同 prompt 反应不同,需模型特定 prompt 工程。
4. 其他分析
格式与任务技能相关性:以 MMLU 基准测试分析表明,模型对 prompt 格式敏感性是一般特征,与任务所需特定技能或推理能力无关,prompt 格式显著影响模型处理和响应信息能力,例如在代码翻译任务中,JSON 格式准确度相较于 Markdown 可提升 42%。
模型大小与鲁棒性:通过计算系数平均偏差(CMD)衡量模型性能受 prompt 格式变化影响程度,发现 GPT-4 系列(尤其是 GPT-4-1106-preview)比 GPT-3.5 系列对格式变化更鲁棒,表明更大的模型在处理不同格式 prompt 时表现出更强的鲁棒性。
研究结论与局限
结论
-
1. Prompt 格式显著影响 GPT 模型性能,无普遍适用格式,当前评估方法需考虑 prompt 结构,未来测试应采用多样格式准确评估和提升模型性能。
-
2. 模型大小影响对 prompt 格式敏感性,GPT-4 性能受 prompt 格式变化影响小于 GPT-3.5,更大模型处理 prompt 可能更一致,这对研究 LLM 可解释性、提升 AI 适应性和人机交互有意义。
局限
1. 这篇论文中的研究仅聚焦 GPT 模型,未来应针对更多其他模型开展实验(如 LLaMA、Gemini、PaLM、Phi 等)以全面理解 prompt 格式影响。
2. 后续研究可探索更多 prompt 格式(如 HTML、XML),以更全面研究 prompt 格式效应。
3. 实验仅改变 prompt 格式,未来可研究结合其他 prompt 工程技术时模型对 prompt 格式敏感性变化,进一步探索 prompt 工程实践技术和经验。
关于如何设计更加有效 prompt 的一些思考
确定最适合特定任务的 prompt 格式是一个复杂的过程,需要综合考虑多种因素。
实验评估
- 多格式测试:对 LLM 模型在不同任务(如自然语言推理、代码生成、翻译等)上使用多种 prompt 格式(纯文本、Markdown、YAML、JSON)进行测试,比较不同格式下模型的性能表现。
- 性能指标衡量:通过特定的性能指标来评估模型在不同 prompt 格式下的表现。如在代码翻译任务(如 CODEXGLUE、HumanEval-X)中使用 BLEU 分数来比较生成代码与参考代码的相似度;在自然语言相关任务(如 MMLU)中使用准确率衡量模型回答问题的准确性等。
模型特性分析
- 模型版本差异:观察不同版本模型对 prompt 格式的敏感度和适应性。如实验中发现 GPT-4 系列(特别是 GPT-4-1106-preview)相对 GPT-3.5 系列对 prompt 格式变化更具鲁棒性,这意味着在选择 prompt 格式时,对于 GPT-4 系列模型可能有更多选择空间,而对于 GPT-3.5 系列则需要更谨慎地测试不同格式。
- 模型大小影响:一般来说,较大模型(如 GPT-4)在处理不同 prompt 格式时可能表现出更好的一致性,但仍受格式影响。了解模型大小与 prompt 格式之间的关系有助于初步判断模型对格式变化的承受能力,从而为选择合适格式提供参考。
任务需求考量
- 任务类型适配:不同任务类型可能对 prompt 格式有不同偏好。例如,在自然语言理解中,可能更注重 prompt 的清晰表达和逻辑结构,某种格式如果能更好地组织问题和选项,可能会提高模型的理解和回答准确性;在代码生成任务中,格式如果能清晰呈现代码结构和逻辑,可能有助于模型生成高质量代码。所以需要根据任务的具体性质来选择可能适合的 prompt 格式。
- 任务复杂度关联:复杂任务可能需要更结构化、清晰的 prompt 格式来帮助模型理解任务要求。比如在涉及多步骤推理或大量信息处理的任务中,像 JSON 或 YAML 这样能够层次化组织信息的格式可能更合适,便于模型逐步分析和处理任务;而简单任务可能对格式要求相对较低,但也可能存在某种格式能进一步优化模型表现的情况。
迭代优化策略
- 初步选择与测试:根据任务特点和对模型的初步了解,先选择几种可能适合的 prompt 格式进行初步测试,观察模型在这些格式下的基本表现,如准确性、生成质量等。例如,如果是一个文本分类任务,可以先尝试纯文本和 Markdown 格式,比较模型在这两种格式下对文本分类的准确性。
- 基于结果调整:根据初步测试结果,对表现较好的格式进行进一步优化或调整,如修改格式中的某些元素(如分隔符、标记等),再次测试模型性能。如果发现某种格式在某个方面表现不错,但在其他方面存在问题,可以针对性地改进该格式,看是否能提升整体性能。同时,也可以尝试结合不同格式的优点,创造出更适合任务的混合格式,并测试其效果。
如何学习大模型 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 的正确特征了。