【AI学习】Huggingface复刻Test-time Compute Scaling技术

OpenAI ChatGPT o1 背后的关键技术Test-time Compute Scaling,Huggingface实现并开源了!

Hugging Face 团队发布了一篇关于“开源模型中的推理阶段计算扩展”(Test-time Compute Scaling) 的研究文章。Hugging Face 团队通过复现 DeepMind 等研究成果,通过测试时计算扩展(test-time compute scaling)来提升小模型的性能,使其在某些情况下超越更大规模的模型。这种方法不依赖于更大的预训练预算,而是通过动态推理策略,让模型在更难的问题上“思考更长时间”。

. 关键技术

  • 计算最优扩展(compute-optimal scaling):通过复刻DeepMind的技巧来提升测试时开放模型的数学能力。
  • 多样性验证器树搜索 (DVTS):提高了多样性并提供了更好的性能,特别是在测试时计算预算较大的情况下。
  • 搜索和学习:一个轻量级工具包,用于使用LLM实现搜索策略,并使用vLLM实现速度提升。

实验结果:在MATH-500基准测试中,1B和3B的Llama Instruct模型在给定足够的“思考时间”后,性能超越了更大的8B、70B模型。

基于验证器的搜索方法

直接看下面的图,快速理解:
在这里插入图片描述
这张图示意了三种搜索方法:
1、Best-of-N:让LLM生成N个候选答案,用频率的方法,就是选择出现次数最多的答案。使用奖励模型,则是强调答案质量而非频率。通过奖励模型,为每个候选答案分配分数,然后选择奖励最高的答案。文章中提到的一种变体是:汇总所有相同响应的得分,通过对相同响应的回答加权求和选择总得分最高的回答。
2、Beam Search:一种探索解决方案空间的系统搜索方法,通常与过程奖励模型 (PRM) 结合使用,以优化问题解决中间步骤的采样和评估。与对最终答案产生单一分数的传统奖励模型不同,PRM 会提供一系列分数,其中推理过程的每个步骤都有一个分数。这种细粒度反馈能力使得 PRM 成为 LLM 搜索方法的自然选择。
3、多样性验证器树搜索 (DVTS):HuggingFace 开发的Beam Search扩展,将初始beam拆分为独立的子树,然后使用 PRM 贪婪地扩展这些子树。这种方法提高了解决方案的多样性和整体性能,尤其是在测试时计算预算较大的情况下。

问题回答过程

在这里插入图片描述
问题回答过程:
1、首先给 LLM 提供一个数学问题,让其生成 N 个部分解,例如,推导过程中的中间步骤。
2、每个 step 都由 PRM 评分,PRM 估计每个步骤最终达到正确答案的概率。
3、一旦搜索策略结束,最终候选解决方案将由 PRM 排序以产生最终答案。

DVTS:通过多样性提升性能

为什么需要DVTS?
虽然总体上很明显,Beam Search是一种比 Best-of-N 或多数投票更好的搜索策略,但 DeepMind 的论文表明,每种策略都有权衡,这取决于问题的难度和测试时计算预算。
Beam Search在中等难度和困难难度问题中取得了持续的进展,但在较简单问题上,尤其是在计算预算较大的情况下,它的表现往往比 Best-of-N(甚至多数投票)更差。
通过观察Beam Search生成的结果树,HuggingFace 意识到,如果单个步骤被分配了高奖励,那么整棵树就在该轨迹上崩溃,从而影响多样性。这促使他们探索一种最大化多样性的集束搜索扩展。

为了解决这个问题,HuggingFace 开发了一个扩展,称之为「多样性验证器树搜索」(DVTS),旨在最大限度地提高 N 较大时的多样性。

DVTS 的工作方式与Beam Search类似,但有以下修改:

  1. 对于给定的 N 和 M,将初始集束扩展为 N/M 个独立子树。
  2. 对于每个子树,选择具有最高 PRM 分数的步骤。
  3. 从步骤 (2) 中选择的节点生成 M 个新步骤,并选择具有最高 PRM 分数的步骤。
  4. 重复步骤 (3),直到达到 EOS token 或最大树深度。

下图是将 DVTS 应用于 Llama 1B 的结果:
在这里插入图片描述
试验中N的取值为 4、16、64、256
可以看到,DVTS 为集束搜索提供了一种补充策略:在 N 较小时,集束搜索更有效地找到正确的解决方案;但在 N 较大时,DVTS 候选的多样性开始发挥作用,可以获得更好的性能。

有了各种各样的搜索策略,一个自然的问题是哪一个是最好的?在 DeepMind 的论文中(可参考《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters 》),提出了一种计算 - 最优扩展策略,该策略可以选择搜索方法和超参数 θ,以便在给定的计算预算 N 下达到最佳性能。

例如:对于较简单的问题和较低的计算预算,最好使用 Best-of-N 等策略,而对于较难的问题,Beam Search是更好的选择。下图为计算 - 最优曲线!

在这里插入图片描述

DeepMind 论文中的测试时搜索方法(test-time search methods)

DeepMind 论文:https://arxiv.org/pdf/2408.03314

在这里插入图片描述

文章中提供了三种不同的测试时搜索方法(test-time search methods)的比较,这些方法都是针对一个给定的问题(例如数学问题)如何在大型语言模型(LLM)中进行搜索以找到最佳答案的策略。这三种方法分别是:

√ Best-of-N:这种方法涉及从基础语言模型中独立地采样N个完整的解决方案,然后根据过程验证器(PRM)的最终答案判断来选择最佳答案。
√ Beam Search:这种方法通过在每一步中采样N个候选答案,并根据PRM预测的步骤奖励估计来评分,然后选择得分最高的M个步骤继续搜索。这个过程会重复进行,直到找到解决方案或达到最大搜索轮数。
√ Lookahead Search:这种方法修改了Beam Search评估单个步骤的方式。它使用预先查看(lookahead)模拟来改进PRM在搜索过程中每一步的价值估计的准确性。具体来说,在Beam Search的每一步中,不是使用当前步骤的PRM分数来选择顶部候选,而是进行模拟,向前滚动多达k步,如果达到解决方案的末尾则提前停止。然后使用这个模拟结束时的PRM预测来评分当前步骤。

图中的每个部分都用流程图的形式展示了这些方法的步骤,包括:

  • 问题提出(Question)
  • 用验证器(Apply Verifier)
  • 完整的解决方案(Full Solution)
  • 中间解决方案步骤(Intermediate solution step)
  • 被验证器选中的(Selected by verifier)
  • 被验证器拒绝的(Rejected by verifier)

Lookahead Search通常在相同生成预算下表现不如其他方法,这可能是由于模拟预先查看步骤引入的额外计算导致的。

备注:具体可以参考介绍文章《3B模型长思考后击败70B!HuggingFace逆向出o1背后技术细节并开源》
https://mp.weixin.qq.com/s/E1FaaOurAb-QlCX3BASi9Q

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

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

相关文章

Word图片嵌入格式不正确的解决办法

问题描述: 如图, 粘贴到word的图片只显示底部一部分 解决方法: 第一步 先将图片嵌入文本行中 第二步 再将图片设置为正文格式 然后就出来了

【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap

re:Invent 是全球云计算领域的顶级盛会,每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂,分享最新的技术成果和创新实践,深圳 UG 作为亚马逊云科技技术社区的重要组成部分,将借助 re:Invent 的东风,举办此…

Intel-ECI之Codesys PLC + Ethercat 远端IO + Codesys IDE编程

目录 一、 准备工作 二、安装Codesys 软件 PLC 三、 使用Codesys IDE 编程测试 CODESYS* 是领先的独立于制造商的 IEC 61131-3 自动化软件,适用于工程控制系统。它用于 Intel Edge Controls for Industrial(Intel ECI 或 ECI),…

渗透测试-前端加密分析之RSA加密登录(密钥来源服务器)

本文是高级前端加解密与验签实战的第6篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过RSA加密来爆破登录。 分析 这里的代码跟上文的类似,但是加密的公钥是通过请求服务端获取的 http://127.0.0.1:8787/crypto/js/…

【Leecode】Leecode刷题之路第87天之扰乱字符串

