“ Qwen3 模型以其卓越的性能、效率和多语言能力,为开源大语言模型领域树立了新的标杆,引领着技术发展的新潮流。”
大家好,我是肆〇柒。在 4 月底的时候 Qwen3 开源放出了权重,在热火朝天开炉炼丹后的不久,上周三千问团队又放出了 Qwen3 的技术报告,最近有点小忙,所以虽然第一时间阅读了技术报告,但是一直没有发文出来。可是,这么重要的模型,怎能不发一篇,所以,虽然迟也要发,不仅发,我还要补充一点官方渠道没有的内容。
仅从技术报告来看,Qwen3 并不是一个简单的迭代更新,而是一次全方位的技术升级。它在性能、效率以及多语言能力等多个关键维度实现了令人瞩目的提升,为人工智能领域注入了全新的活力与可能性。凭借其卓越的代码生成能力,它能够精准理解开发者意图,快速输出高质量、可运行的代码片段,极大地提升了编程效率;在数学推理方面,Qwen3 像是一位思维敏捷的数学家,能够巧妙地处理复杂的公式与逻辑关系,为科研工作者和学生提供有力支持;而在智能体任务中,它又成为聪明能干的助手,高效协调各类资源,助力任务的顺利完成。下面我们一起来阅读这份报告吧
Qwen3 模型系列概述
模型架构与参数规模:构建强大的语言模型根基
Qwen3 模型家族阵容庞大,涵盖了从参数规模 6 亿到 2350 亿不等的多种型号,充分满足不同应用场景对模型容量与计算复杂度的多样化需求。其中,尤为引人注目的是旗舰模型 Qwen3 - 235B - A22B,它以 2350 亿的超大参数规模傲视群雄,然而,在实际推理过程中,平均每 token 仅激活 220 亿参数,这种精妙的设计巧妙地平衡了模型性能与推理效率,使其既能展现出强大的语言理解和生成能力,又不会因过度的参数激活而陷入计算资源消耗的泥沼,为处理复杂多变的语言任务提供了坚实有力的保障。
为了更直观地了解 Qwen3 模型架构,我们可以参考以下表格为密集模型架构各个型号:
模型名称 | 层数 | 头数 (Q / KV) | 是否绑定嵌入 | 上下文长度 |
Qwen3 - 0.6B | 28 | 16 / 8 | 是 | 32K |
Qwen3 - 1.7B | 28 | 16 / 8 | 是 | 32K |
Qwen3 - 4B | 36 | 32 / 8 | 是 | 128K |
Qwen3 - 8B | 36 | 32 / 8 | 否 | 128K |
Qwen3 - 14B | 40 | 40 / 8 | 否 | 128K |
Qwen3 - 32B | 64 | 64 / 8 | 否 | 128K |
以下为Qwen3 MoE 模型架构型号:
模型名称 | 层数 | 头数 (Q / KV) | 专家总数 / 激活专家数 | 上下文长度 |
Qwen3 - 30B - A3B | 48 | 32 / 4 | 128 / 8 | 128K |
Qwen3 - 235B - A22B | 94 | 64 / 4 | 128 / 8 | 128K |
思考模式与非思考模式的创新整合:灵动适应多样化任务需求
Qwen3 在模式设计上展现出非凡的创新力,成功将思考模式与非思考模式融合于同一架构之下。思考模式犹如一位深思熟虑的学者,面对复杂问题时,会逐步进行多步推理,抽丝剥茧般探寻问题的本质与解决方案;而非思考模式则恰似敏捷果敢的行动派,依据已有上下文迅速做出判断,生成简洁直接的回应。
在实际应用中,用户无需在不同模型间来回切换,只需通过简单的指令或聊天模板的设置,即可在同一模型中实现模式的动态转换。具体来说,Qwen3 设计了一种灵活的聊天模板机制,允许用户通过特定的指令来指定模型使用思考模式或非思考模式。例如:
- 思考模式:用户可以在查询中添加 /think 标志,模型会自动进入思考模式,进行深度推理并生成详细的思考过程和答案。例如:
用户:{query} /think 助手:<think> {thinking content} </think> {response}
- 非思考模式:用户可以在查询中添加 /no_think 标志,模型会自动进入非思考模式,快速生成简洁的回应。例如:
用户:{query} /no_think 助手:<think> </think> {response}
这种设计不仅允许用户根据任务需求灵活切换模式,还确保了模型在不同模式下的表现一致性。默认情况下,模型会以思考模式运行,用户可以通过添加特定标志来切换到非思考模式,从而实现对模型行为的精细控制。
通过这种灵活的模式切换机制,Qwen3 能够在不同任务场景中自如穿梭,无论是需要深度推理的复杂问题,还是需要快速响应的简单任务,都能提供高质量的服务,极大地提升了用户体验的流畅性与便利性。
思考预算机制:精细掌控计算资源分配的智慧策略
为了进一步优化模型性能与资源利用率,Qwen3 引入了独具匠心的思考预算机制。在推理过程中,用户可根据任务的复杂程度与实时需求,自适应地设定 token 预算,从而精准调控模型的思考深度。对于一些需要深度分析与多步推理的高难度问题,如复杂的数学建模或跨领域知识融合任务,用户适当增加思考预算,赋予模型更多 “思考空间”,使其能够充分展开逻辑推理,挖掘问题深层次的内涵;而对于相对简单的任务,如日常闲聊、基础信息查询等,则可降低预算,促使模型快速生成简洁回应,避免不必要的计算资源浪费。这一机制赋予了 Qwen3 极高的灵活性与可控性,使其能够根据不同任务场景灵活调整资源分配,实现性能与效率的最优平衡,堪称是模型智能化设计的点睛之笔。
思考预算机制允许用户在模型推理时指定一个 token 预算。当模型的思考长度达到用户设定的预算时,系统会自动停止思考过程,并插入一个停止思考的指令:“Considering the limited time by the user, I have to give the solution based on the thinking directly now.\n.\n\n”。之后,模型会基于已有的思考内容生成最终的回应。这种机制不仅确保了模型能够在有限的时间内提供最优化的解决方案,还避免了因过度思考而导致的延迟问题,从而在保证性能的同时,有效控制了计算资源的消耗。
Qwen3-235B-A22B 在思考预算方面的表现
模型预训练:海量数据与多阶段策略铸就卓越基础
预训练数据:构建多元丰富的知识宝库
Qwen3 的预训练之旅始于一个规模空前、内容多元的数据集,它汇聚了 36 万亿个 token,涵盖了 119 种语言和方言,其数据来源之广泛、内容之丰富令人惊叹。从涵盖编码知识的专业文档到涵盖 STEM 领域前沿研究成果的学术论文,从充满生活智慧的推理任务案例到包罗万象的多语言文学作品,这些海量数据如同一座座知识的宝藏,为模型的学习与成长提供了取之不尽、用之不竭的养分。数据的多样性确保了模型能够接触到各种风格、各种主题的语言表达,从而在语言理解与生成上具备广泛的适应性,无论是处理专业领域的复杂文本,还是应对日常交流中的口语表达,都能游刃有余,展现出强大的语言驾驭能力。
为了进一步扩充预训练数据,Qwen3 团队采用了多种创新方法。首先,利用 Qwen2.5 - VL 模型对大量 PDF 文档进行文本提取,随后通过 Qwen2.5 模型对提取的文本进行质量优化,从而获取了数万亿个高质量的文本 token。此外,团队还借助 Qwen2.5 - Math、Qwen2.5 - Coder 等领域专用模型,生成了涵盖数学、编程等多个领域的合成数据,进一步丰富了数据集的内容。最终,通过整合多语言数据和引入更多语言,Qwen3 的多语言支持能力从 Qwen2.5 的 29 种语言扩展到 119 种语言和方言,极大地提升了其在全球范围内的应用潜力。
预训练阶段:循序渐进的深度学习之旅
Qwen3 的预训练过程并非一蹴而就,而是精心设计为三个阶段,每个阶段都有其独特的训练目标与方法,层层递进,逐步夯实模型的能力基础。
在 通用阶段 ,模型如同初入学堂的学生,沉浸在 30 万亿个 token 的知识海洋中,广泛涉猎各种语言和主题,构建起扎实的语言熟练度和通用世界知识基础。这一阶段的训练重点在于让模型掌握语言的基本规则、词汇的丰富含义以及句子的结构组成,使其能够理解并生成符合语法规则、逻辑连贯的文本,为后续的深度学习奠定坚实根基。通过这一阶段的训练,Qwen3 在语言基础能力上达到了一个新的高度,能够处理各种常见的语言任务,如简单的问答、文本摘要等。
随后进入 推理阶段 ,此时的 Qwen3 已经具备了一定的语言基础,但为了进一步提升其解决复杂问题的能力,训练团队对数据集进行了优化调整,大幅增加了 STEM、编码和合成数据的比例。这些数据犹如精心设计的思维训练题,引导模型深入思考,锻炼其逻辑推理、数学建模以及代码理解等高级认知能力。在这一阶段,Qwen3 通过大量复杂的推理任务训练,逐步学会了如何分析问题、构建逻辑链条并找到解决方案,其推理能力得到了显著提升,能够处理更复杂的任务,如数学问题求解、编程代码生成等。
最后是 长文本上下文阶段 ,训练团队精心挑选了大量高质量的长文本语料,将模型的上下文长度扩展至 32,768 个 token。这一阶段的训练好比是锻炼模型的 “长程记忆”,使其能够处理更长、更复杂的文本段落,理解文本中的长距离依赖关系。同时,借助相关技术,模型的序列长度容量实现了四倍提升,这不仅极大地增强了其对长文本的处理能力,还为处理一些需要综合考虑大量信息的任务,如长篇小说创作、复杂报告撰写等,提供了有力支持,让 Qwen3 在处理长文本任务时也能展现出色的性能。
预训练模型的评估:以卓越表现彰显实力
经过精心的预训练,Qwen3 基础语言模型在多项基准测试中大放异彩,充分展现了其卓越的性能。在通用任务测试中,Qwen3 在 MMLU(多任务语言理解)、MMLU - Pro(高级多任务语言理解)等多个权威基准上取得了领先成绩,其对各种领域知识的掌握程度和语言表达的准确性远超同类型模型;在数学与 STEM 任务方面,Qwen3 在 GPQA(高级问题解答)、GSM8K(小学数学应用题)等基准测试中表现优异,准确率大幅领先,充分证明了其强大的数学推理和科学知识理解能力;在编码任务测试中,Qwen3 在 EvalPlus(多语言代码生成评估)、MultiPL - E(多语言代码生成)等基准上取得了令人瞩目的成绩,其生成代码的准确性和可运行性得到了广泛认可;而在多语言任务测试中,Qwen3 更是凭借其广泛的语言支持和出色的跨语言理解能力,在 MGSM(多语言通用科学数学)、MMMLU(多语言多任务语言理解)等多语言基准测试中取得了优异成绩,充分展现了其在多语言领域的强大竞争力。与 Qwen2.5 以及其他开源基础模型相比,Qwen3 在各项测试中均展现出显著的性能优势,无论是参数规模、激活参数数量还是任务表现,都堪称是开源大语言模型领域的新标杆,为后续的后训练优化奠定了坚实基础。
模型后训练:深度优化与知识传承的协同进化
后训练目标:全方位提升模型性能与适应性
后训练阶段是 Qwen3 模型进一步提升性能、优化用户体验的关键环节。这一阶段的核心目标是实现推理控制和强到弱的知识蒸馏,通过精心设计的训练流程,让模型在不同任务场景中展现出更出色的性能,同时将大型模型的先进知识有效传递给轻量级模型,实现模型家族的协同进化,提升整个模型体系的竞争力与实用性。
后训练流程:多阶段强化训练塑造全能模型
后训练流程分为多个阶段,每个阶段都针对特定的训练目标和任务类型,采用不同的训练方法和技术手段,逐步提升模型的综合能力。
在 长链推理冷启动阶段 ,训练团队精心构建了一个全面且高质量的数据集,涵盖了数学、代码、逻辑推理以及 STEM 等多个领域的复杂问题,并为每个问题配备了经过验证的参考答案或代码测试用例。在数据筛选过程中,首先利用 Qwen2.5 - 72B - Instruct 模型对查询进行过滤,剔除那些无法验证、包含多个子问题或可以通过非推理方式轻松解答的查询,确保数据集中的问题均具有一定的复杂性和挑战性,能够有效锻炼模型的推理能力。随后,通过 QwQ - 32B 模型生成候选答案,并经过严格的人工审核和筛选,进一步保证数据质量。最终,从筛选后的数据中挑选出一部分用于模型的初始冷启动训练,这一阶段的训练重点在于为模型灌输基础的推理模式,使其初步掌握如何思考和解决问题,为后续的强化学习奠定基础。
Qwen3系列模型的后训练流程
紧接着是 推理强化学习(Reasoning RL)阶段 ,训练团队从冷启动阶段未使用过的数据中精心挑选出 3,995 个查询 - 验证器对,这些数据不仅具有挑战性,还覆盖了广泛的子领域,能够全面锻炼模型的推理能力。在训练过程中,采用 GRPO(基于梯度的强化学习优化)算法更新模型参数,通过设置大批次大小和高查询次数,结合离线训练提高样本效率,同时巧妙地控制模型的熵,使其在探索和利用之间达到平衡,从而实现稳定且有效的训练。经过这一阶段的强化学习,模型在推理任务上的表现有了显著提升,例如 Qwen3 - 235B - A22B 模型在 AIME’24 测试中的成绩从 70.1 飙升至 85.1,充分证明了强化学习在提升模型推理能力方面的强大效果。
随后进入 思考模式融合阶段 ,这一阶段的目的是将非思考能力整合到已经具备思考能力的模型中,实现两种模式的无缝切换和协同工作。训练团队通过持续的监督微调(SFT)对推理 RL 模型进行优化,并精心设计了聊天模板,以支持两种模式的融合。在 SFT 数据构建方面,结合了思考模式和非思考模式的数据,其中思考模式数据通过拒绝采样从冷启动阶段的查询中生成,而非思考模式数据则涵盖了编码、数学、指令遵循、多语言任务、创意写作、问答和角色扮演等多种任务类型,确保模型在不同任务场景下都能表现出色。此外,为了提升模型在低资源语言任务上的性能,还特别增加了翻译任务的比例。通过这一阶段的训练,模型不仅能够灵活切换思考模式,还在多种任务上实现了性能提升,进一步增强了模型的实用性和适应性。
最后是 通用强化学习(General RL)阶段 ,训练团队为模型设计了一个包含 20 多个任务的复杂奖励系统,这些任务涵盖了指令遵循、格式遵循、偏好对齐、智能体能力和特定场景能力等多个方面,期望全面提升模型在各种场景下的综合能力和稳定性。在奖励计算方面,采用了规则基础奖励、基于参考答案的模型基础奖励和无参考答案的模型基础奖励等多种方式,确保模型能够准确理解并遵循用户指令,生成符合格式要求、符合人类偏好的高质量回应。通过这一阶段的训练,模型在指令遵循、格式遵循、偏好对齐等任务上的表现有了显著提升,例如在 IFEval(指令遵循评估)中的严格提示准确率和 Arena - Hard(高级竞技场任务)中的表现均大幅提高,充分证明了通用强化学习在提升模型综合性能方面的关键作用。
强到弱的知识蒸馏(Strong - to - Weak Distillation):高效传承知识,优化轻量级模型
除了上述针对旗舰模型的深度优化训练,Qwen3 还特别注重将大型模型的先进知识有效传递给轻量级模型,以实现整个模型家族的协同进化。通过强到弱的知识蒸馏技术,Qwen3 成功地将大型模型的推理能力和知识储备高效地传授给轻量级模型,使其在保持较小模型规模的同时,也能展现出强大的性能和推理能力。这一过程分为离线蒸馏和在线蒸馏两个阶段,在离线蒸馏阶段,首先将大型教师模型在思考模式和非思考模式下生成的输出 logits 传递给轻量级学生模型,为其提供丰富的知识引导;随后,在在线蒸馏阶段,学生模型根据这些知识引导生成自己的输出,并通过与教师模型的 logits 对比,调整自身参数,最小化 KL 散度,从而实现知识的高效传承。与传统的强化学习方法相比,知识蒸馏不仅能够显著提升轻量级模型的性能,还能大幅减少训练所需的 GPU 小时数,提高训练效率,为轻量级模型的快速开发和优化提供了有力支持,确保了 Qwen3 模型家族在不同应用场景中的广泛适用性和高效实用性。
模型性能与表现:全方位卓越成就开源新标杆
旗舰模型 Qwen3 - 235B - A22B 的卓越表现
Qwen3 - 235B - A22B 作为 Qwen3 模型家族中的旗舰型号,在多个领域的表现堪称卓越,充分展现了其作为开源大语言模型新标杆的强大实力。在思考模式下,它在 AIME’24 和 AIME’25 这两场极具挑战性的数学竞赛模拟测试中分别取得了 85.7 和 81.5 的优异成绩,这一成绩不仅在开源模型中遥遥领先,甚至与一些封闭源代码的顶尖模型相比也毫不逊色,充分证明了其在数学推理领域的强大能力。在 LiveCodeBench v5(代码生成与执行测试)中,它以 70.7 的高分展现了出色的代码生成能力,能够准确理解编程任务需求并生成高质量、可运行的代码,为开发者提供了有力的辅助工具。此外,在 BFCL v3(智能体任务测试)中,它也取得了 70.8 的高分,表明其在智能体任务中的出色表现,能够高效协调资源、完成复杂任务,展现出强大的智能体能力。
在非思考模式下,Qwen3 - 235B - A22B 的表现同样出色。在 MMLU - Redux(多任务语言理解测试)中,它以 87.81 的高分证明了其在通用语言理解任务上的卓越性能,能够准确理解并回答各种领域的问题;在 GPQA - Diamond(高级问题解答测试)中,它取得了 44.06 的成绩,展现了其在处理复杂问题时的高效能力;在 SuperGPQA(超级问题解答测试)中,它以 88.87 的高分再次证明了其在问题解答领域的强大实力。这些成绩不仅展示了 Qwen3 - 235B - A22B 在不同任务场景下的全面性,更凸显了其在开源大语言模型领域的领先地位,无论是在思考模式还是非思考模式下,都能为用户提供高质量、高效率的服务,满足多样化的应用需求。
其他 Qwen3 模型的亮眼表现
除了旗舰模型 Qwen3 - 235B - A22B 外,Qwen3 模型家族中的其他成员也均展现出色的性能,各自在不同基准测试中取得了优异成绩,充分证明了 Qwen3 模型体系的全面性和竞争力。如下表为 Qwen3 模型性能对比
模型名称 | 思考模式 | 非思考模式 |
Qwen3 - 32B | 65.54 (MMLU - Pro) | 89.2 (MMLU - Redux) |
Qwen3 - 30B - A3B | 61.49 (MMLU - Pro) | 81.38 (MMLU - Redux) |
Qwen3 - 14B | 56.73 (MMLU - Pro) | 82.63 (MMLU - Redux) |
Qwen3 - 8B | 52.70 (MMLU - Pro) | 79.54 (MMLU - Redux) |
Qwen3 - 4B | 42.71 (MMLU - Pro) | 72.99 (MMLU - Redux) |
Qwen3 - 1.7B | 36.76 (MMLU - Pro) | 62.63 (MMLU - Redux) |
Qwen3 - 0.6B | 24.74 (MMLU - Pro) | 54.47 (MMLU - Redux) |
模型的多语言能力:全球视野下的语言革新
多语言支持的扩展:跨越语言障碍,拥抱全球用户
在全球化的今天,语言的多样性既是文化交流的丰富源泉,也是技术应用的一大挑战。Qwen3 模型在多语言支持方面的显著提升,无疑是其技术革新的一大亮点。与前代 Qwen2.5 模型相比,Qwen3 的多语言支持范围从 29 种语言大幅扩展至 119 种语言和方言,这一跨越式的增长使其能够更好地满足全球用户的多样化语言需求,极大地增强了其在全球范围内的可访问性和实用性。无论是英语、中文、西班牙语等使用人数众多的主流语言,还是一些相对小众的语言和方言,Qwen3 都能够提供高质量的语言理解和生成服务,为不同语言背景的用户搭建起沟通与交流的桥梁,让技术的红利惠及更广泛的人群。
下表为 Qwen3 支持的语言家族和语言代码
语言家族 | 语言数量 | 语言代码 |
印欧语系 | 40 | por Latn, deu Latn, tgk Cyrl, ces Latn, nob Latn, dan Latn, snd Arab, spa Latn, isl Latn, slv Latn, eng Latn, ory Orya, hrv Latn, ell Grek, ukr Cyrl, pan Guru, srp Cyrl, npi Deva, mkd Cyrl, guj Gujr, nld Latn, swe Latn, hin Deva, rus Cyrl, asm Beng, cat Latn, als Latn, sin Sinh, urd Arab, mar Deva, lit Latn, slk Latn, ita Latn, pol Latn, bul Cyrl, afr Latn, ron Latn, fra Latn, ben Beng, hye Armn |
汉藏语系 | 3 | zho Hans, mya Mymr, zho Hant |
闪含语系 | 8 | heb Hebr, apc Arab, acm Arab, ary Arab, ars Arab, arb Arab, mlt Latn, erz Arab |
南岛语系 | 7 | ilo Latn, ceb Latn, tgl Latn, sun Latn, jav Latn, war Latn, ind Latn |
达罗毗荼语系 | 4 | mal Mlym, kan Knda, tel Telu, tam Taml |
突厥语系 | 4 | kaz Cyrl, azj Latn, tur Latn, uzn Latn |
台 - 卡岱语系 | 2 | tha Thai, lao Laoo |
乌拉尔语系 | 3 | fin Latn, hun Latn, est Latn |
南亚语系 | 2 | vie Latn, khm Khmr |
其他 | 7 | eus Latn, kor Hang, hat Latn, swh Latn, kea Latn, jpn Jpan, kat Geor |
多语言任务评估:以卓越表现证明实力
为了全面评估 Qwen3 在多语言任务上的性能表现,训练团队精心挑选了一系列具有代表性的多语言基准测试,涵盖指令遵循、知识理解、数学推理和逻辑推理等多个方面。在 Belebele 基准测试中,Qwen3 面对 80 种语言的自然语言理解挑战,展现出卓越的跨语言能力,其成绩与同样规模的 Gemma 模型不相上下,而远超前代 Qwen2.5 模型,充分证明了其在多语言领域的强大竞争力。在 Multi - IF(多语言指令遵循)测试中,Qwen3 在多种语言上均取得了优异成绩,例如在西班牙语、法语、葡萄牙语等常用语言上,其准确率均超过 70%,表明其能够准确理解并遵循不同语言的指令,为用户提供符合要求的服务。在 MMMLU(多语言多任务语言理解)测试中,Qwen3 在 14 种语言上取得了平均 86.7 的高分,充分展现了其在多语言知识理解方面的强大能力,无论是科学知识、文化常识还是专业领域知识,Qwen3 都能够准确理解和回答。在 MT - AIME2024(多语言数学竞赛模拟测试)中,Qwen3 在 55 种语言上展现了出色的数学推理能力,其平均成绩达到 80.8,证明了其能够跨越语言障碍,准确解答复杂的数学问题。在 PolyMath(多语言数学推理)测试中,Qwen3 在 18 种语言上取得了平均 54.7 的成绩,进一步证明了其在数学领域的强大跨语言推理能力。在 MLogiQA(多语言逻辑推理)测试中,Qwen3 在 10 种语言上取得了平均 77.1 的成绩,表明其能够准确理解并解答不同语言的逻辑推理问题,展现出强大的逻辑思维能力。
这些多语言基准测试成绩充分证明了 Qwen3 在多语言理解和生成能力方面的强大实力,无论是在指令遵循、知识理解还是数学和逻辑推理等复杂任务上,Qwen3 都能够以多种语言为用户提供高质量的服务,真正实现了技术的全球化应用,为不同语言背景的用户带来了前所未有的便利和高效体验。
Qwen3 的未来研究方向:持续探索,引领技术前行
尽管 Qwen3 已经取得了令人瞩目的成就,但技术的进步永无止境。根据论文描述,Qwen3 的未来研究方向主要集中在以下几个关键领域,希望进一步提升模型性能,拓展其应用范围,为人工智能的未来发展提供更强大的动力。
扩大预训练数据规模与多样性
数据是语言模型的基石,Qwen3 团队计划继续扩大预训练数据的规模和多样性。通过引入更多高质量、多领域的数据源,模型将能够接触到更广泛的知识和语言表达方式,从而进一步提升其语言理解和生成能力。例如,增加跨学科领域的专业数据,如医学、法律、金融等,将使模型在这些特定领域的表现更加专业和精准;同时,引入更多低资源语言的数据,将进一步提升 Qwen3 在全球范围内的语言覆盖能力,为更多小众语言用户提供更好的服务。此外,数据的多样性还将包括不同风格、不同语境的文本,如文学作品、新闻报道、社交媒体对话等,使模型能够更好地适应各种语言风格和应用场景,生成更加自然、贴合语境的文本内容。
改进模型架构与训练方法
为了进一步提升模型的性能和效率,Qwen3 团队将致力于改进模型架构和训练方法。一方面,通过优化神经网络的结构设计,如引入更高效的注意力机制、改进的归一化方法等,模型将能够更有效地处理大规模数据和复杂任务,同时降低计算资源消耗。例如,研究新型的自注意力机制,使其在捕捉长距离依赖关系时更加高效,同时减少计算复杂度;探索更先进的归一化技术,以提高模型的训练稳定性和收敛速度。另一方面,团队还将探索更先进的训练策略,如动态调整学习率、采用更优化的优化算法等,以进一步提升模型的训练效果和性能表现。例如,根据训练过程中的不同阶段和任务特点,动态调整学习率,使其在模型收敛初期快速下降,在后期精细调整,以达到更好的训练效果;研究新型的优化算法,如基于动量的优化方法或自适应学习率优化算法,以提高模型在大规模数据集上的训练效率和收敛速度。
增加强化学习的计算资源投入
强化学习在提升模型的推理能力和智能体任务表现方面具有重要作用。为了进一步挖掘强化学习的潜力,Qwen3 团队计划增加在强化学习方面的计算资源投入。通过扩大强化学习的训练规模,模型将能够更充分地与环境进行交互,学习到更有效的策略和行为模式,从而在复杂任务中表现出更高的智能水平。例如,在智能体任务中,增加强化学习的计算资源将使模型能够更好地学习如何在动态环境中做出最优决策,完成复杂的任务目标;在数学推理和逻辑推理任务中,强化学习将有助于模型进一步提升其推理能力和解题技巧,生成更准确、更高效的解决方案。此外,团队还将探索如何将强化学习与现有的预训练和后训练流程更紧密地结合,实现模型性能的全面提升,为人工智能的未来发展提供更强大的技术支持。
总结
Qwen3 作为开源模型领域的明星模型,凭借其在性能、效率和多语言能力上的全方位提升,以及一系列创新性的技术设计和优化策略,已经在人工智能领域树立了新的标杆。它不仅在代码生成、数学推理、智能体任务等多个关键领域展现出卓越的性能,为相关行业的技术发展和应用创新提供了强大动力;而且其广泛的多语言支持能力,极大地拓展了其在全球范围内的应用前景,为不同语言背景的用户带来了前所未有的便利和高效体验。
我读完 Qwen3 技术报告,从模型架构设计来看,Qwen3 将思考模式与非思考模式巧妙融合,这种创新的架构理念,极大地提升了模型的灵活性和适应性,使其能够根据不同任务需求灵活切换模式,为用户提供更加精准、高效的服务。同时,思考预算机制的引入,更是体现了 Qwen3 在资源管理上的智慧,它让用户能够根据实际需求精准控制模型的思考深度,既避免了资源浪费,又确保了模型在复杂任务中的出色表现。
在预训练阶段,Qwen3 所采用的庞大且多元的数据集,以及精心设计的多阶段训练策略,为模型奠定了坚实的知识基础。36 万亿个 token 的数据规模,涵盖了 119 种语言和方言,如此丰富多样的数据,让模型在语言理解和生成上具备了强大的通用性和适应性。从通用阶段的语言基础构建,到推理阶段的专项能力提升,再到长文本上下文阶段的长距离依赖关系学习,这一循序渐进的训练过程,充分体现了 Qwen3 团队对模型成长规律的深刻理解,也为后续的后训练优化提供了有力支撑。
后训练阶段的深度优化也很吸引眼球。从长链推理冷启动到推理强化学习,再到思考模式融合和通用强化学习,以及强到弱的知识蒸馏,这一系列复杂而精细的训练流程,全方位地提升了模型的性能和稳定性。尤其是知识蒸馏技术的应用,不仅让轻量级模型能够继承大型模型的先进知识,还大幅提高了训练效率,这种对模型家族整体性能提升的系统性思考和优化策略,还是让人期待Qwen3 的实际落地表现的。
在性能表现方面,Qwen3 无论是旗舰模型还是其他不同规模的型号,均在多项基准测试中取得了优异成绩,充分证明了其在代码生成、数学推理、智能体任务和多语言能力等多个关键领域的强大实力。
其实,整个技术报告中,最令我开心的就是关于思考与非思考模式的切换,以及思考预算这两个特性。对于思考模式的切换这个 trick,设计的很巧妙,学习到了。而对于思考预算,是我对行业推理类模型的一个预判,并且我曾发过一篇文,里面也提到过思考预算的基本训练原理。正因为此,当我看到 Qwen3 的技术报告中说明,Qwen3 支持思考预算,这与我的预判产生了共鸣。看上去一切都很美好,此时应有转折,然鹅,我并没有从任何官方渠道,包括技术报告中,找到如何使用思考预算的方式。所以借助强大的网络,看到已经有人代码推理尝试了思考预算(thinking Budget)。如下:
如何推理“Thinking Budget”
要实现思考预算,需要对 Qwen3 的推理代码做一些手动改变。transformers 有一个称为 LogitProcessor 的类,正如其名,它将在 model.generate() 期间对 logits 执行一些逻辑
复制#| filename: thinking_budget_processor.py #| language: python from transformers.generate import LogitsProcessor class ThinkingTokenBudgetProcessor(LogitsProcessor): """ A processor where after a maximum number of tokens are generated, a </think> token is added at the end to stop the thinking generation, and then it will continue to generate the response. """ def __init__(self, tokenizer, max_thinking_tokens=None): self.tokenizer = tokenizer self.max_thinking_tokens = max_thinking_tokens self.think_end_token = self.tokenizer.encode("</think>", add_special_tokens=False)[0] self.nl_token = self.tokenizer.encode("\n", add_special_tokens=False)[0] self.tokens_generated = 0 self.stopped_thinking = False self.neg_inf = float('-inf') def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor) -> torch.FloatTensor: self.tokens_generated += 1 if self.max_thinking_tokens == 0 and not self.stopped_thinking andself.tokens_generated > 0: scores[:] = self.neg_inf scores[0][self.nl_token] = 0 scores[0][self.think_end_token] = 0 self.stopped_thinking = True return scores if self.max_thinking_tokens isnot None and not self.stopped_thinking: if (self.tokens_generated / self.max_thinking_tokens) > .95: scores[0][self.nl_token] = scores[0][self.think_end_token] * (1 + (self.tokens_generated / self.max_thinking_tokens)) scores[0][self.think_end_token] = ( scores[0][self.think_end_token] * (1 + (self.tokens_generated / self.max_thinking_tokens)) ) if self.tokens_generated >= (self.max_thinking_tokens - 1): ifself.tokens_generated == self.max_thinking_tokens-1: scores[:] = self.neg_inf scores[0][self.nl_token] = 0 else: scores[:] = self.neg_inf scores[0][self.think_end_token] = 0 self.stopped_thinking = True return scores
以下是一段测试代码,这只是把这段思考预算的逻辑塞到了 transformers,但是这也应该适用于 vllm(或者可以轻松转换为 vllm):
复制from transformers import AutoTokenizer, pipeline messages = [ {"role": "system", "content": "When answering questions, always only respond with only the correct answer, no explanation or other text is required."}, {"role": "user", "content": "What is the square root of 2722?"}, ] tokenizer = AutoTokenizer.from_pretrained("/mnt/models/Qwen3-0.6B") processor = ThinkingTokenBudgetProcessor(tokenizer, max_thinking_tokens=100) pipe = pipeline( "text-generation", model="/mnt/models/Qwen3-0.6B", max_new_tokens=1500, logits_processor=[processor], device=0 ) print(pipe(messages)[0]["generated_text"][-1]["content"])
注意: max_new_tokens 需要大于 max_thinking_tokens ,否则它只会思考然后结束。使用0:
复制</think> The square root of 2722 is approximately 52.18.
在 100 个 token 时:
复制<think> Okay, so I need to find the square root of 2722. Hmm, let's think. I remember that the square root of a number is a value that, when multiplied by itself, gives the original number. So, I need to find a number that, when multiplied by itself, equals 2722. First, maybe I should check if 2722 is a perfect square. I know that perfect squares are numbers that can be </think> 2722
在 300 个 token 时:
复制<think> Okay, so I need to find the square root of 2722. Hmm, let's think. I remember that the square root of a number is a value that, when multiplied by itself, gives the original number. So, I need to find a number that, when multiplied by itself, equals 2722. First, maybe I should check if 2722 is a perfect square. I know that perfect squares are numbers that can be expressed as a product of two equal integers. For example, 16 is 4 squared because 4*4=16. But 2722... Let me think of some numbers near the square root of 2722. Wait, the square root of 2722. Let me approximate it. The square of 50 is 2500, and the square of 52 is 52*52 = 2704. Oh, right! 52 squared is 2704. Then 53 squared would be 53*53. Let me calculate that. 50*50=2500, 50*3=150, 3*50=150, and 3*3=9. So adding those up: 2500 + 150 + 150 + 9 </think> 2722
在 600 个 token 时:
复制<think> Okay, so I need to find the square root of 2722. Hmm, let's think. I remember that the square root of a number is a value that, when multiplied by itself, gives the original number. So, I need to find a number that, when multiplied by itself, equals 2722. First, maybe I should check if 2722 is a perfect square. I know that perfect squares are numbers that can be expressed as a product of two equal integers. For example, 16 is 4 squared because 4*4=16. But 2722... Let me think of some numbers near the square root of 2722. Wait, the square root of 2722. Let me approximate it. The square of 50 is 2500, and the square of 52 is 52*52 = 2704. Oh, right! 52 squared is 2704. Then 53 squared would be 53*53. Let me calculate that. 50*50=2500, 50*3=150, 3*50=150, and 3*3=9. So adding those up: 2500 + 150 + 150 + 9 = 2709. Oh, so 53 squared is 2709. Then 54 squared would be 54*54. Let me calculate that. 50*50=2500, 50*4=200, 4*50=200, and 4*4=16. Adding those: 2500 + 200 + 200 + 16 = 2916. So, 53 squared is 2709, and 54 squared is 2916. The original number is 2722. That's between 53 and 54. Let me check 53.5 squared. Maybe I can use a better approximation. Alternatively, since 53^2=2709 and 54^2=2916, the difference between 2722 and 2709 is 13. So, 2722 - 2709 = 13. So, approximately, the square root is 53 + (13)/(2*53) by linear approximation. Let me calculate that. 13 divided by 106 is approximately 0.122. So, approximately 53.122. But since we need </think> 53.122
为什么思考预算如此重要?自 inference-time-scaling 在 GPT-O1 模型上成功实践,并且 DeepSeek 开源了 R1 模型的训练方法之后,众多模型厂商以及垂直领域的 AI 业务公司纷纷开始采用这一推理范式。Reason Model 的推理效果固然出色,但其代价是消耗大量的时间和算力。然而,在实际应用模型时,并非所有场景都需要复杂的推理步骤。因此,如果能够通过思考预算进行控制,那么 Agent 就能够具备更好的推理自适应能力。这不仅能够节省算力,还能提升响应效率,从而为用户提供更优质的体验。在这里,我想大胆地做出一个判断:无论是思考预算本身,还是思考与非思考模式之间的灵活切换这种双模式融合的架构,或许都只是语言模型发展过程中的一个过渡阶段。从长远来看,随着技术的不断进步,我相信顶尖的研究者和模型厂商将能够开发出更加智能的模型。这些模型将能够像人类一样,根据不同的场景自动判断何时需要深度推理,何时可以直接快速反馈用户,从而实现真正的自适应思考模式。
参考资料
- Qwen3 Technical Repor
thttps://arxiv.org/abs/2505.09388
- about thinking budget solution
https://muellerzr.github.io/til/end_thinking.html