当前位置: 首页 > article >正文

[NeurIPS 2022] STaR: Bootstrapping Reasoning With Reasoning

Contents

  • Introduction
  • Method
  • Experiments
  • References

Introduction

  • CoT 推理可以有效提升 LLM 推理能力,但 few-shot prompting 无法发挥 CoT 的全部潜力,训练能够生成中间推理步骤 (i.e., rationale) 的 LLM 又需要大量人工标注 rationale,为此作者提出 STaR (Self-Taught Reasoner),可以仅利用少量含有 rationale 的标注数据和大量不含 rationale 的标注数据,迭代式地生成大量含有 rationale 的数据集并基于此训练能够生成 rationale 的 LLM,有效提升 LLM 的复杂推理能力

Method

在这里插入图片描述

  • Rationale Generation Bootstrapping (STaR Without Rationalization). 给定预训练 LLM M M M 和 small prompt set P = { ( x i p , r i p , y i p ) } i = 1 P \mathcal{P}=\{(x_{i}^{p},r_{i}^{p},y_{i}^{p})\}_{i=1}^{P} P={(xip,rip,yip)}i=1P (e.g. P = 10 P = 10 P=10),其中 x x x 为问题, r r r 为中间推理步骤, y y y 为问题回答,可以利用 few-shot prompting 为一个更大的数据集 D = { ( x i , y i ) } i = 1 D \mathcal D=\{(x_i,y_i)\}_{i=1}^D D={(xi,yi)}i=1D 生成中间推理步骤 r ^ i \hat r_i r^i 和答案 y ^ i \hat y_i y^i,这样就得到了含有中间推理步骤的大规模数据集。此外,作者只保留其中 y ^ i = y i \hat y_i=y_i y^i=yi 的样本,因为这些样本对应的中间推理步骤质量总体来说会更高一些,由此得到 filtered dataset,在此数据集上微调 M M M 得到可以直接生成中间推理步骤的 LLM. 上述步骤为 1 个循环,STaR 会重复上述循环多次,每次都用上一轮循环中得到的最新的生成中间推理步骤的 LLM M n − 1 M_{n-1} Mn1 D \mathcal D D 生成中间推理步骤得到 filtered dataset,然后在该数据集上基于预训练 LLM M M M 重新训练得到新的生成中间推理步骤的 LLM M n M_n Mn;上述优化过程可以被近似看作 policy gradient,其中 J ( M , X , Y ) J(M,X,Y) J(M,X,Y) 为 total expected reward across the dataset
    在这里插入图片描述
  • Rationalization. 上述步骤还有一个缺点,就是如果 D \mathcal D D 中某些难样本始终无法生成正确答案,那么这些样本将永远无法加入 filtered dataset,无法被有效学习;为此,作者给生成错误答案的样本 prompt 中加入提示正确答案的 hint 来引导模型生成中间推理步骤和最终答案
    在这里插入图片描述
  • STaR.
    在这里插入图片描述

Experiments

  • Symbolic Reasoning: Results on Arithmetic.
    在这里插入图片描述在这里插入图片描述
  • Natural Language Reasoning: Commonsense Question Answering.
    在这里插入图片描述
  • Mathematical Reasoning in Language: Grade School Math.
    在这里插入图片描述

References

  • Zelikman, Eric, et al. “Star: Bootstrapping reasoning with reasoning.” Advances in Neural Information Processing Systems 35 (2022): 15476-15488.

http://www.kler.cn/news/333997.html

相关文章:

  • 逻辑回归(下): Sigmoid 函数的发展历史
  • 【C++】多态练习题(面试常考)
  • 网络基础 【HTTPS】
  • 【RocketMQ】从 文件/数据结构 视角理解RocketMQ原理
  • 数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表
  • (14)MATLAB莱斯(Rician)衰落信道仿真4
  • Django上下文处理器
  • vue2接入高德地图实现折线绘制、起始点标记和轨迹打点的完整功能(提供Gitee源码)
  • 华为开源自研AI框架昇思MindSpore应用案例:计算高效的卷积模型ShuffleNet
  • Redis --- 第三讲 --- 通用命令
  • 【Python】Dejavu:Python 音频指纹识别库详解
  • 深度学习:CycleGAN图像风格迁移转换
  • OpenCV背景建模:从基础到实践
  • Android中的Activity与Fragment:深入解析与应用场景
  • Android架构组件MVVM模式的实战应用与数据绑定技巧
  • DatePicker 日期控件
  • Python异步编程模型实战教程
  • JavaSE——面向对象练习题
  • CSS实现磨砂玻璃效果
  • 031集——文本文件按空格分行——C#学习笔记