Qwen3论文阅读

1、核心架构改进:

1)注意力机制

采用了 GQA (Grouped Query Attention) 以提高推理效率

什么是GQA注意力机制?

介于传统的多头注意力机制以及极简的MQA注意力机制之间,目标为平衡生成速度以及模型精度

首先我们先看一看多头注意力机制以及多询注意力机制的区别

MHA (Multi-Head Attention): 每个 Query (Q) 都有对应的 Key (K) 和 Value (V)。虽然效果最好,但在推理时需要缓存大量的 KV 状态(KV Cache),导致内存占用高,推理速度慢。

MQA (Multi-Query Attention): 所有的 Q 共享同一组 K 和 V。这极大地减少了内存占用和数据传输,速度极快,但由于表达能力大幅下降,模型性能(准确度)通常会受损。

GQA:把query分成若干组每一组共享KV

详细的计算流程:

假设我们输入一个128length的token序列,模型中存储了一个计算query的矩阵Wq,大小为[512,512],X x Wq = Total_Q,得到一个[128,512]的结果,后续在物理上计算结束后,会将512维切位8份,每一份即为[128,64]于是就得到了8个query

若分为两组那么每四个query为一组,共享一个KV。

2)RMSNorm

RMSNorm 是标准 LayerNorm(层规范化)的一种简化变体,旨在提高计算效率

节省计算开销

此外还采用了前置规范化

后置规范化(post-norm):

先做子层操作(如 Attention 或 FFN)并与输入相加,最后整体做一次 Norm。

前置规范化 (Pre-Norm):

输入先经过 Norm,然后再进入子层操作,最后将结果加回原始输入。

3)SwiGLU激活函数:

传统的激活函数如下所示

SwiGLU 的核心改进是将 GLU 中的 Sigmoid 函数替换为 Swish 激活函数。

在 Qwen3 的 Transformer 块中,前馈网络(FFN)层利用 SwiGLU 进行非线性变换,计算逻辑由三个矩阵组成Wgate,Wup,Wdown,SiLU为Swish函数

门控分支:当x小于0时,SiLU激活函数迅速将其切断,变为0,切断其向下传递的渠道

QK-Norm:在进行注意力计算时,对Q和K进行归一化(防止注意力瘫缩)

对Q和K进行归一化的方法:对每个矩阵的每个向量进行归一化,在训练过程中,必须要使用半精度来节省显存,所以进行归一化恢复对向量的敏感并且防止数据溢出。

2、后训练pipeline

整体的结构如下所示:

旗舰模型采用四阶段的后训练模式,前面两个阶段注重思考推理,后面的阶段注重非思考能力

1)长思维链冷启动阶段(long-CoT Cold Start)

采用qwen2.5-72B进行数据清洗,剔除掉不需要思考可以直接回答的问题

冷启动的作用:

建立初始模式:通过精选的子集进行初始训练,旨在模型中植入基础的推理模式。

为 RL 留白:训练时故意不追求极端的推理表现,以防模型产生路径依赖,从而为后续强化学习(RL)阶段留出更大的改进空间和灵活性。

极简主义:在冷启动阶段,倾向于最小化训练样本数和训练步数,保持模型的“潜力”

2)推理强化学习阶段(Reasoning-RL)

采用GRPO的强化学习策略进行训练

训练策略:

使用Batch Size(大批次)和高 Rollouts(每个问题生成多个答案)。

使用 Off-policy(离线策略)训练来提高样本效率。

通过控制**熵(Entropy)**来平衡“探索”与“利用”,防止模型过早陷入局部最优。

3)通用强化学习阶段(general rl)

奖励函数的设计:

奖励类型原理优点解决的问题
(1) 基于规则 (Rule-based)用代码/正则硬性判断极其精准,不可作弊判断格式是否正确、长度是否达标、代码是否可运行。
(2) 有参考答案的模型打分 (Model-based w/ Ref)让 Qwen2.5-72B 对照标准答案给学生(新模型)打分灵活且标准明确避免规则太死板导致的“误判”(比如意思对但字不同)。
(3) 无参考答案的模型打分 (Model-based w/o Ref)用人类偏好训练出一个 Reward Model(奖励模型)直接打分适用范围最广处理主观问题,提升回答的“高级感”和好感度。

