Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

thinking %ignore_a_2% 最新研究正在被热议!

创始人、OpenAI 前 CTO Mira Murati 亲自转发后,一众围观大佬开始惊叹其研究价值(截不完、根本截不完):

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

根据 Mira Murati 的提炼,原来他们提出了一种让小模型更懂专业领域的 LLM(大语言模型)后训练方法——On-Policy Distillation (在线策略蒸馏)。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

这个方法的精髓,可以打个比方。想象一下,以前训练 AI 有两种主流方式:

实战演戏(如强化学习等在线策略方法):让它自己摸索、从错误中成长,学得灵活,但非常耗时耗力。

请家教(如监督微调等离线策略方法):直接把正确答案喂给它,效率高,但学得死板。

而 On-Policy Distillation 相当于请了一位天才教练。这位教练一边让 AI 自己动手解题(实战),一边在它卡壳或犯错时,立刻给出关键提示和正确答案(家教)。

这样做最大的好处就是 ” 性价比 ” 超高。实验结果证明,用这种方法来教小模型数学——达到同样水平,所需的训练步骤少了 7-10 倍;整体算下来,效率提升了 50-100 倍。

这意味着,一些资源受限的个人或小公司,也能高效地训练出在特定领域很能打的 ” 小模型 ” 了。

包括翁荔在内,难怪大家看完都直呼:优雅、实在是优雅!

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

而且啊,当我们扒完相关博客后才发现,On-Policy Distillation 的价值还不止于此——

在线策略蒸馏:结合两种范式的最佳实践

论文指出,要让模型具备强大的专业领域能力,通常会经历以下三个过程:

预训练 ( Pre-training ) : 教会模型通用能力,比如语言使用、广义推理、世界知识。

中训练 ( Mid-training ) : 传授领域知识,比如代码、医学数据库、公司内部文档。

后训练 ( Post-training ) : 这是最后也是至关重要的一步,需要引导模型产生目标行为,比如按指令操作、解决数学题、聊天等。

而他们这次就把目光放在了后训练上。

截至目前,后训练阶段诞生了两大主流范式,即开头提到的在线策略 ( On-policy ) 和离线策略 ( Off-policy ) 训练。

考虑到两种方式各有其优缺点,所有这次他们选择 ” 取其精华去其糟粕 “,来一个巧妙的融合——

将在线策略的自主探索与离线策略的密集监督结合起来,以创造一个 ” 两全其美 ” 的训练框架。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

具体来说,他们核心想让学生模型在自己生成的轨迹上学习,但每一步(注意是每一步)都由一个更强大的教师模型进行细致的评分和指导。(就像解题一样,学生给出每一步解题过程,教师给每一步打分)

相关流程大致如下:

初始化教师模型:找一个实力强大的模型当老师(通用模型或经过专门训练的专家模型均可),它只负责计算概率,而不需要进行反向传播更新梯度。

学生采样轨迹:让学生模型自主解题,过程中需记录下它在每一步选择每个 token 的对数概率。

教师逐步评分:将学生模型生成的轨迹,原封不动地交给教师模型。教师模型会对这个轨迹的每一个 token 进行评估,计算出在相同的上下文下,它自己生成这个 token 的对数概率。然后,通过学生和教师的对数概率之差,可以计算出两者在每一步的分歧 ( Divergence ) 。

使用分歧作为奖励进行训练:最后使用上述分歧作为奖励信号,来更新学生模型。

这里重点介绍一下 “KL 散度 (Negative reverse KL divergence) ” 这一评估分歧的指标。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

简单来说,当学生模型与教师模型的行为一致时,KL 散度为零;当学生模型的选择与教师模型的期望相差甚远时,KL 散度会变得很大,从而产生一个强烈的负面奖励(惩罚)。

学生模型的目标就是通过训练,最小化这个 KL 散度——换言之,越像老师奖励越高,越不像惩罚越狠。

这种逆向 KL 散度具备两个非常优秀的特性:

一是能防作弊。传统强化学习中,模型可能学会钻空子,用一些看似正确实则取巧的方式获得高分。而现在,评判标准直接锚定教师模型的 ” 真知灼见 “,学生只有真正学到精髓才能获得高分,堵死了作弊空间。

