1.SELFCHECK: USING LLMS TO ZERO-SHOT CHECK THEIR OWN STEP-BY-STEP REASONING

Introduction

之前的方法:

尝试通过检查这些逐步解决方案中的错误,使用这些检查来为答案提供置信度分数,并在不同的可能选择之间进行选择
使用外部验证模型进行,或者通过对LLM进行少数样本上下文学习,通常需要额外的训练数据或特定领域的示例
问题:
在实践中使用不便,并限制了它们在特定领域或数据格式的应用

现在的方法: 零样本逐步检查器,用于自我识别LLM推理链中的错误

SelfCheck

selfchecking

直接要求LLM检查自己的推理在很大程度上是无效的,无论是直接给原始答案或者给CoT推理中的每一步
selfcheck的模型可以是actor模型也可以是单独的模型
将各个步骤的检查结果合并为整个解决方案的单个置信度分数,为[0, 1]

SelfCheck将每个步骤的检查任务分解为四个阶段:目标提取(概括这一步的目的)、信息收集(确定步骤的前提,过滤掉与当前步骤不相关的信息)、步骤重新生成和结果比较
细节观察: 信息收集的时候给出问题,并且进一步对问题进行分解;而在步骤重新生成的时候只给分解的问题信息
prompt写法直接看论文中,已经很详细了

result integration

对每一步根据结果比较步骤中得到的3种结果,矛盾->-1, 不直接相关->0, 支持->1,根据公式1可计算置信度得分
用这个得分作为解决方案之间投票的权重,加权投票

2.Recursive Introspection: Teaching Language Model Agents How to Self-Improve

Introduction

需要模型掌握的qualities: 产生明确寻求有关任务信息的响应;做出决策并通过思考并在推理时验证它们来改进决策
以迭代方式监督学习者自身反应的改进

算法RISE:

在每次迭代中,我们引导学习者进行按策略部署,并在下一轮中通过对从学习者本身采样获得的多个修订候选运行best-of-N获得更好的响应,或者使用功能更强大的模型的响应,以更方便的为准
我们能够构建展示学习者如何在其自己的分布下改进其响应的推出。然后,我们使用奖励加权回归目标对这些数据的学习器进行微调,该目标能够从此类推出的高质量和低质量部分中学习。通过反复重复这个过程,我们能够向LLM灌输一般的自我改进能力

RISE

基础

对于数据$\mathcal{D}={(x_i,{y_i}^*)}$
给LLM($\pi_{\theta}$)输入$[x,\hat y_{1:t},p_{1:t}]$,这里$\hat y_{1:t}$是之前的生成的结果,$p_{1:t}$是辅助指令(例如,查找错误并改进响应的指令;或来自环境的附加编译器反馈)
优化目标函数:

具体方法

把多次生成答案的过程变成MDP

生成数据并且微调的完成流程:
步骤一:数据生成
展开k轮actor模型生成数据,其中一个MDP有T轮,将state,answer,feedback和reward四个on-policy的量存起来得到数据$\mathcal{D}_{on-policy}$
接下来有两种方法distill和self-distill在此基础上改进
一种方法是distill:使用一个更强的教师模型来生成更强的answer,并且得到不同的reward,注意这里收集的数据都是同步的,得到数据$\mathcal{D}_{on-policy+distill}$
另外一种方法是self-distill:对于每个时间步t,采样N个结果,并且得到里面reward最高的结果。将该回答和reward打包到下一个时间步t+1的MDP数据中,得到$\mathcal{D}_{on-policy+self-distill}$
思考点:为什么self-distill打包到下一步时间步中

步骤二:策略提升
执行加权监督回归

通过奖励值居中来避免奖励高的问题使用频率更高
$\tau$来控制好动作和坏动作的差异

在训练完模型后完整的推理流程:

对于一个问题进行N个时间步的推理,得到一连串不断修改的答案
对于oracle方法(有先验的标准答案或者超级模型),如果答案正确就迭代结束
对于非oracle方法,使用前几回合的答案多数投票的自一致性来解决问题
大部分评估采取后者
细节: 如果出现迭代轮次大于k,就用大小为k的滑动窗口不断储存
具体算法内容参考附录C的伪代码

分析原因

3.Automatically Correcting Large Language Models: Surveying the landscape of diverse self-correction strategies

概述通过反馈纠正LLM的整个过程,考虑5个维度: 纠正什么,反馈的来源是什么,反馈的格式是什么,何时使用反馈,以及如何通过反馈修正模型

三个模型: 语言模型,评价模型,提炼模型
四种主要错误类型: 幻觉,不忠实的推理(不符合推理链),有毒、有偏见和有害的内容(用RLHF对齐),缺陷的代码
两种反馈: 人工反馈和自动反馈,自动反馈包含自我反馈(LLM本身)和外部反馈(来自外部模型)
外部反馈包括四种方式: 其他模型,外部工具,外部知识源,外部评估指标

自动反馈两种格式:

标量值: 用critic model将输入和输出映射到单个分数
自然语言反馈,这里应用在文本编辑和代码生成上

自动反馈修正时机有三类: 训练时校正,生成时校正,事后校正

Training-Time Correction

人类反馈
自动化反馈: 外部指标指导和自我训练

4.LARGE LANGUAGE MODELS CANNOT SELF-CORRECT REASONING YET

观点: 模型仅依靠其固有能力来纠正其初始回应,而不依赖外部反馈难以自我修正它们的推理
悖论: 如果LLM拥有自我纠正的能力,为什么它不在最初的尝试中简单地提供正确的答案呢
内在自我纠正的概念: 模型仅根据其固有能力,在没有外部反馈的情况下努力纠正其初始响应
之前的论文自我纠正的效果来自于:

使用预言机标签来指导自我校正过程的结果
使用多个LLM改进推理,但考虑同等数量的响应,功效也没有超过自一致性

现有工作问题: 一些现有研究声称自我修正能够改进模型的输出,但实际上这种改进可能是因为初始回应生成时使用的提示不够优化。当在自我修正步骤中使用更加详尽的提示时,模型可能会“纠正”初始回答,但这种纠正实际上可能并不是真正的改进,因为它是基于更加明确或优化的提示信息

LLMS CANNOT SELF-CORRECT REASONING INTRINSICALLY

使用的数据集中,现有的带有预言标签的自我修正方法已显示出显着的性能改进
采用三步提示策略进行自我修正:提示模型进行初始生成;提示模型回顾前一个答案并产生反馈;通过反馈提示模型再次回答原来的问题
在有oracle的情况下,有提升,没有oracle性能会下降

MULTI-AGENT DEBATE DOES NOT OUTPERFORM SELF-CONSISTENCY

与其将多智能体辩论标记为“辩论”或“批评”的一种形式,不如将其视为跨多个模型代实现“一致性”的一种手段
从根本上来说,它的概念反映了自我一致性的概念
区别在于投票机制,投票是模型驱动的还是纯粹基于计数

PROMPT DESIGN ISSUES IN SELF-CORRECTION EVALUATION

这里强调正确的提示设计在生成初始LLM响应中的重要性,以公平地衡量自我纠正所实现的绩效改进

conclusion

利用外部反馈进行纠正
根据具有可比较的推理成本的基线评估自我校正
设计提示词

5.Generative Verifiers: Reward Modeling as Next-Token Prediction

之前的方法: 基于LLM的验证器通常被训练为判别分类器来对解决方案进行评分,但它们不利用预训练的LLM的文本生成功能
提出的方法: 与指令调优无缝集成,支持思想链推理,并且可以通过多数投票利用额外的推理时间计算来实现更好的验证?

好处: 在推理过程中,验证者分数是通过提取“是”令牌的概率来获得的,同时可以利用Cot的llm文本生成器的功能

训练方法:
先用yes或者no的二元交叉熵来计算
验证解决方案的正确性(verify数据集)与生成正确的解决方案(correct数据集)两个加权在一起做sft
其中verify数据的验证有两种选择,直接询问和先cot生成再进行判断

6.RL4F: Generating Natural Language Feedback with Reinforcement Learning for Repairing Model Outputs

使用小模型作为critique model,GPT3为actor model,使用Direct-Refinement作为基线(即在没有自生成批评的情况下提示语言模型直接修复自己的答案)
ROUGE:
R1 (Recall under 1-gram overlap): 计算的是模型生成的摘要中单词与参考摘要中单词重叠的比例。这个指标关注的是模型生成的摘要能够覆盖多少参考摘要中的内容。
R2 (Recall under 2-gram overlap): 类似于R1,但是关注的是重叠的连续两个词的比例,这能够更好地捕捉模型生成摘要的连贯性。
RL (Recall under longest common subsequence): 基于最长公共子序列来计算召回率,这能够更全面地评估模型生成的摘要与参考摘要之间的相似度。
对于结果和标答进行对比得到的奖励值,这里使用ROUGE这个衡量文本相似度的奖励函数指标,得到奖励值代入PPO的计算中

当然这里只有最后的结果的奖励,或许可以应用deepspeed-chat这里对于reward model的设置,这里具体的实现方法需要看一下代码

这里测试的任务包含: Action Planning, Topic-Based Summarization, Alphabetization
附录中对应这些任务的提示词的写法可以看看

7.CRITIQUE-OUT-LOUD REWARD MODELS

之前的方法: 一般奖励模型被训练为简单的基于 LLM 的用户提示和助理响应的分类器
LLM-as-a-Judge框架借助偏好能力,但在成对偏好分类上表现不佳
CLoud方法: 将传统奖励模型和LLM-as-a-Judge结合
{prompt,answer,oracle critique}打包做sft训练,并且根据BT preference model生成标量奖励

8.LARGE LANGUAGE MODELS CANNOT SELF-CORRECT REASONING YET

重点: 提供有关推理错误的细粒度反馈

REFINER框架

三种自然语言推理任务:

数学应用题
综合自然语言推理(使用封闭世界规则和事实生成)
道德故事的道德规范和行为生成