Monte Carlo Tree Search Boosts Reasoning via Iterative Preference Learning

Monte Carlo Tree Search Boosts Reasoning via Iterative Preference Learning

image.png
Github:https://github.com/YuxiXie/MCTS-DPO

一、动机

大语言模型在偏好对齐环节可以提高模型的性能。目前有诸多工作尝试将偏好对齐通过迭代的形式进行改进:

It involves a cycle that begins with the current policy, progresses through the collection and analysis of data to generate new preference data, and uses this data to update the policy

目前有一些工作尝试这种迭代式对齐:

  • Reinforced self-training (rest) for language modeling
  • Large language models can self-improve
  • Self-rewarding language models

在强化学习生态中,一个典型的工作AlphaZero就是采用这种迭代式的训练,其通过结合神经网络、强化学习以及蒙特卡洛树搜索(MCTS)实现这个迭代式过程。

然而在强化学习中,MCTS是一个N-step自举法,即对整个trajectory进行多步Reward计算。然而在大模型中,如何使用这种N-step自举法?目前很多preference pair都是站在样本(instance-lever)层面进行打标的,这会导致损失一些细节信息,对于MCTS这种需要以step层面进行学习的方式会不友好。

Conventionally, preference data is collected at the instance level. The instance-level approach employs sparse supervision, which can lose important information and may not optimally leverage the potential of MCTS in improving the LLMs

二、方法

本文提出一种迭代式的DPO算法,通过MCTS算法来抽取偏好数据,并用迭代式地训练Policy模型。整个流程大致如下所示:

  • 首先初始化一个policy模型 π θ ( 0 ) \pi_{\theta^{(0)}} πθ(0),以及一个prompt数据集 D P \mathcal{D}_{\mathcal{P}} DP
  • 在第 i i i次迭代时,先采样一组prompt,并使用上一轮的policy模型 π θ ( i − 1 ) \pi_{\theta^{(i-1)}} πθ(i1)为每个prompt生成若干个response;
  • 使用一个不断进化的Reward标准来抽取偏好数据 D i \mathcal{D}_i Di
  • 基于这个新的偏好数据,训练新的policy模型 π θ ( i ) \pi_{\theta^{(i)}} πθ(i)

这一过程比较类似于online版本的DPO偏好训练。
image.png
在抽取偏好数据时,采用MCTS算法,将instance-level的偏好转换为step-wise。

2.1 MCTS获得 Step-wise偏好数据

假设 x x x为prompt, s t s_t st表示大模型生成推理过程中reasoning chain中的前 t t t步, a a a表示从 s t s_t st进入下一个时刻 s t + 1 s_{t+1} st+1的动作,换句话说 a a a表示当前时刻要执行的推理步骤(动作)。
为此,当前所有可能的推理步骤(动作空间)可以表示为 π θ ( a ∣ x , s t ) \pi_{\theta}(a|x, s_t) πθ(ax,st)。MCTS会根据当前已知的状态预测未来N步骤之后的奖励情况,例如预测下一最佳推理状态可表示为:
image.png
其中 Q ( s t , a ) Q(s_t, a) Q(st,a)表示基于当前已有的reasoning chain,完成当前的推理 a a a后会得到的Reward奖励值。 N ( s t ) 1 + N ( s t + 1 ) \frac{\sqrt{N(s_t)}}{1+N(s_{t+1})} 1+N(st+1)N(st) 则用于平衡探索(exploring)与利用(exploiting)之间的关系,image.png

  • 探索:更多地试探其他可能的推理路径;
  • 利用:取奖励最大的动作 a a a作为下一步的推理。

为了确保在树搜索过程中,在搜索过程中,采用Self-evaluation。evaluation的模板 prompt eval \text{prompt}_{\text{eval}} prompteval如下所示:
image.png
基于这个evaluation prompt prompt eval \text{prompt}_{\text{eval}} prompteval,让当前的额policy模型充当一个evaluator,对当前前 t t t步骤的推理结果 s t s_t st进行预测,得到一个score:

C ( s t ) = π θ ( A ∣ prompt e v a l , x , s t ) \mathcal{C}(s_t)=\pi_{\theta}(\text{A}|\text{prompt}_{eval}, x, s_t) C(st)=πθ(Aprompteval,x,st)

Self-evaluation相关工作:Decomposition enhances reasoning via self-evaluation guided decoding.

另外,如果大模型生成的 s t s_t st在格式上完成了推理(即整个生成已经完成)且正确,那么记作 O ( s t ) = 1 \mathcal{O}(s_t)=1 O(st)=1,若未完成则为0,若推理结果错误则为-1。
为此,可以得到一个Reward打分函数:

