Qwen3技术报告解读

https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf

节前放模型,大晚上的发技术报告。通义,真有你的~

文章目录

  • 预训练
  • 后训练
    • Long-CoT Cold Start
    • Reasoning RL
    • Thinking Mode Fusion
    • General RL
    • Strong-to-Weak Distillation
  • 模型结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

先看下摘要里提到的几个亮点:

  • 包括Dense和Moe模型,参数量横跨0.6B到235B。
    Dense包括:Qwen3-32B、Qwen3-14B、Qwen3-8B、Qwen3-4B、Qwen3-1.7B 和 Qwen3-0.6B。
    Moe包括:

    • Qwen3-235B-A22B,235B 总参数和 22B 激活参数的大型MoE模型。
    • Qwen3-30B-A3B,30B 总参数和 3B 激活参数的小型MoE模型。
  • 把thinking和non-thinking模式集成在一个模型中。并且,只需要在提示词中就能进行两个模式的切换。

  • 多语言支持,从29种到119种。

在Qwen3发布的当天,笔者就赶紧在自己的任务上尝试了新发布的模型,就我的任务而言相比Qwen-2.5来说还是有比较明显的提升的。终于等到技术报告发布了,赶紧来看看~

目录:

  • 预训练
  • 后训练
    • Long-CoT Cold Start
    • Reasoning RL
    • Thinking Mode Fusion
    • General RL
  • 模型结构

预训练

在更大规模的数据上进行了预训练,语言扩充到了119种,token数达到了36万亿!Qwen2.5则有18万亿个。

怎么扩充到这么大规模的预训练数据?

  • 多模态的方案。使用微调后的Qwen2.5-VL提取PDF中的文本。
  • 合成数据。使用Qwen2.5-Math和Qwen2.5-Coder合成数学、代码领域的数据。

为了提高数据的质量和多样性,开发了一个多语言的数据标注系统。使用该系统对训练数据集进行了详细的标注,覆盖了多个维度,包括教育价值、领域、主题和安全性等。这些标注信息会被用于过滤和组合数据。

预训练分成三个阶段:

  1. General Stage,S1。
    模型在 30 万亿个 token 上进行预训练,上下文长度为 4K token。为模型提供了基本的语言技能和通用知识。
  2. Reasoning Stage,S2。
    通过增加知识密集型数据(如 STEM、编程和推理任务)的比例来增强模型的推理能力,随后模型又在额外的 5 万亿个 token 上进行了预训练。
  3. Long Context Stage,最后阶段。
    使用高质量的长上下文数据将上下文长度扩展到 32K token,确保模型能够有效地处理更长的输入。这一阶段的数据种,75%的样本长度在16k-32k,25%在4k-16k。

后训练

四阶段的后训练流程,以对齐人类偏好和下游任务。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. Long-CoT Cold Start,长思维链冷启动。
    使用多样的的长思维链数据进行微调,涵盖了数学、代码、逻辑推理和 STEM 问题等多种任务和领域,在为模型配备基本的推理能力。
  2. 长思维链强化学习。
    大规模强化学习,利用基于规则的奖励来增强模型的探索和钻研能力。
  3. 思维模式融合。
    在一份包括长思维链数据和常用的指令微调数据的组合数据上对模型进行微调,将非思考模式整合到思考模型中。通过一个token(/no_think)来进行模式的切换。
  4. 通用强化学习。
    在包括指令遵循、格式遵循和 Agent 能力等在内的 20 多个通用领域的任务上应用了强化学习,以进一步增强模型的通用能力并纠正不良行为。

另外,可以看到,Qwen3-235B-A22B和Qwen3-32B是按照上面四阶段的后训练流程训的,其他模型则是在这两个的基础上蒸馏出来的。看看每个阶段的一些重点。

Long-CoT Cold Start

使用的数据,包括数学、代码、逻辑推理和STEM,数据集里的每个问答样本都有参考答案、代码样本都配备测试样例。

数据怎么怎么构造的?严格的两阶段的过滤过程:query过滤和response过滤。

  • query过滤。

    • 使用Qwen2.5-72B-Instruct识别并过滤那些难以验证的query,例如包含多个子问题或通用文本生成的query。
    • 此外,还过滤了Qwen2.5-72B-Instruct无需cot就能正确回答的问题,以确保数据集中只包含需要深度推理的问题。
    • 并且使用Qwen2.5-72B-Instruct标注了每个query的领域,以确保数据领域的均衡。
  • response过滤。

    • query过滤后,使用QwQ-32B为每个query生成多个候选响应。
    • 对于QwQ-32B无法生成正确解决方案的查询,由人工标注员评估响应的准确性。进一步的筛选标准包括移除最终答案错误、重复过多、明显猜测、思考与总结内容不一致、语言混用或风格突变、以及可能与验证集项目过于相似的响应。

Reasoning RL

这一阶段的数据必须满足的要求:

  • 在上一阶段没有使用过。
  • 对于冷启动模型是可以学习的。
  • 要有挑战性。
  • 覆盖广泛的子领域。

