ESC
AI 5 分钟阅读

Qwen 3.8 27B

阿里通义千问发布Qwen3.8-27B,这是Qwen开源模型家族迄今最强的一代,基于Qwen3.5架构,在编程、专业工作、研究和长程智能体任务上大幅提升。模型原生支持26万Token上下文,可扩展至100万,具备视觉语言能力,可理解图像和视频,并支持灵活思考控制。提供API和开源权重,默认思考模式,支持推理力度调节。

来源:Hacker News

特别地,Qwen3.8-27B 将作为托管版本提供,并带有更多生产级功能,例如默认100万上下文长度、官方内置工具。更多信息请参阅 Qwen3.8-27B 概述。该服务即将推出,敬请期待。

随着 Qwen3.5 和 Qwen3.6 系列被社区广泛采用,我们很高兴推出 Qwen3.8,这是迄今为止 Qwen 开源模型家族中最强大的一代。

Qwen3.8 基于 Qwen3.5 的架构基础,在编程、专业工作、研究和长程智能体任务方面均带来显著提升。Qwen3.8-27B 将这些进步带到了一个紧凑、易于部署的密集模型中:一个能够理解图像和视频的原生视觉语言模型,具有灵活的思考控制,旨在以更高的可靠性完成复杂多步任务。

Qwen3.8 亮点

Qwen3.8-27B 具有以下增强功能:

模型概述

  • 类型:带视觉编码器的因果语言模型

  • 训练阶段:预训练与后训练

  • 语言模型 参数数量:27B

  • 隐藏维度:5120

  • 词元嵌入:248,320(填充后)

  • 层数:64

  • 隐藏布局:16 × (3 × (门控 DeltaNet → FFN) → 1 × (门控注意力 → FFN))

  • 门控 DeltaNet: 线性注意力头数:V 为 48,QK 为 16

  • 头维度:128

  • 门控注意力: 注意力头数:Q 为 24,KV 为 4

  • 头维度:256

  • 旋转位置编码维度:64

  • 前馈网络: 中间维度:17,408

  • LM 输出:248,320(填充后)

  • MTP(多词元预测):经过多步训练

  • 上下文长度:原生 262,144,可扩展至 1,000,000 词元。

基准测试结果

文本性能

Qwen3.8-27BQwen3.6-27BQwen3.7-PlusMuse Glimmer-30BOpus4.6 Max
编程
智能体终端编程
Terminal Bench 2.1 (Terminus)73.063.464.051.778.2
智能体编程
SWE-bench Pro61.753.557.651.253.4
仓库级代码生成
NL2Repo-Bench42.336.241.1–47.6
智能体编程
DeepSWE 1.142.213.314.2––
软件工程
QwenSWEBench79.049.359.2–63.8
智能体
长程办公室工作
CoWorkBench70.761.065.1–68.2
专业工作任务
JobBench33.421.827.6––
前沿智能体任务
Agents’ Last ExamPass@1 20.4 Score 42.9Pass@1 10.6 Score 27.3Pass@1 13.2 Score 33.6––
通用
指令遵循
IFBench79.569.179.177.062.5
科学推理
GPQA Diamond89.287.890.383.591.3
多学科推理
HLE30.824.034.722.040.0
竞赛编程
LiveCodeBench v690.383.989.6–88.8
  1. SWE-bench Pro:除 Opus4.6 Max 使用官方报告分数外,所有模型均使用 Claude Code harness 在 temp=1.0、top_p=0.95 和 256K 上下文窗口下评估。有问题的任务已修正,所有基线模型均在精炼后的基准上重新评估。
  2. NL2Repo-Bench:使用 Claude Code harness 评估。为防止奖励黑客,我们禁用了尝试访问特定仓库的 Bash 命令,例如 pip download、pip install 和 git clone。
  3. DeepSWE 1.1:使用 Claude Code harness 在 temp=1.0、top_p=0.95 和 256K 上下文窗口下评估。
  4. QwenSWEBench:用于评估模型软件工程能力的内部编程基准。使用 Claude Code harness 评估。报告 avg@3,超时时间 8 小时,max_tokens=32,768,temperature=1.0,256K 上下文窗口。
  5. CoWorkBench:内部协作基准,用于评估计算机科学、金融、法律、医疗及其他生产力领域的长期任务。
  6. HLE:由 GPT-4o 评判。
  7. 每行最佳结果以粗体显示。
  8. 空单元格(–)表示结果尚不可用或不适用。