R ( s t ) = O ( s t ) + C ( s t ) R(s_t) = \mathcal{O}(s_t) + \mathcal{C}(s_t) R(st)=O(st)+C(st)

当整个树搜索完成扩张(Expand)之后,后面需要进行回溯(Backup),更新公式如下:
image.png
其中 N ( s t ) N(s_t) N(st)是一个计数器。
假设整棵树的深度为 T T T,即reasoning chain最多有 T T T个步骤。在每个步骤时 t ∈ [ 1 , T ] t\in[1, T] t[1,T],都将会构建一个pair,其中正样本为具有最高 Q Q Q值的路径,负样本则为具有最低 Q Q Q值的路径。因此,最终可以获得 T T T个pair。

2.2 迭代式DPO

考虑到偏好数据中可能会存在噪声,此时采用conservation version DPO

参考文献:A note on dpo with noisy preferences & relationship to ipo.
conservation version是指对于一些可能是噪声的偏好数据,将 ( y w > y l ) (y_w>y_l) (yw>yl)逆转为 ( y l > y w ) (y_l>y_w) (yl>yw)

定义一个标签平滑系数:
image.png
DPO中两个偏好样本之间的Reward差为:

h π θ y w , y l = log ⁡ π θ ( y w ∣ x ) π r e f ( y w ∣ x ) − log ⁡ π θ ( y l ∣ x ) π r e f ( y l ∣ x ) h^{y_w, y_l}_{\pi_{\theta}}=\log{\frac{\pi_{\theta}(y_w|x)}{\pi_{ref}(y_w|x)}} - \log{\frac{\pi_{\theta}(y_l|x)}{\pi_{ref}(y_l|x)}} hπθyw,yl=logπref(ywx)πθ(ywx)logπref(ylx)πθ(ylx)

那么,loss定义为:
image.png
相当于一部分 ( y w , y l ) (y_w, y_l) (yw,yl)会被反转。

三、实验

基座模型:Mistral-7B,
基座模型进行SFT训练,训练数据为:https://huggingface.co/datasets/akjindal53244/Arithmo-Data
训练设备:4台A100(40G)
训练细节:
image.png
数据集:

  • GSM8K、MATH
  • ARC、CSQA、OpenBookQA、AI2Science

实验结果:
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS下通过yum搭建完整lnmp环境(多版本PHP共存)

