【LLM-推理】Self-Refine:使用feedback迭代修正LLM的Output

来源: https://selfrefine.info/

1.论文速读(摘要+引言)

本文主要提出了Self-Refine策略,旨在通过一个LLM不断refine修正LLM的输出,使其在无需额外训练的情况下,在下游任务产生更好的效果。

该方法的直观Insight:我们在写一封 email 时,往往写出一个 draft,然后再修改其中措辞不当的地方,修改为更好的版本。
其思路如下图:

  • 首先,给定一个 input x,在 prompt pgen下让 LLM 先生成一个初始 outputy0
  • 进行迭代,每一轮 t 中:
    • Feedback:input x、上一轮 output y(t)prompt p(fb)给 LLM,得到这一轮的 feedback f(bt)【feedback的prompt】
    • Refine:input x历史的所有 feedbackoutputprompt P(refine) 给 LLM,得到这一轮的 output T(t+1)。【refine重新优化的prompt】

​如此迭代,直到 feedback 中被检查出有stop标识符,或者达到了最大迭代次数。

2.方法 method

给定输入,self-refine生成最初的输出,根据该输出提出反馈,然后根据反馈优化输出。直到得到满意的答案。self-refine依靠LLM和三个prompts(生成输出的Prompt,生成反馈的Prompt,根据反馈优化输出的优化Prompt)

3.评估

主要在这几个任务进行评估:

对话生成

代码优化

代码可读性提升 数学推理

反转情绪

缩写词生成

限制性生成



Metrics指标效果:
Math reasoning %解决率code optimization:% 代码优化率Acronym Generation:%受限生成

相关推荐
nuowenyadelunwen7 小时前
CS 61A Lab 2 笔记:短路求值、高阶函数与 Lambda 表达式
python·函数式编程·cs61a·berkeley
qq_422828628 小时前
android图形学之SurfaceControl和Surface的关系 五
android·开发语言·python
weixin_444012938 小时前
c++如何将std--vector直接DUMP到二进制文件_指针地址直写【附代码】
jvm·数据库·python
woxihuan1234568 小时前
Go语言中--=运算符详解:位右移赋值操作的原理与应用
jvm·数据库·python
石山代码8 小时前
Python 数据分析三大库:NumPy + Pandas + Matplotlib
python·数据分析·numpy
如竟没有火炬8 小时前
用队列实现栈
开发语言·数据结构·python·算法·leetcode·深度优先
yivifu9 小时前
CustomTkinter的布局管理器介绍及应用
python·gui·customtkinter·pdf去水印
m0_690825829 小时前
如何备份被破坏的数据表_强制跳过错误的导出尝试
jvm·数据库·python
m0_733565469 小时前
JavaScript中Reflect-ownKeys获取所有键名的优势
jvm·数据库·python
水木流年追梦9 小时前
大模型入门-应用篇3-Agent智能体
开发语言·python·算法·leetcode·正则表达式