视觉语言性能

Qwen3.8-27BQwen3.6-27BQwen3.7-PlusMuse Glimmer-30BOpus4.6 Max
智能体多模态智能
计算机使用
OSWorld-Verified84.363.973.365.972.7
浏览器使用
WebArena-Verified64.848.855.3––
移动设备使用
AndroidWorld81.970.381.0–62.0
应用复刻
RecreationBench47.129.830.2––
多模态工具使用
ClawEval-MMPass@3 57.4 Average 56.9Pass@3 42.6 Average 50.4Pass@3 57.4 Average 60.1–Pass@3 52.5 Average 54.7
多模态软件工程
SWE-MM38.625.730.0–27.1
可视化网页开发
Vision2Web62.945.042.1––
通用多模态智能
视觉数学问题求解
MathVision无 CI 90.0 有 CI 94.6无 CI 85.1无 CI 90.3–无 CI 65.5
通用视觉推理
BabyVision无 CI 65.7 有 CI 85.6无 CI 28.9无 CI 64.7 有 CI 70.4–无 CI 12.6
科学图表分析
CharXiv (RQ)无 CI 83.7 有 CI 90.2无 CI 78.4无 CI 85.8 有 CI 85.978.8无 CI 66.0
文档智能
OmniDocBench 1.591.189.491.475.886.6
真实世界感知
RealWorldQA85.984.186.9–73.9
具身智能
ERQA65.562.569.8–40.8
  1. MathVision、BabyVision 和 CharXiv (RQ):在两种设置均可用的情况下,单元格分别报告“无 CI”和“有 CI”;否则仅显示可用设置。手动验证后,MathVision 和 CharXiv (RQ) 中少量错误的地面真值注释已修正,所有报告的基准分数均使用修正后的注释计算。
  2. MathVision:Qwen3.8-27B 使用固定提示评估:“请逐步推理,并将最终答案放在 \boxed{} 中。”对于其余模型,我们报告两种提示变体中较高的分数——一种带 \boxed{} 格式要求,一种不带。
  3. WebArena-Verified:分数使用官方 WebArena-Verified 评分器在 OSWorld 脚手架下计算。
  4. RecreationBench:一个内部长程应用复刻基准,旨在评估跨五个平台的混合智能体能力:桌面(Ubuntu、macOS 和 Windows)、移动(Android)和 Web。
  5. ClawEval-MM:分数报告为“Pass@3 / 平均分”。Pass@3 是任务在三次尝试中至少通过一次的百分比;平均分是三次尝试的平均基准分数。
  6. Vision2Web:分数在前端、网页和网站类别中取平均。评估使用 Claude Code harness,并由 gpt-5.4-2026-03-05 评判。
  7. SWE-MM:分数使用 SWE-bench Multimodal 的公开开发集在 Claude Code harness 上评估,并应用了 Claude Opus 4.7 系统卡附录 8.3 中描述的修改。
  8. 空单元格(–)表示结果尚不可用或不适用。

快速开始

为简化集成,我们建议通过 API 使用 Qwen3.8。

服务 Qwen3.8

推理效率和吞吐量在不同框架间差异显著。 我们建议使用最新框架版本以确保最佳性能和兼容性。 对于生产工作负载或高吞吐场景,建议使用专用推理引擎,如 SGLang、vLLM 或 TokenSpeed。

Qwen3.8 可以使用流行的推理框架部署,例如:

API 使用

Qwen3.8 模型默认以思考模式运行,在生成最终响应前会生成以 <think>\n...</think>\n\n 表示的思考内容。 要禁用思考内容并获取直接响应,请参阅 此处 的示例。

