上一篇文章:深入聊聊Qwen3:我们外行除了高呼沸腾了,还应该知道什么?,深入分析了 Qwen3 的跑分评测是否有水分,如下图:

结论是 Qwen3 在跑分上,确实是做到了各个指标都基本达到了开源第一,直逼闭源模型的程度。
说是当前 (2025.5.12) 第一开源模型也不为过。
除此之外,Qwen3 是目前唯一开源的混合推理模型,也是全球目前唯三的支持混合推理的模型。
这篇文章,就着重深入聊聊 Qwen3 的混合推理。
从 reasoning model 到 hybrid reasoning model
这里 reasoning,其实是一个比较有趣又容易带来狭义的单词。
它本身是推理的意思。
但是大模型每一次的回答,其实也可以算是一次推理,比如很多文章中描述的,这个模型更小,推理速度更快。
也正是因为这个原因,在中文里,对于 reasoning,更多会翻译为思考来避免歧义。
比如 deepseek-r1 的深度思考 ,Qwen3 的发布 blog 中,也用的是思考模式(thinking model)。
不过为了全球统一,后文还是称 deepseek-r1 这样只支持深度思考的模型称为推理模型。
而 Qwen3, claude 3.7 这样的模型,称为混合推理模型。
而不支持深度思考的模型,称为普通模型(比如 deepseek-v3)。
对于推理模型,相信国内的用户大多是从 deepseek-r1 的深度思考接触到的。
当时这个深度思考,可谓是火遍大江南北。
不过追根溯源,第一个推理模型是 openai 于 2024 年 9.12 发布的 [o1-preview][openai.com/index/intro...] 版。
深度思考的引入,解决了很多复杂的,需要反复推演的问题,比如 AIME (一堆比较复杂的数学题),现在排名靠前的全是推理模型。

ps: 这里其实有几个比较有趣的数据,排名11 和 排名16的 deepseek-v3-0324 和 deepseek-v3,可以看出来经过调教的普通模型,在数学能力上也能大幅提升。而排名 13 的 claude-3.7-sonnet(thinking) 的数据,也说明了,未经调教的推理模型,也不见得在数学能力上能够大幅提升,但是比不思考效果确实要好。

当然,在实际的各类大模型的聊天 app 中,基本都是支持开启思考和非思考的。
只不过相比于 Qwen3 这样的混合模型,背后是两个模型的切换。
比如 deepseek-r1 和 deepseek-v3,开启深度思考,就是 r1,关闭深度思考,就是 v3。
目前唯三的混合推理模型时间线如下:
2025.2.25 日,claude 3.7 sonnet 发布,是第一个支持混合推理的模型。
2025.4.17 日,gemini 2.5 flash 发布,是第二个支持混合推理的模型。
2025.4.29 日,Qwen3 系列发布,是第三个支持混合推理的模型,第一个支持混合推理的开源模型。
训练过程
原本闭源模型的情况下,很难看出来(但是可以猜),混合推理模型是如何训练出来的。
但是 Qwen3 开源后,直接把训练过程放出来了:

主要是后训练阶段做的工作,先是进行推理的学习,也就是图中的 stage1 和 stage2,长思维链,就是推理模式的训练核心。
然后再在此基础之上进行非推理模式的学习和融合,也就是 stage3。
最终进行通用的强化学习,Qwen3 对于指令遵循,函数调用,风格遵循的能力也就是这个阶段进行的提升。
当然,这么说可能不太好理解,这里说一说更通俗的理解方式,所谓后训练,其实本质上也是灌一堆写好的对话给大模型。
比如,stage1 和 stage2 的训练数据可能长这个样子:
python
messages = [
{
"role": "system",
"content": "你是一名乐于助人的助手。"
},
{
"role": "user",
"content": "1+1 等于几"
},
{
"role": "assistant",
"content": "<think>用户问我 1+1 等于几,这是一个xxxx</think>正常情况下等于2"
}
]
相比于普通模型的后训练,多了 think 这样的标签(实际可能有所差别,毕竟训练数据并不会放出来,此处只是示例)。
而需要融合非推理模式时,也就是 stage3 时,可以灌入这样的对话:
python
messages = [
{
"role": "system",
"content": "你是一名乐于助人的助手。"
},
{
"role": "user",
"content": "1+1 等于几"
},
{
"role": "assistant",
"content": "<think></think>正常情况下等于2"
}
]
也就是直接给一个空的 think 标签。
这样,模型就也能学习到不需要思考时的回答。
如此一来,当外界不需要推理模式时,只需要在 token 化的时候,主动补充上一个空的 think 标签。
由于训练样本中,对于空的 think 已经进行了调教,所以此时大模型就只会补充后面的内容而不做思考。
从而达到混合推理的效果。
宽泛一点来讲,其实也能算是提示词工程,只是由于在模型训练阶段已经进行了调教,所以输出更稳定,更规范。
当然,这些都是个人的推测,并非官方的说明,仅供参考。也可以查阅这篇文章。
而且,说起来简单,实际上训练过程,不论是数据的准备,后期的推理,都是不小的工程。
不然也不会到现在,也只有三个支持混合推理的模型了。
混合推理模型一定是优势吗?
说实话,从普通模型到推理模型,是称得上创新性的突破的。
但是从推理模型,到混合推理模型,我个人认为:很难称之为创新性的突破 (但是不蒸馒头争口气,Qwen3 第一个开源支持混合推理的模型,这口气妥妥争到了)。
首先,可以看看大概的一个训练过程:
预训练数据集 + 思考数据集 = 推理模型
预训练数据集 + 非思考数据集 = 普通模型
预训练数据集 + 思考数据集 + 空思考数据集 = 混合推理模型
其实本质上只是补充了一个思考数据集为空的训练。
这在一定程度上,会增加模型训练的时长。
不过可能有读者和我一开始会有一样的困惑:
会不会给模型带来负面效果?
在研究之前,我是觉得可能会,毕竟对于模型来讲,多学习了一种思维模式。必然可能会带来理解成本。
但是实际上,从上面的训练过程能够看出来,只是多了一个空的 think 标签。
这点理解成本或者说模式的学习,对于大模型来讲可谓是洒洒水了。
毕竟不论是风格控制,指令遵循,工具调用,哪一个不比学习一个空标签来的复杂。
混合推理模型的优势
首先是,争气了。别人有的,国产也有了,别人闭源,国产直接开源,还量大管饱。
其次,混合推理模型,可能后续,可以把是否思考,交给大模型来做判断。
除此之外,比如控制预算呀,这些谈不上优势,毕竟如果真想控制预算,完全可以自行切换推理模型和普通模型。
最后
一句话:Qwen3,担得起开源第一,混合推理,唯一开源的模型,不得不点赞。
最后是一些碎碎念了:
其实笔者本身也并非从业人员,只是单纯对大模型的实现细节比较好奇。
好在有大模型,我在遇到问题的时候,基础的通识,大模型可以迅速帮我补充。
而复杂一点的最新的一些技术(比如混合推理模型),可以通过溯源的方式找到最初的文章,自行研究。
配合之下,也能让笔者这样一个外行,一窥门道。
不过越研究大模型,越觉得它可能还是存在一些瓶颈。
不论是函数调用,指令遵循,推理模式,本质其实都是在训练集中加入指定格式的数据。
不过话说回来,这倒是也接近我们人类的学习方式:
想想我们学习一门编程语言的时候,其实也是,不断的输入指定格式。
然后才慢慢理解了这个编程语言。
最后,Qwen3 还针对性的对函数调用、mcp,agent 的能力做了加强,可以点个关注,等后续更新。