最终收集了3995(才这么点数据?🤔)个query-verfier pair进行GRPO训练。

在训练策略上,通过控制模型的熵(即模型输出的不确定性)来平衡探索和利用。熵的增加或保持稳定对于维持稳定的训练过程至关重要。

Thinking Mode Fusion

这一阶段的目标是实现对推理行为的管理和控制,即think和no-think的切换,通过SFT实现,并且设计了chat template融合两种模式。

SFT数据怎么构建的?

为了确保上一步得到的模型的性能不被SFT影响,thinking的数据是使用第一阶段的query在第二阶段的模型上做拒绝采样得到的。non-thinking的数据则是精心筛选(具体怎么做的没有细说)的涵盖大量任务的数据,例如代码、数学、指令跟随、多语言任务、创意写作、问答和角色扮演等。对于non-thinking的数据,通过自动生成的checklist来评估响应的质量。

两类数据的模板:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

默认情况下是开启think模式的,为此还在训练数据中添加了一些不包含/think的带思考过程的样本。

此外,还通过训练实现了模型生成时自动进行预算控制(Thinking Budget)。一种具体的情况——不完整的思考过程下也能正常回答问题。在推理时,用户可以指定一个budget,当模型的思考过程达到了指定的阈值时,则手动停止思考过程,并插入停止思考的指令,让模型直接开始回答问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

General RL

重点在奖励的设计上,覆盖了20种不同的任务。一共有三种类型的奖励:

  • Rule-based Reward。
  • Model-based Reward with Reference Answer。用Qwen2.5-72B-Instruct对模型的回答和参考答案进行打分。
  • Model-based Reward without Reference Answer。对于没有标准答案的样本,利用偏好数据训练了一个打分模型对模型回答打分作为标量奖励。

特别的,这一阶段训练了模型的Agent的能力,在RL的Rollout时,允许模型和外部环境进行多轮的交互。

Strong-to-Weak Distillation

前面的这四个阶段使用来训Qwen3-235B-A22B和Qwen3-32B的,其余的小模型都是在这个阶段蒸馏得到的。蒸馏时有两个阶段:

  1. Off-policy Distillation。
    使用强模型(Qwen3-32B或Qwen3-235B-A22B)在思考模式和非思考模式下的生成,将这些输出作为弱模型的训练目标。

  2. On-policy Distillation。

    在思考和非思考模式下,从弱模型中采样,通过最小化弱模型和强模型输出之间的KL散度对弱模型进行微调。

感觉论文种讲的不是很清楚。

模型结构

Dense模型与Qwen2.5的模型结构类似,包括使用了GQA、SwiGLU、RoPE、RMSNorm和pre-normalization。不同之处:去除了QKV-bias、引入了QK-Norm。MoE模型的基础架构和Qwen3 Dense是一样的。

Dense和MoE的模型架构如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

相关文章

【网络编程】十、详解 UDP 协议

文章目录 Ⅰ. 传输层概述1、进程之间的通信2、再谈端口号端口号的引出五元组标识一个通信端口号范围划分常见的知名端口号查看知名端口号协议号 VS 端口号 3、两个问题一个端口号是否可以被多个进程绑定?一个进程是否可以绑定多个端口号? 4、部分常见指令…

实现RTSP低延迟播放器,挑战与解决方案

随着低延迟直播需求的快速增长,RTSP(Real-Time Streaming Protocol)播放器逐渐成为实时视频流传输中的核心技术之一。与WebRTC(Web Real-Time Communication)相比,RTSP在实时性和网络延迟方面面临诸多挑战&…

【springcloud学习(dalston.sr1)】Eureka单个服务端的搭建(含源代码)(三)