我们建议使用以下采样参数集进行生成:

请注意,采样参数的支持因推理框架而异。

Qwen3.8 官方支持 reasoning_effort,可用于调整推理深度并控制成本:

此外,preserve_thinking 默认对所有工作负载启用,以提供最佳的开箱即用体验。要禁用保留思考,请参阅 此处 的示例。

在多轮智能体任务中,较低的推理努力并不总是会减少整体任务完成时间。尽管它可能产生更快的每轮响应,但也可能导致分析不足、更多失败和重复重试,这可能会增加总延迟和词元消耗。

Chat Completions API

Chat Completions API 可与大多数推理框架以及 Qwen Cloud 一起使用。 开始前,请确保已安装 OpenAI Python SDK,并配置好 API 密钥和 API 基础 URL,例如:

`pip install -U openai

按需设置以下环境变量

export OPENAI_BASE_URL=‘your-base-url’ export OPENAI_API_KEY=‘your-api-key’ `

纯文本输入
from openai import OpenAI
# 通过环境变量配置
client = OpenAI()

messages = [{"role": "user", "content": "写一个 Python 函数来合并两个有序链表。"}]

completion = client.chat.completions.create(
 model="Qwen/Qwen3.8-27B-FP8",
 messages=messages,
 extra_body={
 "chat_template_kwargs": {
 "enable_thinking": True, # 默认开启
 "preserve_thinking": True, # 默认开启
 },
 },
 reasoning_effort="xhigh", # 默认为 xhigh;支持级别为 xhigh、medium 和 low
 stream=True,
 stream_options={"include_usage": True},
)

reasoning_content = ""
answer_content = ""
is_answering = False
print("\n" + "=" * 20 + "Reasoning" + "=" * 20 + "\n")

for chunk in completion:
 if not chunk.choices:
 print("\nUsage:")
 print(chunk.usage)
 continue

 delta = chunk.choices[0].delta

 if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
 if not is_answering:
 print(delta.reasoning_content, end="", flush=True)
 reasoning_content += delta.reasoning_content
 elif hasattr(delta, "reasoning") and delta.reasoning is not None:
 if not is_answering:
 print(delta.reasoning, end="", flush=True)
 reasoning_content += delta.reasoning

 if hasattr(delta, "content") and delta.content:
 if not is_answering:
 print("\n" + "=" * 20 + "Answer" + "=" * 20 + "\n")
 is_answering = True
 print(delta.content, end="", flush=True)
 answer_content += delta.content

messages.append({
 "role": "assistant",
 "content": answer_content,
 "reasoning_content": reasoning_content,
 "reasoning": reasoning_content,
})
图像输入
from openai import OpenAI
# 通过环境变量配置
client = OpenAI()

messages = [
 {
 "role": "user",
 "content": [
 {
 "type": "image_url",
 "image_url": {
 "url": "https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3.5/demo/CI_Demo/mathv-1327.jpg"
 }
 },
 {
 "type": "text",
 "text": "图中四个圆的圆心位于正方形的四个角。两个大圆彼此相切,也与两个小圆相切。需要将小圆的半径乘以哪个因子才能得到大圆的半径?\n选项:\n(A) $\\frac{2}{9}$\n(B) $\\sqrt{5}$\n(C) $0.8 \\cdot \\pi$\n(D) 2.5\n(E) $1+\\sqrt{2}$"
 }
 ]
 }
]

chat_response = client.chat.completions.create(
 model="Qwen/Qwen3.8-27B-FP8",
 messages=messages,
)
print("Chat response:", chat_response)
视频输入
from openai import OpenAI
# 通过环境变量配置
client = OpenAI()

messages = [
 {
 "role": "user",
 "content": [
 {
 "type": "video_url",
 "video_url": {
 "url": "https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3.5/demo/video/N1cdUjctpG8.mp4"
 }
 },
 {
 "type": "text",
 "text": "墓葬主室壁龛中发现了多少件瓷罐?"
 }
 ]
 }
]

