Qwen3: 阿里通义千问最新发布模型的介绍与测试

TL;DR

  • 2025 年阿里通义发布的最新版本模型 Qwen3,代码数学等榜单的精度很高,模型系列很全,包含 MoE 与 Dense 模型,同时支持推理和非推理模式。

Paper name
Qwen3: Think Deeper, Act Faster

Paper Reading Note

Paper URL:

  • https://qwenlm.github.io/blog/qwen3/

Code URL:

  • https://github.com/QwenLM/Qwen3

Introduction

最新版本Qwen3有以下特点:

  • 全尺寸稠密与混合专家模型:0.6B, 1.7B, 4B, 8B, 14B, 32B and 30B-A3B, 235B-A22B
  • 支持在思考模式(用于复杂逻辑推理、数学和编码)和 非思考模式 (用于高效通用对话)之间无缝切换,确保在各种场景下的最佳性能。
  • 显著增强的推理能力,在数学、代码生成和常识逻辑推理方面超越了之前的 QwQ(在思考模式下)和 Qwen2.5 指令模型(在非思考模式下)。
  • 卓越的人类偏好对齐,在创意写作、角色扮演、多轮对话和指令跟随方面表现出色,提供更自然、更吸引人和更具沉浸感的对话体验。
  • 擅长智能体能力,可以在思考和非思考模式下精确集成外部工具,在复杂的基于代理的任务中在开源模型中表现领先。
  • 支持 100 多种语言和方言,具有强大的多语言理解、推理、指令跟随和生成能力。

Methods

预训练

模型结构

模型架构看起来改动不大,还是 GQA 模型

  • dense 模型
    在这里插入图片描述
  • moe 模型
    在这里插入图片描述
数据
  • 36 万亿个 token,相比于之前 Qwen2.5 是使用 18 万亿 token
  • 数据方面下了功夫:
    • 不仅从网络上收集数据,还从 PDF 文档中提取信息。我们使用 Qwen2.5-VL 从这些文档中提取文本,并用 Qwen2.5 改进提取内容的质量
    • 利用 Qwen2.5-Math 和 Qwen2.5-Coder 这两个数学和代码领域的专家模型合成数据,合成了包括教科书、问答对以及代码片段等多种形式的数据
训练
  • 预训练过程分为三个阶段

    • 第一阶段(S1),模型在超过 30 万亿个 token 上进行了预训练,上下文长度为 4K token。
    • 第二阶段(S2),我们通过增加知识密集型数据(如 STEM、编程和推理任务)的比例来改进数据集,随后模型又在额外的 5 万亿个 token 上进行了预训练
    • 最后阶段,我们使用高质量的长上下文数据将上下文长度扩展到 32K token
  • 榜单能力很强,对于 Qwen3 MoE 基础模型,它们在仅使用 10% 激活参数的情况下达到了与 Qwen2.5 Dense 基础模型相似的性能
    在这里插入图片描述

后训练

  • 实施了一个四阶段的训练流程。该流程包括:(1)长思维链冷启动,(2)长思维链强化学习,(3)思维模式融合,以及(4)通用强化学习。
    在这里插入图片描述

  • 推理灵活性,Qwen3 模型支持两种思考模式:

    • 思考模式:在这种模式下,模型会逐步推理,经过深思熟虑后给出最终答案。这种方法非常适合需要深入思考的复杂问题。
    • 非思考模式:在此模式中,模型提供快速、近乎即时的响应,适用于那些对速度要求高于深度的简单问题
      在这里插入图片描述

测试

网页端测试 https://chat.qwen.ai/

  • 测试一些基础的问答
    在这里插入图片描述

  • 出一个代码题,感觉回复格式和 ChatGPT 还挺接近
    在这里插入图片描述

  • 基本的古文背诵能力不太行,有错误
    在这里插入图片描述

本地测试

测试代码
from modelscope import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen3-30B-A3B"
# model_name = "Qwen/Qwen3-0.6B"
# model_name = "Qwen/Qwen3-0.6B-FP8"

# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)

# prepare the model input
# prompt = "Give me a short introduction to large language model."
prompt = "原文背诵滕王阁序"
messages = [
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=True # Switch between thinking and non-thinking modes. Default is True.
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

# conduct text completion
generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() 

# parsing thinking content
try:
    # rindex finding 151668 (</think>)
    index = len(output_ids) - output_ids[::-1].index(151668)
except ValueError:
    index = 0

thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")

print("thinking content:", thinking_content)
print("content:", content)
Qwen/Qwen3-30B-A3B 模型
  • prompt:原文背诵滕王阁序
    在这里插入图片描述
    在这里插入图片描述
    不太对,没有背诵完
Qwen/Qwen3-0.6B 模型
  • prompt:原文背诵滕王阁序
    在这里插入图片描述
    小模型的背诵能力明显还要更差

  • prompt: 介绍 transformer 架构中 attention 的公式和代码
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    代码等 STEM 能力整体感觉还不错,不过不管是代码还是中文介绍还是有些小问题(比如 self.W 定义了没有用上,维度对齐部分介绍也不够严谨),可能是模型参数量太少的原因

Qwen/Qwen3-0.6B-FP8
  • prompt: 介绍 transformer 架构中 attention 的公式和代码
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Conclusion

  • 代码数学相关的榜单刷得很高,参数量更小的情况下比 DeepSeek R1 等模型的精度都高,应该是花了很多训练 token 在代码和数学方面的
  • 通用能力,比如对话、背诵等感觉还有一定优化空间
  • 未来展望
    • 扩展数据规模、增加模型大小、延长上下文长度、拓宽模态范围
    • 利用环境反馈推进强化学习以进行长周期推理
    • 从专注于训练模型的时代过渡到以训练 Agent 为中心的时代
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值