DeepSeek-V3 & R1合体了? 快手开源“Auto Think“大模型,根据问题自动调节思考深度
近日,快手 Kwaipilot 团队开源了 KwaiCoder-AutoThink-preview 自动思考大模型,针对近期深度思考大模型存在的“过度思考”问题进行了深入研究。团队不仅提出了一种全新的自动思考模型训练范式,还基于传统强化学习算法(GRPO),创新性地提出了带有过程监督的强化学习方法 Step-SRPO,以进一步提升模型在复杂任务中的表现。
近日,快手 Kwaipilot 团队开源了 KwaiCoder-AutoThink-preview 自动思考大模型,针对近期深度思考大模型存在的“过度思考”问题进行了深入研究。团队不仅提出了一种全新的自动思考模型训练范式,还基于传统强化学习算法(GRPO),创新性地提出了带有过程监督的强化学习方法 Step-SRPO,以进一步提升模型在复杂任务中的表现。
该模型融合了”思考“和”非思考“能力,并具备根据问题难度自动切换思考形态的能力。通过进行这种思考形态训练,模型在多个“思考”和“非思考”评测榜单上均实现了性能提升,其中在部分代码和数学类的任务上,开启自动思考模式下的模型得分提升高达20分左右。更有趣的是,在部分榜单中,即使模型没有开启思考模式,受益于更优的推理形态,性能也有小幅上涨。
Kwaipilot 团队选择将相关模型权重的 preview 版本开源,后续还会发布完整的技术报告,敬请关注。
模型开源地址:
https://huggingface.co/Kwaipilot/KwaiCoder-AutoThink-preview
一、从深度思考到自动思考
对于近期release的思考大模型,这种带有推理能力的大模型在解决复杂编程任务上展现出了巨大的潜力。对于许多传统模型无法解决的问题,此类模型往往能通过深度的思考一步步的分析问题,从而得出更完善的答案。但是在我们希望将这种能力应用到实际业务场景上时发现,由于思考过程过长,导致推理成本随之直线上升。过高的推理成本使得该类模型很难运用在大流量的C端业务中,在业务场景中落地推理大模型时,平衡成本与性能是提升用户体验的核心关键。因此我们希望有一种模型,可以在复杂问题上进行深度的探索,而简单问题上可以直接给出答案,避免因为思考带来的推理成本浪费。
笔者也拿前段时间比较流行的 “Strawberry”里有几个 r? 问题考验了两款近期优秀的开源推理模型,两款模型都非常正确的给出了问题的答案,推理过程也非常合理。
Deepseek在经过一分多钟的深度思考后给出了正确的答案。
Qwen3-235B-A22B 也在了半分多钟的思考后给出了正确的结果。
两款模型都经过充分的思考给出了正确答案,这也展现出推理模型的强大潜力,因此我们也对业界优秀的推理模型的思考过程进行了分析和学习。但是我们也发现现在的开源大模型的思考过程中,一些不完美的地方。比如在回答一些偏简单的问题时,其实有一些思考过程是不必要的:
对于复杂的编程或者代码任务也许大量的思考可以严谨地把控回答问题的准确度,但是对于较为简单的问题,也许简单的思考就能给出正确的答案。
像DeepSeek这样非常优秀的开源大模型给深度思考提供了一个训练和推理的范式,使得许多原本靠大模型难以解决的复杂问题得以解决,那么我们能否更进一步,从深度思考进化到智能的自动思考呢?
既然使用COT的思维链可以大幅提升模型性能,能否在思考之前加上一个 pre-think 的阶段,让模型预先判断问题的困难度,从而选择是否进行复杂推理呢?
二、Cold start + Step-SRPO 激发模型智能选择思考模式
产生这个想法的初衷是因为 Kwaipilot 团队在训练数据中同时加入了长思考与短推理数据后,由于长思考数据往往问题难度较大,短推理数据往往难度较小,模型自我涌现出在简单问题上进行短推理,困难问题进行长思考的自动思考(Auto Think)能力。
因此 Kwaipilot 团队选择针对这个现象专项构造数据,并使用强化学习方法增强 Auto Think 场景下的模型智能程度,并最终孵化出 KwaiCoder-AutoThink-preview 模型。
简单来说,KwaiCoder-AutoThink-preview模型采用了两步式训练方法,首先通过 Agentic 方法构造长短思考的 Cold Start 数据让模型在进行思考之前先进行一个“pre-think”,判断一下问题的难度。 然后再使用加上专门为 Auto Think 任务设计的带有过程监督的 Step-SRPO(以下简称SSRPO)增强模型对各种任务难以程度判断的准确性。
*Cold Start*
我们通过 Agent 交互,基于训练数据 Query,为其构建其优势模式下的 Response,构建多样化 AutoThink 冷启动数据,让模型适应 AutoThink 的数据形式,并指导其挖掘自身优势场景。
具体来说,我们采用 Agentic 的流程设计,这样即使通过非思考模型,也能获得高质量的带有思考过程的推理数据,我们用这部分数据作为模型的冷启动数据,让模型学会如何判断数据难度,并决定如何思考在进行回答。
经过冷启 SFT,我们可以在需要思考的困难榜单上达到 R1 90%以上的性能,在较为简单的榜单上由于模型自我决定部分问题进行深度思考而出现10%-30%的性能涨幅。
*Reasoning RL*
由于长 response 的RL训练对资源的消耗较大,我们采用动态调整 context length 的方式,提升RL的效率:具体来说,在训练初期我们先用16K的最大回复长度,在训练过程中通过观察模型回复的截断概率,逐步扩大其回复长度限制,最终扩展至32K。
此外我们采用了大的 batchsize 和 rollout 个数,利用 off-policy 的更新策略来进一步提升模型的训练效率。我们在训练过程中会动态地丢弃“过于简单”的样本,来保证 batch 内有效梯度样本的数量,如在 SRPO 论文所述。
为了平衡模型的探索-利用,我们通过训练时的熵值来调整 KL-Loss 的约束力度以及 off-policy 更新时模型的 clip 范围,进一步加速模型收敛。
*Step-SRPO*
最初,我们使用 GRPO 算法进行端到端的强化学习,以强化模型自我判断是否思考的智能程度。但是由于 GRPO 缺乏可解释的过程监督信号,导致我们在训练过程中出现了一系列不稳定现象,比如模型认为应该开启 think 模式却选择了不进行思考,以及对于一些代码/数学题,哪怕问题比较简单也会选择开启思考模式。
面对这些问题,我们基于传统 GRPO 强化学习算法开发出了面向带有中间过程的 Step-SRPO 强化学习算法,对不同的 token 根据未来期望收益使用不同的优势计算函数,使用这种方法后,我们发现不仅模型判断的准确性提升了,同时思考能力和非思考性能都有大幅上升。并且在模型能力上升的同时,模型选择不开启思考模式的比例也在不断上升,模型回答的 token 数量也随之不断减少。从而实现了在控制推理资源消耗的同时,提升了模型的整体表现,达成性能与成本的最优协同。
同时也观察到,对于有些榜单,即使模型没有开启思考模式,在这种强化学习过程之后,开启思考模式的比例大幅下降同时,模型性能仍然保持了比强化学习之前更高的基准。我们也计划将在未来一个月开源该项技术的完整技术报告和完整的性能测试结果。
三、多个代码/数学榜单得分狂涨 20pp
经过专项训练后的模型,对于困难的问题会首先进行判断难易程度,然后进行思考并给出解题过程及最终步骤。
*小球在六边形内运动*
这里以前段时间较火的小球问题举例,让大模型写一个程序,模拟小球的运动。
“write a Python program that shows a ball bouncing inside a spinning hexagon. The ball should be affected by gravity and friction, and it must bounce off the rotating walls realistically” (编写一个Python程序,展示一个在旋转六边形内弹跳的小球。小球需受重力和摩擦力影响,并能够根据旋转的六边形墙壁实现真实碰撞反弹效果。)
KwaiCoder-AutoThink-preview 编写的小球运动代码表现自然,且比较真实的反映了物理世界中重力和摩擦力的影响,满足了题目的要求。
对比 O3-mini 与 DeepSeek-R1 生成的代码看起来也更流程自然。
为了测试模型的多轮对话能力,我们给题目的难度再升升级,让模型能够模拟小球尾迹,并且当用户按下空格时,小球数量增加,并且希望模型可以正确处理小球之间的碰撞,再经过新一轮的对话后,模型写出了以下代码:
*自动思考如何工作?*
那么具体来说,模型是怎么判断是否要进行思考呢,下面以几个比较简单的例子举例:
- 让模型数“Strawberry”中有几个r,因为这是一个比较简单的问题,因此模型判断关闭了思考模式。
- 对于一些比较复杂的数学任务,模型会在判断后自动切换到思考模式。
*大而难的仓库级代码理解与生成中的表现*
我们也在真实的 60+ 万行快手核心业务的后端仓库使用 Kwaipilot 插件接入该模型进行了测试。在本次实践中,我们分析了业务同学最近的一次真实复杂的,改动量大的,涉及多个目录文件交互的需求。
我们向模型提供了本次需求的背景,以及目标改动的类信息,并通过 Kwaipilot IDE 插件的智能体模式来全链路端到端代码生成。
具体需求如下:
帮我实现一个极速版app双列切换策略下发的需求。
需求背景:
与生活页相比,单双列切换在次留、渗透&、流消费等数据上表现较差,希望拆分人群进行优化:
● 添加双列捏合进入双列功能
● 高频访问用户,添加设置引导 —— 将双列设置为发现页的默认形态
这段需求涉及了要对全仓库 6700+ 个文件进行分析,找到双列切换策略配置生成器逻辑的位置,并且考虑策略生成器与启动配置之间的上下游逻辑关系,需要灵活使用代码搜索工具、代码执行工具对代码进行分析,并深入思考并组合多个工具的结果从而在多个位置生成逻辑连贯,语法正确的代码。
区别于传统的编程算法题,在这个任务中,如何精准识别理解相应代码,并且在多处编辑时保证语法语义的正确性是在这种大而难的真实业务仓库,进行AI编程面临的重要挑战。
模型在2分钟的思考时间中,读取阅览了多个文件,分析了文件间的依赖关系,并端到端的完成了相关需求的生成。本次尝试中,在快手核心业务涉及大量复杂数据获取与配置流程的场景下,即便存在相关信息缺失,对比人工MR 200余行diff的结果,模型也完成了 80% 以上的需求实现。
此外,对于该仓库,Kwaipilot 40B 模型通过自主规划(AutoThink)能力实现关键突破。我们可以实现超大规模真实仓库(45+ 模块)的解析,完成端到端识别所有工程模块,还原架构链路,推导业务场景。
四、蒸馏 + MTP,1/30 成本训练 SOTA 开源大模型
在模型训练的初始阶段,我们认为目前的 base 模型在技术选型,训练数据上并没有本质的差异,却消耗了 90% 以上的训练资源,因此我们选择用模型蒸馏的方式来完成模型的初始化冷启。在技术方案上,我们选择结合 知识蒸馏 与 MTP(多token预测) 技术,进一步提升模型蒸馏的知识学习效率。
我们在模型的各种中间结果(Embedding, MLP, LM Head, Logits)中,选择对教师模型与学生模型的 Logits 进行对齐。我们的实验表明,仅仅使用模型的 logits 进行对齐就可以达到最佳的效果。
同时我们结合 MTP 的思路,同时对学生模型的每一个 MTP Module 进行训练,MTP在模型结构中隐式的承担着“未来收益”的角色,用一个教师模型同时指导学生模型对当前收益和未来收益,以一个更高的效率向小模型灌输知识。通过这种方法,我们实现了以极低成本完成了模型的冷启初始化。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)