4)强对弱蒸馏(Strong-to-Weak Distillation)

stage1:离线蒸馏

将大模型的答案直接喂给小模型进行训练,相当于直接是sft阶段监督训练。

stage2:在线蒸馏

让小模型自己针对某个问题生成回答(On-policy)。与此同时,让更强大的老师模型(如 Qwen3-235B)也针对同样的问题给出一个输出概率分布,计算 KL 散度(KL Divergence):通过数学手段缩小“学生”和“老师”在逻辑预测上的差距(对齐 Logits)。

Read more

Whisper 模型本地化部署:全版本下载链接与离线环境搭建教程

Whisper 模型本地化部署指南 一、模型版本与下载 Whisper 提供多种规模版本,可通过以下官方渠道获取: 1. GitHub 仓库 https://github.com/openai/whisper 包含最新代码、预训练权重和文档 * tiny.en / tiny * base.en / base * small.en / small * medium.en / medium * large-v2 (最新大模型) Hugging Face 模型库 所有版本下载路径: https://huggingface.co/openai/whisper-{version}/tree/main 替换 {version} 为具体型号: 二、离线环境搭建教程 准备工作 1.

llama.cpp量化模型部署实战:从模型转换到API服务

1. 为什么你需要关注llama.cpp:让大模型在普通电脑上跑起来 如果你对AI大模型感兴趣,肯定听说过动辄需要几十GB显存的“庞然大物”。想在自己的电脑上跑一个7B参数的模型,以前可能得配一张昂贵的专业显卡。但现在,情况不一样了。我今天要跟你聊的 llama.cpp,就是那个能让大模型“瘦身”并飞入寻常百姓家的神奇工具。 简单来说,llama.cpp是一个用C/C++编写的开源项目,它的核心目标只有一个:用最高效的方式,在消费级硬件(比如你的笔记本电脑CPU)上运行大型语言模型。它不像PyTorch那样是个庞大的深度学习框架,它更像一个“推理引擎”,专注于把训练好的模型,以最小的资源消耗跑起来。 我刚开始接触大模型部署时,也被各种复杂的依赖和巨大的资源需求劝退过。直到用了llama.cpp,我才发现,原来在我的MacBook Pro上,也能流畅地和Llama 2这样的模型对话。这背后的功臣,主要就是两点:纯C/C++实现带来的极致性能,以及模型量化技术带来的体积与速度革命。量化这个词听起来有点技术,你可以把它想象成给模型“压缩图片”

CosyVoice环境安装报错:安装openai-whisper时出现ModuleNotFoundError: No module named ‘pkg_resources‘的原因

先说如何解决,我个人采用源码安装,安装时禁用构建隔离: git clone https://github.com/openai/whisper.git cd whisper git checkout v20231117 pip install -e . --no-build-isolation 再说该问题产生的原因,下面是大D老师的回答,自行参考。 太棒了!你找到了正确的解决方案。让我详细解释为什么会出现这个问题,以及为什么 --no-build-isolation 能解决它。 🔍 问题根源分析 问题的关键在于 PEP 517/518 构建隔离机制和你的 setup.py 实现方式。 1. 构建隔离机制 (Build Isolation) 的工作原理 当你执行 pip install -e .(不带 --no-build-isolation)时,

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践 * 0. 前言 * 1. 基于扩散模型的文本生成图像 * 2. 将文本输入编码为嵌入向量 * 3. 条件 UNet 模型中的文本数据融合机制 * 4. 使用 Stable Diffusion 模型生成图像 * 相关链接 0. 前言 在本节中,我们将为扩散模型添加文本控制能力。学习如何通过文字描述来引导图像生成过程,实现从"纯噪声+文本"生成图像,而不仅是从纯噪声生成。 1. 基于扩散模型的文本生成图像 在扩散模型的 UNet 模型训练流程中,我们仅训练模型从含噪图像中预测噪声。为实现文生图功能,需使用以下架构,将文本作为额外输入注入 UNet 模型: 这样的 UNet 模型称为条件 UNet 模型 ,或者更精确地说,是文本条件 UNet