Qwen 系列

Qwen

Qwen 2

Qwen 2.5

Qwen 3

项目地址: https://github.com/QwenLM/Qwen3
论文: Qwen3 Technical Report

模型架构

  • 常规结构:GQA、RoPE、SwiGLU、RMSNorm,BBPE 分词法
  • 128 专家层,每个 token 激活 8 个专家,包含共享专家层(参考DeepSeek)
  • 引入全局 Batch 平衡损失

数据处理步骤

  1. Qwen2.5-VL 处理 PDF 文件,形成文字数据集
  2. Qwen2.5 对得到的文字数据集进行进一步处理,增强数据形式
  3. Qwen2.5、Qwen2.5-Math、Qwen2.5-Coder 分别进行领域内数据格式处理,如 Q&A 对、科普文本块、代码片段等
  4. 最后引入多语言版本,提高交叉语言能力(29➡️119)

预训练阶段

  1. General Stage(S1): Sequence 长度 4096,语言种类 119,数据量 30 T,学习通用知识
  2. Reasoning Stage(S2): 提高模型理解能力,提高科学类数据(STEM)的比例,Sequence 长度 4096,数据量 5T,采用学习率衰减加速学习
  3. Long Context Stage: 提高模型长文本能力,Sequence 长度增加到 32768,长文本(16384-32768)占 75%,短文本(4096-16384)占 25%;用 ABF 将 RoPE 从 1w 长度外推至 100w;推理阶段采用 YARN 和 Dual Chunk Attention(DCA) 实现 Sequence len 的 4-fold 提升

Evaluation

评估任务: 通用任务、数学&科学任务、代码任务、多语言任务

  1. 综合表现超越现有的 SOTA 模型
  2. Qwen3-MoE 相比于 Qwen3-Dense 仅有 1/5 的激活参数
  3. Qwen3-MoE 相比于 Qwen2.5-MoE 仅有 1/2 的激活参数
  4. Qwen3-MoE 相比于 Qwen2.5-Dense 仅有 1/10 的激活参数,并且效果不输于后者

后训练阶段

Stage1-长 CoT 冷启动:

  • 包括查询过滤(query filtering)和回复过滤(response filtering)。
  • 查询过滤:使用 Qwen2.5-72B-Instruct 移除难以验证的问题,以及 不需要思维链直接回答的问题
  • 回答过滤:使用 QwQ-32B 对每个问题生成 N 个回答,对于具有 正Pass@N 的查询,用更加严格的筛选条件来删除回复。

    For queries with positive Pass@N, further stringent filtering criteria are applied to remove responses that (1) yield incorrect final answers, (2) contain substantial repetition, (3) clearly indicate guesswork without adequate reasoning, (4) exhibit inconsistencies between the thinking and summary contents, (5) involve inappropriate language mixing or stylistic shifts, or (6) are suspected of being overly similar to potential validation set items. Subsequently, a carefully selected subset of the refined dataset is used for the initial cold-start training of the reasoning patterns.

此阶段的目标是在模型中灌输基础推理模式,但不要过分强调即时推理性能。这种方法确保模型的潜力不受限制,从而在随后的强化学习(RL)阶段实现更大的灵活性和改进。

Stage2-理解强化学习:

  • 收集 3995 个符合规则的查询,进行 GRPO 强化学习
  • 使用大 batch size 和对每个查询进行大数量的回答有利于训的稳定

    Query-verifier 对的挑选规则:

    1. 在冷启动阶段未使用它们
    2. 对于冷启动模型来说,它们是可以学习的
    3. 他们尽可能具有挑战性
    4. 它们涵盖了广泛的子域

Stage3-思考模式融合:

这一步的目的是将“无思考”模式集成到前面的思考模型中,通过对前面的强化学习模型进行监督微调(SFT)来实现,并且设计一个聊天模板来融合两种模式。

  • SFT 数据: 为了确保 Stage2 模型的性能不会受到 SFT 的损害,使用 Stage2 模型本身在 Stage1 查询上进行拒绝采样生成“思考”数据。
  • 聊天模板设计: 为了更好地融合思考和非思考模式,分别在用户查询或系统信息中设计 \think\no_think标志来进行模式切换。
  • 思维预算: 当模型的思考长度达到用户定义的阈值时,会手动停止思维过程来提供最终解决方案。“考虑用户有限的时间,我必须直接基于思维来提供解决方案。” 插入此指令后,该模型将根据其累积的推理产生最终响应。这种能力没有明确训练,而是由于应用思维模式融合而自然出现的。

Stage4-通用强化学习:

这一阶段的目的是增强模型的核心功能,涵盖了20多个不同的任务,每个任务都具有定制的评分标准。这些任务在以下核心功能中专门针对增强功能:指令遵循、格式遵循、偏好对齐、代理能力、专业场景能力

  • 偏好对齐:对于开放式查询,偏好一致性重点是改善模型的乐趣,参与度和风格,最终提供更自然,更令人满意的用户体验
  • 代理能力:训练模型通过指定接口正确调用工具。在RL推出期间,允许模型使用真实的环境执行反馈执行完整的多转交互周期,从而改善了长距离决策任务的性能和稳定性。
  • 专业场景的能力:在更专业的方案中,设计针对特定上下文的任务。例如,在RAG任务中,合并了奖励信号,以指导模型产生准确且上下文适当的响应,从而最大程度地减少了幻觉的风险。

为了提供上述任务的反馈,利用了三种不同类型的奖励:

  • 基于规则的奖励: 对于诸如教学之类的一般任务和格式服从性等一般任务,精心设计的基于规则的奖励可以以高精度评估模型输出的正确性,从而防止奖励黑客攻击。
  • 带有参考答案的基于模型的奖励: 为每个查询提供一个参考答案,并通过 Qwen2.5-72B-Instruct 根据此参考为模型的响应评分。此方法允许在不需要严格格式的情况下更灵活地处理各种任务,避免使用纯粹基于规则的奖励发生的虚假负面因素。
  • 无参考答案的基于模型的奖励: 利用人类偏好数据,训练一个奖励模型,为模型响应分配标量分数。这种方法不依赖于参考答案,可以处理更广泛的查询,同时有效地提高模型的参与度和实用性。

Stahe5-蒸馏小模型:

  • 线下策略蒸馏: 初始阶段,利用教师模型的/think/no_think模式来进行学生模型的蒸馏,给学生模型基本的模式转换能力。

  • 线上策略蒸馏: 对学生模型进行微调,对 prompt 进行采样,并且将输出与其教师模型的输出进行对齐,最小化 KL 散度。

对比 Qwen2.5

  1. 移除 Qwen2.5 中的 QK-bias,加入 QK-Norm 来稳定训练
  2. MoE 模式

Qwen-VL

项目地址: https://github.com/QwenLM/Qwen-VL
论文: Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond

模型架构

大型语言模型(Large Language Model)

  • 作用: 作为模型的基础组件,负责文本生成和理解
  • 初始化: 使用预训练的 Qwen-7B 模型权重

视觉编码器(Visual Encoder)

  • 作用: 处理输入图像并生成图像特征
  • 架构: 基于 Vision Transformer (ViT),使用 OpenCLIP ViT-bigG 的预训练权重
  • 输入处理: 将图像调整为 448x448 分辨率,分割为 14x14 的图块进行处理

位置感知的视觉 -语言适配器(Position-aware Vision-Language Adapter)

  • 作用: 压缩图像特征序列,解决长序列带来的效率问题
  • 结构: 单层交叉注意力模块,随机初始化
    • 使用一组可训练的向量作为 query, vision encoder 的图像特征作为 key
    • 将图像特征序列压缩为固定长度 256
  • 位置编码: 引入 2D 绝对位置编码,保留图像细节的位置信息

训练过程

Stage 1: 预训练

  • 目标: 对齐视觉模块和语言模型的特征
  • 数据: 使用大规模图文对数据集(约1.4B 图文对)
  • 训练目标: 最小化文本 token 的交叉熵损失
  • 优化器: AdamW (β1=0.9\beta_1=0.9, β2=0.98\beta_2=0.98, ϵ=1e6\epsilon=1e-6)
  • 学习率调度: 余弦学习率调度,最大学习率 2e-4,最小学习率 1e-6, linear warmup 500 步
  • 训练规模: 50.000 步,消耗约 1.5B 图文样本和 500B 图文 token

Stage 2: 多任务预训练

  • 目标: 提升模型在多任务上的表现
  • 数据: 高质量、细粒度的视觉-语言标注数据,交错图像-文本数据
  • 任务: 并行训练以下任务:
    • 图像描述 (Captioning)
    • 视觉问答 (VQA)
    • 定位任务 (Grounding)
    • 参考定位和定位描述 (Ref Grounding & Grounded Cap)
    • 光学字符识别 (OCR)
    • 文本生成 (Text Generation)
  • 训练方式: 全参数训练,输入分辨率提升至 448x448。

Stage 3: 监督微调(SFT)

  • 目标: 增强模型的交互和对话能力
  • 数据: 通过大模型 Self-Instruction 生成的多模态指导数据,涵盖单图和多图对话
  • 训练方式:
    • 冻结 Vision Encoder,仅优化语言模型和 adapter 模块
    • 使用 ChatML 格式构建对话数据,添加图像标识 (如 “Picture id:”) 以支持多图输入
  • 训练参数:
    • 全局批次大小:128
    • 学习率调度:最大学习率 1e-5,最小学习率 1e-6, linear warmup 3000 步。

Qwen-2VL

项目地址: https://github.com/QwenLM/Qwen2-VL
论文: Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution

提出背景

现有问题

  • 当前的大型视觉语言模型(LVLMs)通常受限于固定图像输入尺寸,例如将图像编码为固定分辨率 (如 224x224),导致高分辨率图像中的细节信息损失
  • 大多数LVLM依赖于静态的、冻结的CLIP风格视觉编码器,限制了复杂推理任务中的表现

解决方案

  • 引入动态分辨率训练,使用二维旋转位置嵌入(RoPE)增强模型对不同分辨率的适应性
  • 开发多模态旋转位置嵌入 (M-RoPE),通过独立的组件表示时间和空间信息,提升对动态内容(如视频)的理解能力

模型架构

  • 框架基础: 保留了 Qwen-VL 的框架,集成了视觉编码器和语言模型
  • 视觉编码器: 采用 675M 参数的 ViT,支持图像和视频输入
  • 语言模型: 选择了更强大的 Qwen2 系列语言模型

关键改进(相比Qwen-VL)

  1. Naive动态分辨率:
    • 支持处理任意分辨率的图像,动态转换为可变数量的视觉token
    • 引入 2D-RoPE 捕获图像的二维位置信息
    • 在推理阶段,通过控制打包长度限制 GPU 内存使用
    • 使用 MLP 层将相邻的 2x2 token 压缩为一个token,并在开头和结尾添加特殊token
      (<|vision_ start|><|vision_end|>
  1. 多模态旋转位置嵌入 (M-RoPE):
    • 将旋转嵌入分解为三个组件:时间、高度和宽度
    • 对于文本输入,组件使用相同的位置 ID;对于图像和视频,分别分配不同的 ID
    • 支持多模态输入的位置信息建模,减少位置ID值,提升推理效率

训练方法

  • 采用混合训练方案,结合图像和视频数据
  • 以每秒两帧的速率采样视频,结合3D卷积处理视频输入
  • 动态调整视频帧分辨率,将每个视频的token总数限制为 16384,平衡计算需求与训练效率

Qwen-2.5VL

论文: Qwen2.5- VL Technical Report
模型: https://huggingface.co/Qwen
代码: https://github.com/QwenLM/Qwen2.5-VL

模型架构

  • 模态对齐方法: ViT 之后采用双层 MLP 实现模态对齐,Qwen-2VL 仅使用单层
  • 视觉编码器:
    • Qwen-2.5VL: ViT 中改用 Window-Attention,RMSNorm,SwiGLU,而
    • Qwen-2VL: LayerNorm,GELU
  • 位置嵌入: 将 MRoPE扩展到 3D 情况,更好地处理视频信息
    • 文本输入: 三个组件使用相同的位置 功能等同于传统的 1D RoPE
    • 图像输入: 时间 ID 保持不变,高度和宽度组件根据 token 在图像中的空间位置分配唯一 ID
    • 视频输入: 视频被视为帧序列,时间 ID逐帧递增,高度和宽度组件遵循与图像相同的分配模式

训练方法

动态分辨率训练

动态分辨率:

  • 支持处理任意分辨率的图像,动态转换为可变数量的视觉 token
  • 引I入 2D-RoPE 捕获图像的二维位置信息
  • 在推理阶段,通过控制打包长度限制 GPU 内存使用
  • 使用 MLP 层将相邻的 2x2 token 压缩为一个 token,并在开头和结尾添加特殊 token (<|vision_start|><|vision_end|>)

动态顿率训练:

  • 通过动态 FPS 采样,将动态分辨率扩展到时间维度。
  • 更新了时间维度上的 MRoPE,增加 ID 和绝对时间对齐,使模型能够学习时间顺序和速度,精确定位特定时刻

随机采样: 训练过程中,图像根据其原始宽高比随机采样,使模型能够有效泛化到不同分辨率的输入

  • 优势:
    • 提升模型的适应性
    • 确保在不同尺寸视觉数据上的稳定和高效训练。

长文本预训练

Qwen-2.5VL 整体流程包含:视觉预训练、多任务预训练、长文本预训练,比 Qwen-2VL 多了长文本预训练


Qwen 系列
https://guokent.github.io/papernotes/qwen/
作者
Kent
发布于
2024年12月21日
许可协议