chat_response = client.chat.completions.create(
 model="Qwen/Qwen3.8-27B",
 messages=messages,
)

# 当 vLLM 使用 `--media-io-kwargs '{"video": {"num_frames": -1}}'` 启动时,
# 可以通过 `extra_body` 配置视频帧采样(例如,设置 `fps`)。
# 此功能目前仅在 vLLM 中支持。
#
# 默认情况下,`fps=2` 且 `do_sample_frames=True`。
# 使用 `do_sample_frames=True` 时,您可以自定义 `fps` 值来设置所需的视频采样率。
# chat_response = client.chat.completions.create(
# model="Qwen/Qwen3.8-27B-FP8",
# messages=messages,
# extra_body={
# "mm_processor_kwargs": {"fps": 2, "do_sample_frames": True},
# }, 
# )

print("Chat response:", chat_response)
Instruct(或非思考)模式

Qwen3.8-27B 默认会在响应前进行思考。 您可以通过配置 API 参数来获取模型直接响应而不进行思考。 例如,

`from openai import OpenAI

通过环境变量配置

client = OpenAI()

messages = [ { “role”: “user”, “content”: [ { “type”: “image_url”, “image_url”: { “url”: “https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3.5/demo/RealWorld/RealWorld-04.png” } }, { “type”: “text”, “text”: “这是哪里?” } ] } ]

chat_response = client.chat.completions.create( model=“Qwen/Qwen3.8-27B-FP8”, messages=messages, temperature=0.7, top_p=0.8, presence_penalty=1.5, extra_body={ “top_k”: 20, “chat_template_kwargs”: {“enable_thinking”: False}, }, ) print(“Chat response:”, chat_response) `

如果您使用 Qwen Cloud 的 API,除了更改 model 外,请使用 "enable_thinking": False 而不是 "chat_template_kwargs": {"enable_thinking": False}。

禁用保留思考

默认情况下,Qwen3.8 会保留所有历史消息中的思考块,维持跨对话的完整推理轨迹。这种行为称为保留思考(preserved thinking),可确保完整的上下文连续性,对于决策一致性以及减少冗余推理至关重要的智能体场景尤其有益。它还可以提高 KV 缓存利用率,在思考和非思考模式下均优化推理效率。

如果您希望仅保留最新用户消息中的思考块,可以通过将 preserve_thinking 设置为 False 来禁用此行为:

`from openai import OpenAI

通过环境变量配置

client = OpenAI() messages = […] chat_response = client.chat.completions.create( model=“Qwen/Qwen3.8-27B-FP8”, messages=messages, extra_body={ “chat_template_kwargs”: {“preserve_thinking”: False}, }, ) print(“Chat response:”, chat_response) `

如果您使用 Qwen Cloud 的 API,除了更改 model 外,请直接使用 "preserve_thinking": False,而不是将其包装在 chat_template_kwargs 中。

最佳实践

为获得最佳性能,我们建议以下设置:

采样参数:我们建议使用以下采样参数集:

对于受支持的框架,您可以将 presence_penalty 参数调整到 0 到 2 之间,以减少无休止的重复。但是,使用较高的值有时可能导致语言混合和模型性能轻微下降。

足够的输出长度:为优化智能体任务的性能,我们建议分配足够的输出长度,让模型生成详细且全面的响应。对于支持内部推理和最终输出分开设置词元限制的框架,我们建议在 100 万上下文长度内进行以下配置:

这些设置为复杂推理提供了必要的能力,同时为高质量最终交付物留出充足空间。

处理超长文本:Qwen3.8-27B 原生支持最长 262,144 词元的上下文长度。对于总长度(包括输入和输出)超过此限制的长程任务,我们建议使用 RoPE 缩放技术来有效处理长文本,例如 YaRN。

YaRN 目前受多种推理框架支持,例如 vLLM、SGLang 和 TokenSpeed。 通常,在受支持的框架中启用 YaRN 有两种方法:

在 config.json 文件中,将 text_config 中的 rope_parameters 字段更改为: