Self-Supervised Prompt Optimization

论文:[2502.06855] Self-Supervised Prompt Optimization

仓库:GitHub - Airmomo/SPO: SPO | Self-Supervised Prompt Optimization

自监督提示优化(SPO)

创新点

  • 成对比较评估

  • 输出指导优化

全文介绍

背景

随着大语言模型的发展,设计提示对于最大限度发挥模型的推理能力,以及确保符合不同的任务要求,逐渐成为了关键。然而,创建有效的提示通常需要大量的试错实验和深入的特定任务的知识。 (模板填充具体问题 → 生成完整提示 → 输入模型 → 获得输出) 研究人员探索了使用LLM自己的能力来自动改进提示的提示优化(PO)方法。PO提供了一种更系统和更有效的快速设计方法,它通常涉及一个快速优化、执行和评价的迭代过程。现有的方法数值评价机制和文本梯度优化策略上都取得了成功。 数值评价机制:通过可量化的指标直接评估提示的性能,并基于数值反馈迭代优化提示。 文本梯度优化:通过自然语言反馈指导提示优化,利用LLM生成"文本梯度"(即改进建议),逐步调整提示内容。

(相关方法正在整理中)

问题

  • 目前的方法往往严重依赖于外部参考进行评价。

  • 采用真实标签(Ground Truth)进行评价导致其难以适用于开放任务。

  • 现有的方法通常需要对大量样本进行提示评估,以获得可靠的反馈,从而导致大量的计算开销。

**解决方案:**自监督提示优化(Self-Supervised Prompt Optimization, SPO)

核心贡献

  1. 无需外部参考的优化框架:

    • 提出自监督提示优化(SPO) ,通过LLM输出的成对比较评估提示质量,摆脱对标注数据或人工反馈的依赖。

    • 利用LLM自身理解任务需求的能力,将输出直接作为优化信号。

  2. 极致的成本效率:

    • 优化成本仅为现有方法的 1.1%~5.6% (如单数据集成本低至 0.15美元 ),且仅需 3个样本即可完成一轮优化。
  3. 任务普适性:

    • 封闭任务 (数学推理、事实核查)和开放任务 (创意写作、角色扮演)中均表现优异,尤其提升小模型(如GPT-4o-mini)性能达 30%

模型设计

三大功能:

  1. 优化函数(ϕₒₚₜ):分析当前最优提示及输出,生成新提示(如引入结构化XML模板指导LLM迭代改进)。

  2. 执行函数(ϕₑₓₑ):生成输出(路径 + 答案)

  3. 评估函数(ϕₑᵥₐₗ) :通过LLM对输出进行成对比较,选择更优提示。

复制代码
用户输入  
   ↓  
[ϕₒₚₜ] 初始化提示模板  
   ↓  
[ϕₑₓₑ] 执行生成首次输出  
   ↓  
[ϕₑᵥₐₗ] 评估输出质量  
   ↓  
[ϕₒₚₜ] 根据反馈优化提示  
   ↓  
[ϕₑₓₑ] 执行新提示生成输出  
   ↓  
[ϕₑᵥₐₗ] 多轮对比评估  
   ↓  
(循环直至收敛)  
   ↓  
最终输出  

评估

历史分析

  • 评估方法:

    • 预定义的指标

    • LLM-as-a-judge

    • 人类反馈

  • 评估反馈

    • 数值反馈(需要大量样本、容易忽略细节)

    • 文本反馈

    • 排序或选择反馈

评估框架

  • Output vs. Ground Truth(真实标签):需 Ground Truth,适合封闭任务

  • Output vs. Output(核心):不依赖外部参考,适配开放任务

优化函数

目标 :基于当前最佳提示和对应输出,生成改进后的新提示。 实现机制

  • 结构化模板引导:使用XML格式的元提示(Meta Prompt)指导LLM分析现有输出的不足并提出改进方向。

  • 基于任务理解的动态调整:LLM根据输出内容反推任务需求,自动调整提示结构。例如,在数学推理任务中,若发现模型忽略坐标计算,新提示会强制要求"每一步更新坐标并记录"。

优化过程

  • 优化方向由模型输出的缺陷驱动

  • 修改的是提示的语义内容

执行函数

目标 :将优化后的提示应用于LLM,生成任务输出。 关键设计

  • 小样本高效执行:仅需3个随机样本(无需标注答案)即可运行,大幅降低成本。

  • 输出结构化:强制要求输出包含推理路径和最终答案,便于后续评估。

评估函数

目标 :通过LLM对比新旧提示的输出,选择更优者。 评估流程

  1. 构建对比对:将同一问题在新旧提示下的输出组成对(Output A vs. Output B)。

  2. 设计评估指令:要求LLM基于任务需求(如逻辑严谨性、格式合规性)判断优劣。

  3. 多轮随机评估:每个迭代进行4轮独立比较,减少偶然偏差。

评估结果处理

  • 若新提示胜率超过阈值(如3/4),则替换为当前最佳提示;

  • 否则保留原提示,进入下一轮优化。

闭环迭代流程

  1. 初始化:从基础提示模板(如Chain-of-Thought)和3个样本开始。

  2. 迭代优化

    • 第1轮:生成Prompt₁ → 执行 → 评估 vs. Prompt₀;

    • 第2轮:生成Prompt₂ → 执行 → 评估 vs. Prompt₁;

    • 持续至达到最大迭代次数(如10轮)或性能收敛。

  3. 终止条件:达到预设迭代次数或连续多轮无显著改进。

全文总结

一句话总结:在实现显著成本效益的同时的同时,消除了对外部参考的依赖。

成果

(1)克服了依赖于外部参考实现快速优化的问题。

(2)以每个数据集仅0.15美元的价格实现了显著的成本效益。

(3)实现了最先进的结果,而只需要现有方法成本的1.1%- 5.6%。

(4)在标准基准测试和不同的实际应用程序上的成功验证了SPO的有效性和泛化能力。

风险

  • 潜在的偏见放大:SPO依赖LLM自身作为评估者,导致"偏见反馈→优化强化偏见"(正反馈调节)。【尝试解决将有可能导致风险3】

    • 解决方案:1.加入公平性约束(Bias Penalty Loss),惩罚带有偏见的输出。【注意:平衡成本】2.去偏数据集微调评估函数(ϕₑᵥₐₗ)?

    • Mitigating Social Bias in Large Language Models: A Multi-Objective Approach within a Multi-Agent Framework

    • Bias and Fairness in Large Language Models: A Survey

  • 有害内容产生的误用:SPO仅以性能为优化目标,忽略内容安全性。【尝试解决将有可能导致风险3】

    • 解决方案:内置Moderation API?
  • 以及过度依赖LLM:SPO生成的提示可能会更符合人类的偏好,且全流程无需人工介入,用户可能忽视对关键结果的二次验证。

    • 解决方案:增加置信度分析。数据集微调评估函数(ϕₑᵥₐₗ)?

细节

1、优化函数如何根据输出修改提示?

通过**元提示(Meta Prompt)**调用LLM,直接生成改进后的提示。

(元提示模板eg.)

复制代码
<analyse>  
分析当前输出的缺陷:{缺陷描述}  
</analyse>  
<modification>  
总结改进方向:{改进策略}  
</modification>  
<prompt>  
生成优化后的完整提示  
</prompt>  

这个提示模板指导llm通过结构化XML分析迭代地改进现有的提示。它需要识别提示输出中的缺陷,提出修改,并生成优化的版本。

该模板在保持需求遵从性的同时,也强调了增量式的改进。

在每次迭代中,优化函数生成新提示后,评估函数会进行四轮独立评估,具体流程如下:

  1. 每轮从数据集中随机抽取不同的样本(3个最优,10次迭代)

  2. 四轮中若新提示胜出≥3次,则判定为优化成功;否则保留原提示

相关推荐
胡耀超5 分钟前
图像颜色理论与数据挖掘应用的全景解析
人工智能·python·opencv·计算机视觉·数据挖掘·视觉检测·pillow
R²AIN SUITE9 分钟前
快消零售AI转型:R²AIN SUITE如何破解效率困局
大数据·人工智能·产品运营
ONLYOFFICE12 分钟前
集成 ONLYOFFICE 与 AI 插件,为您的服务带来智能文档编辑器
人工智能·ai·编辑器·onlyoffice·文档编辑器·文档预览·文档协作
一个天蝎座 白勺 程序猿18 分钟前
GpuGeek全栈AI开发实战:从零构建企业级大模型生产管线(附完整案例)
人工智能·gpugeek
love530love20 分钟前
家用或办公 Windows 电脑玩人工智能开源项目配备核显的必要性(含 NPU 及显卡类型补充)
人工智能·windows·python·开源·电脑
深圳市青牛科技实业有限公司22 分钟前
D2203使用手册—高压、小电流LDO产品4.6V~36V、150mA
人工智能·单片机·嵌入式硬件·电动工具·工业散热风扇
shengjk126 分钟前
序列化和反序列化:从理论到实践的全方位指南
java·大数据·开发语言·人工智能·后端·ai编程
AI大模型顾潇27 分钟前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j
2501_9153743542 分钟前
数据清洗的艺术:如何为AI模型准备高质量数据集?
人工智能·机器学习
山北雨夜漫步1 小时前
机器学习 Day17 朴素贝叶斯算法-----概率论知识
人工智能·算法·机器学习