问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

论文阅读:Self-Refine——基于自反馈的迭代优化方法

创作时间:
作者:
@小白创作中心

论文阅读:Self-Refine——基于自反馈的迭代优化方法

引用
CSDN
1.
https://blog.csdn.net/javacc2015/article/details/137041904

像人一样,LLM也不能一次尝试就能产生最好的结果。受启发与人类精炼写作的过程,本文提出self-refine的方法。该方法LLM,通过内部的反馈和精炼机制来提升模型最初的输出结果。这个方法的主要idea是,用LLM先生成一个最初的输出,然后在用这个LLM对自己的结果做出评价然后根据评价来升华自己的最初的输出。self-refine不需要有监督训练数据,额外的训练,强化学习等等,只需要一个LLM同时作为,生成器,反馈器和精炼器。本文中在7个不同的任务中进行评价,从对话生成到数学推理。从结果来看,self-refine生成的答案更受人欢迎,并且自动化的评价指标也高于单步的生成的结果。平均提升20%左右。

1.引言

虽然大模型能生成连贯的输出,但是对于复杂问题的生成,还是力不从心。这种的情况下,如果需要提高生成效果需要迭代优化。常用的迭代精炼答案需要用具体的领域数据训练精炼模型。其他方法依靠外部监督模型或者奖励模型,或者人类标注。这些方法低估了不需要外部监督的有效的精炼方法。

不停迭代是优化人类解决问题的基本特点。迭代优化是一个这样的过程:首先产出初稿,接着根据自我反馈不断优化提炼。这篇论文中,提出大模型可以通过自我优化而不是附加训练,在多种任务中产出高质量输出。

本文提出self-refine:可迭代的自我优化算法。包括feedback和refine两个步骤。给定一个初始大模型
,根据大模型生成输出,将输出输入大模型
得到feedback,再把feedback输给大模型来优化原来的输出。如此反复迭代直到一定的迭代次数或者大模型觉得不用再优化即停止。论文中使用few-shot来引导
生成反馈并且用反馈来优化最原始输出。需要强调的是,我们用相同的模型来生成反馈和用反馈优化答案。

2.方法

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

(1)Initial generation
few-shot

(2)feedback
feedback聚焦输出的多个方面。比如,对于代码优化任务,feedback关注性能,可读性,整体质量等等。feedback的Prompt引导大模型生成可行性和具体的反馈。‘可行性‘指的是反馈需要包含能提升输出的可行行为,‘具体’是指包含具体的语句来使输出做出改变。

(3)refine
(4)refine
考虑历史的优化过程

3.评估

(1)在7个任务上进行评估:

  • 对话生成
  • 代码优化
  • 代码可读性提升
  • 数学推理
  • 反转情绪
  • 缩写词生成
  • 限制性生成

(2)Metrics

  • 具体任务指标:Math reasoning %解决率,code optimization:% 代码优化率,受限生成:%覆盖率
  • 人类偏好:blind A/B评估
  • GPT-4-偏好:#疑问 模型用了GPT4-那么评价的时候就不应该在用这个评价指标了吧?

(3)结果

4.分析

(1)反馈质量的影响:反馈质量(可执行,具体化)消融实验对比通用反馈+无反馈

(2)多次反馈-优化迭代有多重要:

(3)我们能仅生成多个答案而不是优化吗?
self-refine起作用是因为多次迭代优化,还是仅因为产生了更多的结果?

(4)self-refine在弱的模型上有效果吗?
Vicuna-13B 生成最初结果没有问题,但是refine的过程很困难。

(5)质量分析
分析70个goodcase和badcase.发现,当self-refine没法提升最初的生成时,大部分原因是因为反馈错误,而不是优化(过程)错误。33% 的失败由于feedback没有准确指出错误的地方,61%则是给出不恰当的修改意见,仅有6% 的错误是由于优化过程中执行错误。可见,准确的feedback的重要性。

5.相关研究

6.讨论

7.结论

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号