lnmp即 Linux Nginx Mysql PHP,在同一台服务器,可以支持多版本PHP共存使用,本文以 CentOS 7.x 为例介绍如何通过 yum 的方式搭建多版本 PHP 的 lnmp 环境。 前置条件 假设服务器已经通过 yum 方式搭建 lnmp 环境(单版本PHP&a…

Linux下50个基本命令的使用说明【按首字母排序】

1. alias 用于为命令创建别名,以简化命令的输入。 alias llls -l # 现在输入ll将等同于ls -l2. apt-get 用于Debian及其衍生发行版的包管理工具。 sudo apt-get update # 更新包列表 sudo apt-get install package_name # 安装软件包3. cat 用于连接和显示文件内…

Scrapy框架在处理大规模数据抓取时有哪些优化技巧?

在使用Scrapy框架处理大规模数据抓取时,优化技巧至关重要,可以显著提高爬虫的性能和效率。以下是一些实用的优化技巧: 1. 并发请求 增加并发请求的数量可以提高爬虫的响应速度和数据抓取效率。可以通过设置CONCURRENT_REQUESTS参数来调整。…

装修行业办公家具销售公司网站带模版 附带完整的源代码包以及搭建部署教程

系统概述 这款网站源码系统是针对装修行业办公家具销售公司的特点定制的,它融合了现代化的设计理念和先进的技术架构,旨在为用户提供极佳的浏览和购物体验。系统采用了响应式设计,能够自适应不同设备的屏幕尺寸,确保用户在手机、…

git 鉴权失败

这条错误信息通常出现在使用Git进行远程操作时,比如克隆仓库、拉取更新或推送代码。错误的含义是: HTTP Basic: Access denied:访问被拒绝。The provided password or token is incorrect:提供的密码或令牌不正确。Your account …

邦芒秘诀:学会这3招在职场中让自己变得强大

职场上我们总希望自己掌握主动,能够有一定的能力“控场”,但往往事实上并不如此,甚至是不受领导们待见。 ​想要让自己变得强大,要注意做到这三点。 ​1、多展示自己,雁过留痕。 有些人就是实干派,努力做出…

【ai】 2005年 rule based expert system学习笔记1

PPT 是2005年的? Negnevitsky, Pearson Education 使用两种推理引擎的选择 backward chaining(逆向链接)推理过程 backward chaining(逆向链接)推理过程的GPT解释 这幅图展示了一个基于规则的专家系统如何通过backward chaining(逆向链接)推理过程来达到最终的推理目标…

C++ 设计模式--工厂模式

工厂模式&#xff1a;利用C多态的特性&#xff0c;对对象的创建进行封装。 定义一个创建对象的接口&#xff0c;让其子类自己决定实力化哪一个工厂类&#xff0c;工厂模式使其创建过程延迟到子类进行 参考链接 简单工厂 #include <iostream> #include <string> u…

Java并发编程(三)

Java并发编程 1、什么是 Executors 框架 Executors框架是一个根据一组执行策略调用&#xff0c;调度&#xff0c;执行和控制的异步任务的框架。 无限制的创建线程会引起应用程序内存溢出。所以创建一个线程池是个更好的的解决方案&#xff0c;因为可以限制线程的数量并且可以…

大数据-55 Kafka sh脚本使用 与 JavaAPI使用 topics.sh producer.sh consumer.sh kafka-clients

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

如何测量嵌入式软件程序(段)的执行时间?

测量嵌入式软件程序&#xff08;段&#xff09;的执行时间对于评估系统性能和优化代码至关重要。根据调研结果&#xff0c;汇总一些常用的方法如下&#xff1a; 1.插桩技术&#xff1a;这是一种纯软件的性能分析方法&#xff0c;通过在关键代码位置插入信息收集代码来实现。这…

禁毒教育展厅应如何创新展示方式,提升教育意义?

为了深刻揭示毒品的危害&#xff0c;促进禁毒知识的广泛传播&#xff0c;并显著提升公众的防范意识&#xff0c;禁毒教育展厅的推广举措正紧锣密鼓地展开。在这一关键进程中&#xff0c;展厅的空间布局与内容设计的合理性与针对性成为了至关重要的环节。接下来&#xff0c;我们…

angular入门基础教程(二)第一个angular组件

ng中的语法跟vue中是一样的插值语法&#xff0c;其实也是早期vue抄的ng的思路&#xff0c;使用{{variable}}形式&#xff0c;vue借鉴了ng和react&#xff0c;这个我们就不多了。 新建一个子组件 在项目根目录下面&#xff0c;执行 ng g component ./components/UserList这样…

【RL】强化学习入门:从基础到应用

本篇文章是博主强化学习RL领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章强化学习&#xff1a; 强化学习…

深入解析Kylin的元数据管理:架构与实践

引言 在大数据时代&#xff0c;元数据管理对于数据仓库的效率和可维护性至关重要。Apache Kylin&#xff0c;作为一个开源的分布式分析引擎&#xff0c;专门设计用于支持大数据的快速分析。Kylin 的元数据管理是其核心功能之一&#xff0c;它不仅支撑着数据模型的构建&#xf…

JDBC介绍及使用

目录 JDBC概述 JDBC概念 JDBC本质 JDBC好处 JDBC快速入门 JDBC API详解 DriverManager Connection Statement ResultSet PreparedStatement 数据库连接池 数据库连接池简介 数据库连接池实现 Driud使用 JDBC练习 JDBC概述 JDBC概念 JDBC 就是使用Java语言操作…

关于“毒药水式“色彩搭配的概念

关于"毒药水式"色彩搭配 历时63天&#xff0c;我精心打造了一个全方位型网站模板&#xff0c;其包含&#xff08;录音、留言、可视化图表及源码显示、音乐播放、多种游戏、相册图片展示、日历等多种功能&#xff09;。我将其命名为“常温”&#xff0c;我将于8月13日…

基因克隆技术在医学领域的应用实例有哪些?

基因克隆技术在医学领域的应用实例有哪些&#xff1f; 李升伟 基因克隆技术在医学领域有众多应用实例&#xff0c;以下为您列举一些常见的&#xff1a; 1. 胰岛素的生产&#xff1a;通过基因克隆技术&#xff0c;将人类胰岛素基因插入到细菌或酵母的基因组中&#xff0c;使…

Docker Compose V2 安装 ClickHouse v20.6.8.5 经验分享

前言 ClickHouse 是一款开源的分布式列式数据库管理系统,专门设计用于高性能的大数据分析和查询。 目前项目中用到的一个场景是将mongo的数据同步到clickhouse,使用clickhouse做报表,后续也将分享同步和使用方案 使用 Docker Compose 部署单机版,小项目和自己测试够用了,生…

String Functions(字符串函数)

String Functions&#xff08;字符串函数&#xff09;是一组用于操作字符串数据的函数&#xff0c;它们在多种编程语言、数据库查询语言以及特定工具中都有广泛的应用。这些函数允许用户执行诸如字符串的创建、修改、查询、比较、转换和格式化等操作。以下是对String Functions…