题目出处 87-扰乱字符串-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 87-扰乱字符串-官方解法 方法1:动态规划 思路: 代码示例:(Java&…

Qt之串口设计-线程实现(十二)

Qt开发 系列文章 - Serial-port(十二) 目录 前言 一、SerialPort 二、实现方式 1.创建类 2.相关功能函数 3.用户使用 4.效果演示 5.拓展应用-实时刷新 总结 前言 Qt作为一个跨平台的应用程序开发框架,在串口编程方面提供了方便易用…

Restaurants WebAPI(三)——Serilog/

文章目录 项目地址一、Serilog使用1.1 安装 Serilog1.2 注册日志服务1.3 设置日志级别和详情1.4 配置到文件里1.5 给不同的环境配置日志1.5.1 配置appsettings.Development.json二、Swagger的使用三、自定义Exception中间件3.1 使用FluentValidation项目地址 教程作者:教程地址…

Tekscan压力分布测量系统:电池安全与质量提升的保障

随着科技的快速发展,电池技术在电动汽车、工业和消费电子等领域的重要性日益增加。Tekscan 压力分布测量系统针对这些领域的需求,成为推动电池技术进步和多领域创新的重要工具。 在锂离子电池的充放电过程中,热循环引起的膨胀和收缩对其性能和…

【WRF教程第3.1期】预处理系统 WPS 详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例 每个 WPS 程序的功能程序1:geogrid程序2:ungrib程序3:metgrid WPS运行(Running the WPS)步骤1:Define model domains with geogrid步骤2:Extract…

开源轮子 - Logback 和 Slf4j

spring boot内置:Logback 文章目录 spring boot内置:Logback一:Logback强在哪?二:简单使用三:把 log4j 转成 logback四:日志门面SLF4J1:什么是SLF4J2:SLF4J 解决了什么痛…

Linux下部署MySQL8.0集群 - 主从复制(一主两从)

目录 一、部署前准备 1、查看系统信息 # 查看系统版本 cat /etc/red* # 查看系统位数 getconf LONG_BIT[rootlocalhost ~]# cat /etc/red* CentOS Linux release 7.5.1804 (Core) [rootlocalhost ~]# getconf LONG_BIT 642、下载对应安装包 进入MySQL官网:https:…

springboot中的AOP以及面向切面编程思想

快速入门体验AOP aop中相关概念 实现导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 新建aop文件夹,里面声明XXXAspect类 @Aspect // 声…

在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。

在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。以下是关于这两种方法的详细解释: 一、虚方法(Virtual Method) 定义:虚方法是指在运行时由实例的实际类型决定的方法。在Java中,所有的非私有、非静态、非final方法都是虚方法。当调用一个虚方法时,JVM会根据实…

Java图片拼接

最近遇到一个挺离谱的功能&#xff0c;某个表单只让上传一张图&#xff0c;多图上传会使导出失败。跟开发沟通后表示&#xff0c;这个问题处理不了。我... 遂自己思考&#xff0c;能否以曲线救国的方式拯救一下&#xff0c;即不伤及代码之根本&#xff0c;又能解决燃眉之急。灵…

webGL硬核知识:图形渲染管渲染流程,各个阶段对应的API调用方式

一、图形渲染管线基础流程概述 WebGL 的图形渲染管线大致可分为以下几个主要阶段&#xff0c;每个阶段都有其特定的任务&#xff0c;协同工作将 3D 场景中的物体最终转换为屏幕上呈现的 2D 图像&#xff1a; 顶点处理&#xff08;Vertex Processing&#xff09;阶段&#xff1…

大数据面试题--企业面试真题

大数据面试题--企业面试真题 PlanHub 点击访问获取&#xff1a; 大数据面试体系专栏_酷兜科技​www.kudoumh.top/hlwai/85.html 点击访问获取&#xff1a; 大数据面试体系专栏_酷兜科技​www.kudoumh.top/hlwai/85.html 大数据面试题汇总 HDFS 1、 HDFS 读写流程。 2、HDF…

lambda初探(一)

发生捕获时&#xff0c;拿到x,y的值 退出lambda表达式后&#xff0c;foo外层的值不变化。foo内部的x&#xff0c;值是持续的&#xff0c;像static。即使退出foo函数后&#xff0c;值的状态依然保持。 外层x的值变化&#xff0c;并不影响foo内部。 foo运行了两次&#xff0c;内…

【D3.js in Action 3 精译_046】DIY 实战:在 Observable 平台利用饼图布局函数实现 D3 多个环形图的绘制

当前内容所在位置&#xff1a; 第五章 饼图布局与堆叠布局 ✔️ 5.1 饼图和环形图的创建 ✔️ 5.1.1 准备阶段&#xff08;一&#xff09;5.1.2 饼图布局生成器&#xff08;二&#xff09;5.1.3 圆弧的绘制&#xff08;三&#xff09;5.1.4 数据标签的添加&#xff08;四&#…

基于Spring Boot的智慧农业专家远程指导系统

一、系统背景与意义 随着科技的不断进步&#xff0c;农业领域也在积极寻求创新与发展。然而&#xff0c;传统农业生产中农民往往依靠经验进行种植和养殖&#xff0c;缺乏科学的指导和技术支持。同时&#xff0c;农业专家资源有限&#xff0c;难以覆盖广大的农村地区&#xff0…

【JavaEE初阶】线程 和 thread

本节⽬标 认识多线程 掌握多线程程序的编写 掌握多线程的状态 一. 认识线程&#xff08;Thread&#xff09; 1概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏着多份代码. 还…