二是让学习过程更加稳定和聚焦。它能让学生模型精准锁定教师模型展现的 ” 最优解法 “,避免在多个普通答案间摇摆不定,从而确保学习过程更稳定、结果更出色。

基于上述方法和特性,他们进行了两个实验来验证其效果。

实验一:将 32B 大模型的数学能力快速教给 8B 小模型

教师模型:Qwen3-32B

可图大模型 可图大模型

可图大模型(Kolors)是快手大模型团队自研打造的文生图AI大模型

可图大模型 32 查看详情 可图大模型

学生模型:Qwen3-8B-Base

所有实验从一个共同起点开始:学生模型通过传统训练(监督微调),在数学基准 AIME ’ 24 上已达到 60 分。研究目标是将性能从 60 分提升至 70 分。

为达成目标,研究人员对比了三种方法的计算成本:

继续传统训练:大约需要额外训练 200 万个样本,计算开销非常巨大;

强化学习:根据 Qwen3 团队的技术报告,在一个相似的 SFT 初始化模型之上,通过强化学习将性能提升到 67.6%,花费了 17920 个 GPU 小时。这个成本与训练 200 万个 SFT 样本的成本大致相当;

在线策略蒸馏:仅用了大约 150 个训练步骤就达到了 70% 的目标分数,与外推到 200 万样本的 SFT 相比,在线策略蒸馏的计算成本砍掉了 9~30 倍。

而且如果从 GPU 小时的角度看,由于教师模型计算对数概率 ( log-probs ) 的过程可以高效并行化,实际节省的时间成本可能更接近 18 倍。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

这个实验有力证明了在线策略蒸馏在计算效率上的巨大优势。它用远低于传统 SFT 或 RL 的成本,实现了同等甚至更好的性能提升。

实验二:打造兼具知识性与通用性的企业 AI 助理

目前存在的问题是:给 AI 学习新知识(公司内部文档)时,它会忘记旧技能(对话交流)。

假如使用传统微调方法向模型注入内部知识,往往会出现严重的 ” 灾难性遗忘 ” ——内部知识得分显著提升(从 18% 升至 43%),但通用能力大幅下降(从 85% 暴跌至 45%)。

而且无论怎样调整数据配比,都无法同时保住两项能力。

于是他们想到了,当模型因学习新知识而 ” 遗忘 ” 部分通用能力后,可以使用在线策略蒸馏进行修复——让 ” 失忆 ” 的模型向它自己最初的、能力完整的版本学习。

结果意外发现,模型的通用能力几乎完全恢复(从 79% 回升至 83%),同时新知识未被破坏(反而从 36% 提升至 41%)。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

这说明,在线策略蒸馏是解决 AI” 灾难性遗忘 ” 的有效工具。它能够在不损害新学技能的前提下,精准地恢复模型遗忘的核心能力,为实现 AI 的 ” 终身学习 ” 提供了关键技术支持。

论文核心作者 Kevin Lu

最后看一下这项研究的核心作者——Kevin Lu(论文唯一单独提到的)。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

今年 8 月,Kevin Lu 离开 OpenAI 转身投入 Thinking Machine 的怀抱。

在 OpenAI 工作期间,他领导了 4o-mini 发布,并参与 o1-mini、o3 发布,主要研究强化学习、小模型和合成数据。

很明显,这一次的研究也和其之前的工作息息相关。

Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了

论文:

https://thinkingmachines.ai/blog/on-policy-distillation/

参考链接:

[ 1 ] https://x.com/miramurati/status/1982856564970254772

[ 2 ] https://x.com/_kevinlu/status/1982857375263666590

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

— 完 —

年度科技风向标「2025 人工智能年度榜单」评选报名火热进行中!我们正在寻找 AI+ 时代领航者 点击了解详情

企业、产品、人物 3 大维度,共设立了 5 类奖项,欢迎企业报名参与

一键关注 点亮星标

科技前沿进展每日见

以上就是Thinking Machine 新研究刷屏!结合 RL+ 微调优势,小模型训练更具性价比了的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/276437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 14:44:00
下一篇 2025年11月4日 14:49:09

相关推荐

  • 在Gorilla Mux中创建带可选URL变量的路由

    本文详细介绍了如何在go语言的gorilla mux路由框架中实现带有可选url变量的路由。核心策略是为同一处理函数注册多个路由模式,一个包含变量,另一个不包含。在处理函数内部,通过检查`mux.vars`返回的变量是否存在来适配不同的请求路径,从而优雅地处理有无特定参数的场景,确保路由的灵活性和代…

    2025年12月16日
    000
  • Go语言中优雅地中断并发任务:使用通道和Select实现精确控制

    在go语言中,直接中断一个正在执行的`time.sleep`操作并非易事,因为`time.sleep`会阻塞当前goroutine。本文将深入探讨如何避免使用阻塞的`time.sleep`进行并发控制,转而利用go的通道(channels)和`select`语句,实现goroutine间的安全通信与…

    2025年12月16日
    000
  • Go语言defer机制深度解析:能否获取其函数引用?

    go语言的`defer`机制用于资源清理,其内部调用列表是运行时实现细节,不提供直接访问。本文探讨了获取`defer`函数引用的可行性,强调了go语言不鼓励此类操作,并提供了安全的惯用模式来管理初始化和清理逻辑。尽管存在通过`cgo`和`unsafe`进行底层探索的示例,但强烈建议避免在生产环境中使…

    2025年12月16日
    000
  • 使用 Go 语言进行原始套接字编程

    本文旨在指导开发者如何使用 Go 语言进行原始套接字编程,以实现自定义网络数据包的发送和接收。重点介绍使用 go.net/ipv4 库创建和操作原始套接字,以及如何构造自定义 IP 头部来实现源 IP 地址欺骗等高级网络功能。同时,也强调了使用原始套接字的安全风险和权限要求。 在某些网络编程场景下,…

    2025年12月16日
    000
  • Go与Fish Shell集成指南:正确设置GOPATH以避免包导入错误

    本文详细阐述了在fish shell环境下配置go开发环境时,`go install`命令可能遇到的“包找不到”错误。核心问题在于`gopath`环境变量未正确导出。教程提供了正确的配置方法,强调了在`config.fish`中使用`set -x`命令导出`gopath`的重要性,确保go工具链能正…

    2025年12月16日
    000
  • 深入理解Go语言的defer机制:原理、限制与替代方案

    go语言的`defer`语句用于安排函数在当前函数返回前执行,其内部实现与特定运行时(如goroutine和栈帧)紧密关联,因此无法通过标准go语言可靠地获取或直接调用已延迟的函数引用。尽管通过cgo和`unsafe`包存在低级访问的可能性,但这被强烈不推荐。对于需要共享资源清理逻辑的场景,go语言…

    2025年12月16日
    000
  • 如何在Golang中实现策略模式动态切换行为

    通过接口定义行为并由不同结构体实现,Golang中策略模式可动态切换支付方式,避免条件判断,提升扩展性。 在Golang中实现策略模式,核心是通过接口定义行为,让不同策略结构体实现该接口,从而在运行时动态切换具体行为。这种方式避免了大量条件判断,提升了代码的可扩展性和可维护性。 定义策略接口 先定义…

    2025年12月16日
    000
  • Go 语言反射:通过字段名获取并转换底层结构体切片

    本文深入探讨 Go 语言中如何利用反射机制,通过字段名动态获取结构体中的底层切片字段。我们将展示 `reflect.Value.Interface()` 结合类型断言的强大功能,它能将反射值安全地转换回具体的 Go 类型,从而避免在后续操作中持续使用反射,实现更自然、高效的代码编写。 在 Go 语言…

    2025年12月16日
    000
  • Go语言实现树莓派GPIO控制:davecheney/gpio 包入门

    本教程旨在介绍如何使用go语言在树莓派上进行gpio操作。我们将重点探讨`davecheney/gpio`包,这是一个流行的go语言库,用于简化对树莓派硬件引脚的控制。通过具体的代码示例,读者将学习如何初始化gpio、设置引脚模式以及执行基本的输入/输出操作,从而实现如读取传感器数据或控制外部设备等…

    2025年12月16日
    000
  • Go语言并发文件下载器:解决文件损坏问题与优化实践

    本文深入探讨go语言中基于http range头实现并发文件下载的机制。针对并发写入文件时常见的损坏问题,重点分析了`os.o_append`与`os.write`在多协程环境下的局限性,并提出了使用`os.writeat`进行精确位置写入的解决方案。文章还提供了优化后的代码示例,并强调了错误处理、…

    2025年12月16日
    000
  • Go并发编程:安全地向共享切片追加数据

    本文深入探讨了在go语言中,多个goroutine并发向同一个切片追加数据时面临的数据竞争问题。我们将介绍三种实现并发安全的策略:利用sync.mutex进行互斥访问以保护共享资源、通过通道(channel)机制收集并统一处理结果,以及在切片最终大小已知时,采用预分配并按索引写入的无锁高效方法。旨在…

    2025年12月16日
    000
  • Go语言在Fish Shell中的GOPATH正确配置指南

    本文旨在解决go语言开发者在使用fish shell时,因gopath环境变量配置不当导致的”cannot find package”错误。核心解决方案在于理解fish shell的变量导出机制,即在`~/.config/fish/config.fish`文件中使用`set …

    2025年12月16日
    000
  • Go语言实现高效多线程文件下载器:基于HTTP Range与并发控制

    本文详细介绍了如何使用go语言构建一个高效的多线程文件下载器。通过利用http `range` 请求头实现文件分块下载,并结合go的并发特性及`os.file.writeat`方法,实现在指定偏移量写入数据。文章强调了正确的并发控制、文件预分配、错误处理和分块逻辑的重要性,并提供了一个优化后的代码示…

    2025年12月16日
    000
  • Golang中解析动态JSON键的实践指南

    本文探讨了在go语言中如何有效解析包含动态顶级键的json字符串。通过将动态键映射为`map[string]struct`的结构,我们可以灵活地提取嵌套在这些动态键下的特定字段,如姓名和年龄,从而实现对复杂json数据的结构化访问。 在Go语言中处理JSON数据是常见的任务,encoding/jso…

    2025年12月16日
    000
  • 解码十六进制字符串时避免 “index out of range” 错误

    本文旨在帮助开发者避免在使用 Go 语言的 `encoding/hex` 包进行十六进制字符串解码时遇到的 “index out of range” 错误。通过示例代码和详细解释,我们将展示如何正确地分配目标切片,确保解码操作能够顺利进行,并获得预期的结果。 在使用 Go 语…

    2025年12月16日
    000
  • 在Gorilla Mux中实现可选URL变量的路由配置

    本文将详细介绍如何在go语言的gorilla mux路由框架中实现带有可选url变量的路由配置。通过注册多个路径模式来覆盖有无参数的场景,并指导开发者如何在处理函数中安全地获取和判断这些可选参数的存在,从而优雅地处理不同的url请求模式。 理解Gorilla Mux中可选URL参数的挑战 在构建We…

    2025年12月16日
    000
  • 深入理解Go并发:Goroutines、Channels与调度器行为

    本文旨在深入探讨Go语言的并发模型,重点解析Goroutines、Channels的工作原理及其与Go调度器之间的关系。通过分析一个具体的并发示例,我们将揭示Go程序执行顺序的非确定性,并提供如何使用Channels进行有效同步和通信的策略,以确保程序行为符合预期。 Go语言以其内置的并发原语而闻名…

    2025年12月16日
    000
  • Go语言中处理JSON对象整数键的策略与实践

    本文探讨了在go语言中处理json数据时,如何解决json标准仅支持字符串键而实际数据可能包含整数键的问题。我们将解释`encoding/json`包的默认行为,并提供一种高效且内存友好的方法,通过在解码后将字符串键转换为整数来实现`map[int]float32`等结构,同时包含示例代码和注意事项…

    2025年12月16日
    000
  • 深入理解Go程序与Ptrace的交互:挑战与替代方案

    本文深入探讨了使用`ptrace`对go程序进行系统调用拦截的固有挑战。由于go运行时将goroutine多路复用到os线程的复杂机制,`ptrace`的线程绑定特性导致跟踪行为不稳定,表现为程序挂起和系统调用序列不一致。文章解释了go调度器的工作原理如何与`ptrace`的预期行为冲突,并提供了针…

    2025年12月16日
    000
  • 使用Go语言进行原始套接字编程

    本文介绍了如何使用Go语言进行原始套接字编程,以实现自定义IP数据包的发送和接收。由于安全限制,需要root权限或CAP_NET_RAW能力才能运行此类程序。文章将重点介绍使用 `go.net/ipv4` 包创建和操作原始套接字,以及如何构建和发送带有自定义IP头的UDP数据包,以满足特定网络需求,…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信