该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一) springcloud学习(dalston.sr1)系统文章汇总如下: 【springcloud学习(dalston…

GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 引言 在边缘计算与AI推理场景中,GPU-NPU异构计算架构已成为突破算力瓶颈的关键技…

探索C语言中的二叉树:原理、实现与应用

一、引言 二叉树作为一种重要的数据结构,在计算机科学领域有着广泛的应用,无论是在操作系统的文件系统管理,还是在数据库的索引构建中,都能看到它的身影。在C语言中,我们可以利用指针灵活地构建和操作二叉树。接下来&…

使用libUSB-win32的简单读写例程参考

USB上位机程序的编写,函数的调用过程. 调用 void usb_init(void); 进行初始化 调用usb_find_busses、usb_find_devices和usb_get_busses这三个函数,获得已找到的USB总线序列;然后通过链表遍历所有的USB设备,根据已知的要打开USB设…

vue注册用户使用v-model实现数据双向绑定

定义数据模型 Login.vue //定义数据模型 const registerData ref({username: ,password: ,confirmPassword: })使用 v-model 实现数据模型的key与注册表单中的元素之间的双向绑定 <!-- 注册表单 --><el-form ref"form" size"large" autocompl…

【Arthas实战】常见使用场景与命令分享

简介: Arthas是一款Java诊断工具&#xff0c;适用于多种场景&#xff0c;如接口响应变慢、CPU占用过高、热更新需求等。其核心命令包括实时监控面板&#xff08;dashboard&#xff09;、线程状态查看&#xff08;thread&#xff09;、方法调用链路追踪&#xff08;trace&#x…

Jenkins 最佳实践

1. 在Jenkins中避免调度过载 过载Jenkins以同时运行多个作业可能导致资源竞争、构建速度变慢和系统性能问题。分配作业启动时间可以防止瓶颈&#xff0c;并确保更顺畅的执行。如何实现&#xff1f; 在Cron表达式中使用H&#xff1a;引入抖动&#xff08;jitter&#xff09;&a…

pytest框架 - 第二集 allure报告

一、断言assert 二、Pytest 结合 allure-pytest 插件生成美观的 Allure 报告 (1) 安装 allure 环境 安装 allure-pytest 插件&#xff1a;pip install allure-pytest在 github 下载 allure 报告文件 地址&#xff1a;Releases allure-framework/allure2 GitHub下载&#x…

人工智能时代:解锁职业新身份,从“认证师”到“工程师”的进阶之路

在人工智能技术浪潮席卷全球的今天,技术的飞速迭代正在重塑职业版图。从算法优化到伦理决策,从系统测试到应用开发,AI技术不再只是程序员的专属领域,而是成为各行各业从业者必须掌握的“生存技能”。当企业争相布局AI赛道,个人如何在这场变革中抢占先机?答案或许藏在两个…

【带文档】网上点餐系统 springboot + vue 全栈项目实战(源码+数据库+万字说明文档)

&#x1f4cc; 一、项目概括 本系统共包含三个角色&#xff1a; 管理员&#xff1a;系统运营管理者 用户&#xff1a;点餐消费用户 美食店&#xff1a;上传菜品与处理订单的店铺账号 通过对这三类角色的权限与业务分工设计&#xff0c;系统实现了点餐流程的全链路数字化&a…

window nvidia-smi命令 Failed to initialize NVML: Unknown Error

如果驱动目录下的可以执行&#xff0c;那可能版本原因 "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"复制"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"替换 C:\Windows\System32\nvidia-smi.exe 或者 把C:\Windows\System3…

接触感知 钳位电路分析

以下是NG板接触感知电路的原理图。两极分别为P3和P4S&#xff0c;电压值P4S < P3。 电路结构分两部分&#xff0c;第一部分对输入电压进行分压钳位。后级电路使用LM113比较器芯片进行电压比较&#xff0c;输出ST接触感知信号。 钳位电路输出特性分析 输出电压变化趋势&a…

70、微服务保姆教程(十三)Docker容器详细讲义

一、关于Docker 1.1为什么要用docker? 随着开发的项目越来越复杂,软件越来越多,服务器越来越多,我们在开发和部署的时候会遇到很多问题,比如: 1.不同的应用程序可能会有不同的应用环境,比如Java开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都…

Python 中的 typing.ClassVar 详解

一、ClassVar 的定义和基本用途 ClassVar 是 typing 模块中提供的一种特殊类型&#xff0c;用于在类型注解中标记类变量&#xff08;静态变量&#xff09;。根据官方文档&#xff0c;使用 ClassVar[…] 注释的属性表示该属性只在类层面使用&#xff0c;不应在实例上赋值 例如&…

架构与UML4+1视图

简单对比分析 架构41视图 架构41视图是由Philippe Kruchten提出的&#xff0c;用于描述软件系统的架构。它包括以下五个视图&#xff1a; 逻辑视图&#xff1a;描述系统的功能需求&#xff0c;展示系统的静态结构&#xff0c;通常使用类图、对象图等。开发视图&#xff1a;…

Redis 八股

目录 数据类型 字符串&#xff1a; List&#xff1a; HASH&#xff1a; Set&#xff1a; Zset&#xff1a; BitMap&#xff1a;&#xff08;这个及以下是后来新增的数据结构&#xff09; HyperLogLog&#xff1a; GEO&#xff1a; Stream&#xff1a; 主要数据结构 …

基于协同过滤的文学推荐系统设计【源码+文档+部署】

基于协同过滤的文学推荐系统设计 摘要 随着信息技术的飞速发展和文学阅读需求的日益多样化&#xff0c;构建一个高效、精准的文学推荐系统变得尤为重要。本文采用Spring Boot框架&#xff0c;结合协同过滤算法&#xff0c;设计并实现了一个基于用户借阅行为和社交论坛互动的文学…

鸿蒙电脑:五年铸剑开新篇,国产操作系统新引擎

出品 | 何玺 排版 | 叶媛 前不久&#xff0c;玺哥发布的《鸿蒙电脑&#xff0c;刺向垄断的利刃&#xff0c;将重塑全球PC市场格局》发布后&#xff0c;获得了读者朋友的积极反馈&#xff0c;不少都期望鸿蒙电脑早日发布。 如今&#xff0c;它真来了&#xff01; 5月8日&…