论文概述
这篇里程碑式论文介绍了通过提示优化(Optimization by PROmpting, OPRO),这是一种利用大型语言模型作为各种任务优化器的突破性范式。与传统的基于导数的优化不同,OPRO 使用自然语言描述优化任务,并根据先前评估的候选项迭代生成新解决方案。该方法在提示优化上展示了显著的有效性,其中 OPRO 优化的提示在 GSM8K 上优于人工设计的提示最多 8%,在 Big-Bench Hard 任务上优于最多 50%。这项工作在 Hugging Face 上获得了 77 个点赞,表明了强大的社区认可。
论文信息:
- 发布时间:2023-09-07
- 作者:Chengrun Yang, Xuezhi Wang, Yifeng Lu等
- 机构:Google DeepMind
- 研究方向:提示工程,大型语言模型推理
- 核心技术:提示优化(Prompt Optimization)
研究背景
大型语言模型(LLM)在各类任务中展现出强大的能力,但如何有效引导模型进行复杂推理仍是一个挑战。本研究针对以下问题展开:
现有问题
- 传统提示方法在复杂推理任务上表现不佳
- 模型难以处理需要多步骤推理的问题
- 缺乏系统化的推理引导方法
研究动机
本研究旨在探索更有效的提示工程技术,提升大型语言模型在推理任务上的表现,特别关注 OPRO、将大型语言模型用作优化器、提示优化等关键技术。
核心方法
方法概述
OPRO 在迭代优化循环中运行:(1)大型语言模型根据包含问题描述和先前生成的解决方案及其分数的元提示生成新的解决方案候选;(2)使用特定任务的目标函数评估新解决方案;(3)将解决方案和分数添加到提示中,用于下一次迭代。特别是对于提示优化,OPRO 搜索最大化任务准确率的指令,一个大型语言模型(优化器)提出指令候选,另一个大型语言模型(评分器)在目标任务上评估它们。
本方法的核心在于通过结构化的提示设计,引导大型语言模型展现出更强的推理能力,无需额外的模型训练或微调。
关键创新点
创新 1:引入了 OPRO 范式 - 通过以自然语言描述任务来使用大型语言模型作为通用优化器
创新 2:展示了大型语言模型可以在没有梯度信息的情况下有效优化提示
创新 3:在 GSM8K 数学推理上实现了相比人工提示最多 8% 的改进
创新 4:在 Big-Bench Hard 任务上实现了最多 50% 的改进
创新 5:表明 OPRO 适用于多个大型语言模型(PaLM 2、GPT-3.5、GPT-4)
创新 6:提供了关于元优化过程提示设计的消融研究
技术特点
- 系统化设计:提供完整的方法论框架,可复现性强
- 广泛适用性:适用于多种推理任务(算术、常识、符号推理等)
- 零成本实现:无需模型微调,仅需调整提示格式
- 显著性能提升:在多个基准测试上取得突破性结果
- 可组合性:可与其他提示工程技术组合使用
实验结果
基准测试性能
跨多个领域的综合实验:(1)线性回归和旅行商问题作为概念证明;(2)在 GSM8K(数学应用题)和 Big-Bench Hard 任务上进行提示优化;(3)跨不同大型语言模型优化器(PaLM 2-L、GPT-3.5、GPT-4)和评分器的比较;(4)关于元提示设计的消融研究,包括优化轨迹格式和提示多样性;(5)分析显示解决方案质量随优化步骤改善,更好的优化器生成更有效的提示。
性能分析
实验结果表明,该方法在多个主流基准测试上都取得了显著的性能提升,特别是在需要复杂推理的任务上表现突出。
关键发现
- 性能提升显著:在多个基准测试中取得了最先进(SOTA)或接近最先进的结果
- 规模效应明显:模型参数规模对方法效果有重要影响,通常需要 >100B 参数才能充分发挥效果
- 推理质量关键:生成的推理步骤质量直接影响最终结果的准确性
- 任务泛化性强:同一方法可以应用于不同类型的推理任务
实际应用
适用场景
- 数学推理:解决复杂的数学问题,包括应用题和逻辑题
- 常识推理:回答需要常识知识的问题
- 符号推理:处理逻辑符号和规则推理任务
- 编程问题:代码生成和算法设计
实现建议
在实际项目中应用提示优化时,建议:
- 选择合适的示例:准备高质量的少样本示例,展示完整的推理过程
- 控制步骤粒度:根据问题复杂度调整推理步骤的详细程度
- 迭代优化:根据输出质量不断调整提示格式和示例
- 结合其他技术:可与自洽性(Self-Consistency)等技术组合使用以提高稳定性
代码示例
1 | # 基本提示模板 |
相关资源
- arXiv 论文:arXiv:2309.03409
- 相关论文:思维链提示、自洽性、思维树