一、模型亮点一览
特性 | 说明 |
---|---|
双模式框架 | enable_thinking=True/False 硬开关 + /think / /no_think 软开关,满足高效对话 & 深度推理双需求 |
推理能力跃升 | 数学、编码与常识推理显著优于 QwQ(思考模式)和 Qwen2.5‑Instruct(非思考模式) |
人类偏好对齐 | 创意写作、角色扮演与复杂指令遵从表现更自然、连贯 |
Agent 工具调用 | 内置工具接口及 Qwen‑Agent 支持,复杂任务表现领先开源同行 |
100+ 语言支持 | 多语言指令遵从与翻译表现卓越 |
二、核心架构与规格
参数 | 数值 |
---|---|
总参数量 | 235B(激活 22B) |
非 Embedding 参数量 | 234B |
层数 | 94 |
注意力头 (GQA) | 64(Q) / 4(KV) |
专家总数 / 激活数 | 128 / 8 |
原生上下文长度 | 32 768 |
YaRN 扩展上限 | 131 072 |
硬件提示: GPU 推理建议 8×80GB A100 或等效算力;vLLM / SGLang 建议采用 Tensor Parallel (TP) = 8。
三、快速上手:本地推理
以下示例基于 transformers >= 4.51.0
与 PyTorch。
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "Qwen/Qwen3-235B-A22B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto" # 自动分配到多张 GPU
)
messages = [
{"role": "user", "content": "给我一句话介绍大型语言模型"}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True # 默认开启思考模式
)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0][inputs.input_ids.size(1):], skip_special_tokens=True))
3.1.解析 <think>
内容
思考模式下,模型会输出类似:
<think>……推理内容……</think>最终回答
开发者可按需截取 <think>
块,用于 Chain‑of‑Thought 可解释性分析。
四、部署策略:SGLang、vLLM 与本地框架
4.1.SGLang
python -m sglang.launch_server \
--model-path Qwen/Qwen3-235B-A22B \
--reasoning-parser qwen3 \
--tp 8
4.2.vLLM
vllm serve Qwen/Qwen3-235B-A22B \
--enable-reasoning \
--reasoning-parser deepseek_r1
4.3.本地应用支持
Ollama / LMStudio / MLX‑LM / llama.cpp / KTransformers 已原生适配 Qwen3。
提示:通过 GGUF 格式转导到 llama.cpp 时,如需 YaRN,请先修改
config.json
再重新导出 GGUF。
五、思考/非思考模式切换与采样参数
模式 | 开关 | Temperature | Top‑P | Top‑K |
---|---|---|---|---|
思考模式 | enable_thinking=True (默认) | 0.6 | 0.95 | 20 |
非思考模式 | enable_thinking=False | 0.7 | 0.8 | 20 |
5.1.软开关示例
用户:How many r's in strawberries?
用户:Then, how many r's in blueberries? /no_think
用户:Really? /think
5.2.避坑指南
- 避免贪婪解码 (
greedy
),容易引发无限重复。 - 视任务复杂度将
max_new_tokens
设为 4‑8k;复杂竞赛题可增至 ~39k。
六、Agent 能力演示:Qwen‑Agent 集成
from qwen_agent.agents import Assistant
llm_cfg = {
'model': 'Qwen3-235B-A22B',
'model_server': 'http://localhost:8000/v1',
'api_key': 'EMPTY',
}
tools = [
{'mcpServers': {
'time': {'command': 'uvx', 'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai']},
'fetch': {'command': 'uvx', 'args': ['mcp-server-fetch']}
}},
'code_interpreter',
]
bot = Assistant(llm=llm_cfg, function_list=tools)
msgs = [{'role': 'user', 'content': 'https://qwenlm.github.io/blog/ 介绍 Qwen 的最新进展'}]
for resp in bot.run(messages=msgs):
pass
print(resp)
七、长文本处理:YaRN RoPE Scaling
场景判定:只有当上下文总长度 持续 超过 32 768 tokens 时才启用 YaRN。
7.1.修改 config.json
"rope_scaling": {
"rope_type": "yarn",
"factor": 4.0,
"original_max_position_embeddings": 32768
}
7.2.vLLM 启动示例
vllm serve Qwen/Qwen3-235B-A22B \
--rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}' \
--max-model-len 131072
静态 YaRN 会在短上下文上轻微降速;若常用长度≈65k,可改
factor=2.0
。
八、性能优化与最佳实践
-
覆盖响应:思考模式下
<think>
内容仅供解析,不必写入聊天历史。 -
标准化输出:
- 数学题:在提示中加入“请逐步推理,并将最终答案置于 \boxed{} 中”。
- 选择题:统一 JSON 格式:
{"answer": "C"}
。
-
presence_penalty:在 SGLang/vLLM 中可设 0‑2 之间,抑制重复;过高可能导致语言混合。
-
推理显存优化:
- Flash‑Attention v2 + Paged KV Cache。
- 适当降低
dtype
至bfloat16
/fp16
。
-
监控:结合 Prometheus + Grafana 撑起 GPU/延迟指标,防止 OOM 与重复请求。
九、总结
Qwen3‑235B‑A22B 通过创新的思考/非思考双模式与 MoE 架构,实现了高推理强度与资源效率的平衡。配合 YaRN 扩展、丰富的 Agent 工具体系与完善的部署生态,它为企业级与科研级应用提供了灵活且高性能的 LLM 解决方案。未来,随着动态 MoE 路由与增量训练技术的迭代,Qwen3 有望在多任务推理与通用 AI 助手领域持续突破。
十、参考链接
声明:本文示例代码与配置仅作学习参考,生产环境请根据实际负载进行适配与测试。