HuggingFace镜像/Qwen3.8-27B
模型介绍
文件和版本
分析

Qwen3.8-27B

[!Note]
本仓库包含后训练模型的权重与配置文件,格式为 Hugging Face Transformers 兼容格式。

这些产物兼容 Hugging Face Transformers、vLLM、SGLang、TokenSpeed 等框架。

[!Tip]
对于需要托管式、可弹性扩展推理服务、且无需自行维护基础设施的用户,官方 Qwen API 服务由 Qwen Cloud 提供。 其中,Qwen3.8-27B 将提供托管版本,内置更多生产级功能,例如默认支持 1M 上下文长度、官方内置工具等。更多信息请参阅 Qwen3.8-27B 概览。该服务即将上线,敬请期待。

继 Qwen3.5 和 Qwen3.6 系列获得社区的广泛采用之后,我们欣然推出 Qwen3.8——迄今为止 Qwen 开源模型家族中能力最强的一代。

Qwen3.8 以 Qwen3.5 的架构为基础,在代码编写、专业工作、科研探索以及长时程智能体任务等方面均实现了显著提升。Qwen3.8-27B 将上述进步凝聚于一个紧凑、易于部署的稠密模型之中:它是一款原生视觉语言模型,能够理解图像与视频,支持灵活的思维控制,并专为可靠地完成复杂多步任务而设计。

Qwen3.8 亮点

Qwen3.8-27B 具备以下增强特性:

  • 核心能力:在代码编写、专业工作、科研探索及长时程智能体任务等方面的全面提升。
  • 智能体执行:更强大的自主规划能力与更优的环境反馈处理能力,从而实现更可靠的端到端任务完成。
  • 下游兼容性:更广泛地支持主流评测框架与开发工具,使其更易于集成到您现有的技术栈中。
  • 灵活的思维控制:思维模式默认开启,可按请求单独关闭;推理深度可通过 reasoning_effort 进行调节,历史消息中的推理上下文可通过 preserve_thinking 予以保留。
  • 视觉语言理解:原生支持图像与视频理解,涵盖从 STEM 图表、文档到小时级视频的广泛场景。

模型概述

  • 类型:带视觉编码器的因果语言模型
  • 训练阶段:预训练与后训练
  • 语言模型
    • 参数量: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 词元。

基准测试结果

文本性能

.vl-table th{font-size:15px!important;line-height:1.2} .vl-table td:not(.benchmark-cell):not([colspan]){font-size:15px;line-height:1.2;vertical-align:middle} .vl-table .benchmark-cell{padding:12px 10px 12px 18px!important;vertical-align:middle} .vl-table .benchmark-capability{font-size:15px;font-weight:600;line-height:1.22;color:#171717} .vl-table .benchmark-name{margin-top:4px;font-size:11px;font-weight:400;line-height:1.2;color:#6B6B6B} .vl-table .metric-stack{display:flex;flex-direction:column;gap:7px;padding:3px 0} .vl-table .metric-label{font-size:10px;font-weight:400;line-height:1.1;color:#777} .vl-table .metric-value{margin-top:2px;font-size:15px;line-height:1.15;color:#171717}
Qwen3.8-27BQwen3.6-27BQwen3.7-PlusMuse Glimmer-30BOpus4.6 Max
编程能力
智能体终端编程
Terminal Bench 2.1 (Terminus)
73.063.464.051.778.2
智能体编程
SWE-bench Pro
61.753.557.651.253.4
仓库级代码生成
NL2Repo-Bench
42.336.241.1--47.6
智能体编程
DeepSWE 1.1
42.213.314.2----
软件工程
QwenSWEBench
79.049.359.2--63.8
智能体能力
长周期办公任务
CoWorkBench
70.761.065.1--68.2
专业岗位任务
JobBench
33.421.827.6----
前沿智能体任务
Agents' Last Exam
Pass@1
20.4
得分
42.9
Pass@1
10.6
得分
27.3
Pass@1
13.2
得分
33.6
----
通用能力
指令遵循
IFBench
79.569.179.177.062.5
科学推理
GPQA Diamond
89.287.890.383.591.3
多学科推理
HLE
30.824.034.722.040.0
竞赛级编程
LiveCodeBench v6
90.383.989.6--88.8
  1. SWE-bench Pro:除 Opus4.6 Max 使用官方公布的成绩外,其余模型均使用 Claude Code 评估框架,设置 temp=1.0、top_p=0.95 以及 256K 上下文窗口。已修正有问题的任务,并在完善后的基准上重新评估了所有基线模型。
  2. NL2Repo-Bench:使用 Claude Code 评估框架进行评测。为防止奖励作弊,我们禁用了尝试访问特定仓库的 Bash 命令,如 pip download、pip install 和 git clone。
  3. DeepSWE 1.1:使用 Claude Code 评估框架,设置 temp=1.0、top_p=0.95 以及 256K 上下文窗口。
  4. QwenSWEBench:用于评估模型软件工程能力的内部编程基准。使用 Claude Code 评估框架,报告 avg@3,超时时间为 8 小时,max_tokens=32,768,温度=1.0,上下文窗口为 256K。
  5. CoWorkBench:内部协作基准,用于评估计算机科学、金融、法律、医疗及其他生产力领域的长期任务。
  6. HLE:由 GPT-4o 进行评判。
  7. 每行最佳结果以粗体显示。
  8. 空单元格(--)表示结果尚未公布或暂不适用。

VL 性能表现

Qwen3.8-27BQwen3.6-27BQwen3.7-PlusMuse Glimmer-30BOpus4.6 Max
智能体多模态能力
计算机操作
OSWorld-Verified
84.363.973.365.972.7
浏览器操作
WebArena-Verified
64.848.855.3----
移动设备操作
AndroidWorld
81.970.381.0--62.0
应用还原
RecreationBench
47.129.830.2----
多模态工具调用
ClawEval-MM
Pass@3
57.4
平均
56.9
Pass@3
42.6
平均
50.4
Pass@3
57.4
平均
60.1
--
Pass@3
52.5
平均
54.7
多模态软件工程
SWE-MM
38.625.730.0--27.1
可视化网页开发
Vision2Web
62.945.042.1----
通用多模态能力
视觉数学问题求解
MathVision
无思维链
90.0
有思维链
94.6
无思维链
85.1
无思维链
90.3
--
无思维链
65.5
通用视觉推理
BabyVision
无思维链
65.7
有思维链
85.6
无思维链
28.9
无思维链
64.7
有思维链
70.4
--
无思维链
12.6
科学图表分析
CharXiv (RQ)
无CI
83.7
有CI
90.2
无CI
78.4
无CI
85.8
有CI
85.9
78.8
无CI
66.0
文档智能
OmniDocBench 1.5
91.189.491.475.886.6
真实世界感知
RealWorldQA
85.984.186.9--73.9
具身智能
ERQA
65.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 框架,并由 gpt-5.4-2026-03-05 进行评判。
  7. SWE-MM:分数在 Claude Code 框架上使用 SWE-bench Multimodal 的公开开发集进行评估,并采用了 Claude Opus 4.7 系统卡附录 8.3 中描述的修改。
  8. 空单元格(--)表示结果尚不可用或不适用。

快速开始

为简化集成流程,我们推荐通过API使用Qwen3.8。

部署Qwen3.8

[!重要] 不同推理框架的推理效率和吞吐量差异显著。 建议使用最新版本的框架,以确保最佳性能和兼容性。 对于生产环境负载或高吞吐场景,推荐使用专用推理引擎,如SGLang、vLLM或TokenSpeed。

Qwen3.8可通过主流推理框架进行部署,例如:

  • SGLang:Qwen3.8 Cookbook
  • vLLM:Qwen3.8 Recipe
  • TokenSpeed:Qwen3.8 Recipe

API使用

[!重要] Qwen3.8模型默认以思考模式运行,在生成最终回复之前,会先输出以<think>\n...\n</think>\n\n标记的思考内容。 如需禁用思考内容并直接获取回复,请参阅此处的示例。

[!提示] 我们推荐使用以下采样参数组合进行生成:

  • 思考模式:temperature=1.0,top_p=0.95,top_k=20,min_p=0.0,presence_penalty=0.0,repetition_penalty=1.0
  • 指令(或非思考)模式:temperature=0.7,top_p=0.80,top_k=20,min_p=0.0,presence_penalty=1.5,repetition_penalty=1.0

请注意,不同推理框架对采样参数的支持可能有所差异。

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

  • xhigh(默认):适用于需要深入分析的复杂任务
    • medium:在准确性和速度之间取得平衡
    • low:高效推理,优先考虑速度和成本

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

[!提示] 在多轮智能体任务中,较低的推理强度并不总能减少整体任务完成时间。虽然每轮响应可能更快,但也可能导致分析不充分、失败率上升和重复重试,从而增加总延迟和Token消耗。

聊天补全API

聊天补全API可配合大多数推理框架使用,也可用于Qwen Cloud。 在开始之前,请确保已安装OpenAI Python SDK,并配置好API密钥和API基础URL,例如:

pip install -U openai

# Set the following accordingly
export OPENAI_BASE_URL='your-base-url'
export OPENAI_API_KEY='your-api-key'
纯文本输入
from openai import OpenAI
# Configured by environment variables
client = OpenAI()

messages = [{"role": "user", "content": "Write a Python function to merge two sorted linked lists."}]

completion = client.chat.completions.create(
    model="Qwen/Qwen3.8-27B",
    messages=messages,
    extra_body={
        "chat_template_kwargs": {
            "enable_thinking": True,  # on by default
            "preserve_thinking": True, # on by default
        },
    },
    reasoning_effort="xhigh",  # xhigh by default; supported levels are xhigh, medium, and 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
# Configured by environment variables
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": "The centres of the four illustrated circles are in the corners of the square. The two big circles touch each other and also the two little circles. With which factor do you have to multiply the radii of the little circles to obtain the radius of the big circles?\nChoices:\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",
    messages=messages,
)
print("Chat response:", chat_response)
视频输入
from openai import OpenAI
# Configured by environment variables
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": "How many porcelain jars were discovered in the niches located in the primary chamber of the tomb?"
            }
        ]
    }
]

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

# When vLLM is launched with `--media-io-kwargs '{"video": {"num_frames": -1}}'`,
# video frame sampling can be configured via `extra_body` (e.g., by setting `fps`).
# This feature is currently supported only in vLLM.
#
# By default, `fps=2` and `do_sample_frames=True`.
# With `do_sample_frames=True`, you can customize the `fps` value to set your desired video sampling rate.
# chat_response = client.chat.completions.create(
#     model="Qwen/Qwen3.8-27B",
#     messages=messages,
#     extra_body={
#         "mm_processor_kwargs": {"fps": 2, "do_sample_frames": True},
#     }, 
# )

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

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

from openai import OpenAI
# Configured by environment variables
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": "Where is this?"
            }
        ]
    }
]

chat_response = client.chat.completions.create(
    model="Qwen/Qwen3.8-27B",
    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)

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

禁用保留思考

默认情况下,Qwen3.8 会保留所有历史消息中的思考块,从而在整段对话中维持完整的推理轨迹。这种被称为“保留思考”的行为,确保了上下文的全方位连贯性,尤其对于智能体场景而言至关重要——在这些场景中,决策的一致性和减少冗余推理尤为关键。此外,它还能优化 KV 缓存利用率,在思考模式和非思考模式下均能提升推理效率。

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

from openai import OpenAI

# Configured by environment variables
client = OpenAI()
messages = [...]
chat_response = client.chat.completions.create(
    model="Qwen/Qwen3.8-27B",
    messages=messages,
    extra_body={
        "chat_template_kwargs": {"preserve_thinking": False},
    },
)
print("Chat response:", chat_response)

[!Note]
如果您使用的是来自 Qwen 云的 API,除了更改 model 之外,请直接使用 "preserve_thinking": False,而无需将其包装在 chat_template_kwargs 中。

最佳实践

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

  1. 采样参数:建议使用以下各组采样参数:

    • 思考模式:temperature=1.0,top_p=0.95,top_k=20,min_p=0.0,presence_penalty=0.0,repetition_penalty=1.0
    • 指令(或非思考)模式:temperature=0.7,top_p=0.80,top_k=20,min_p=0.0,presence_penalty=1.5,repetition_penalty=1.0

    对于受支持的框架,您可以将 presence_penalty 参数调整至 0 到 2 之间,以减少无休止的重复。不过,使用较高的数值有时可能会导致语言混杂,并略微降低模型性能。

  2. 充足的输出长度:为在智能体任务上优化性能,建议分配足够的输出长度,使模型能够生成详尽且全面的回答。对于支持分别设置内部推理和最终输出 token 上限的框架,建议在 1M 上下文长度内采用以下配置:

    • 推理内容:将最大输出长度设置为 262,144 个 token。
    • 最终回答:将最大输出长度设置为 131,072 个 token。

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

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

    目前 YaRN 已获得多种推理框架的支持,例如 vLLM、SGLang 和 TokenSpeed。
    通常,为受支持框架启用 YaRN 有以下两种方式:

    • 修改模型配置文件:

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

      {  
          "mrope_interleaved": true,  
          "mrope_section": [  
              11,  
              11,  
              10  
          ],  
          "rope_type": "yarn",  
          "rope_theta": 10000000,  
          "partial_rotary_factor": 0.25,  
          "factor": 4.0,  
          "original_max_position_embeddings": 262144  
      }  
    • 传递命令行参数:

      对于 vLLM,您可以使用

      VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 vllm serve ... --hf-overrides '{"text_config": {"rope_parameters": {"mrope_interleaved": true, "mrope_section": [11, 11, 10], "rope_type": "yarn", "rope_theta": 10000000, "partial_rotary_factor": 0.25, "factor": 4.0, "original_max_position_embeddings": 262144}}}' --max-model-len 1000000  

      对于 SGLang,您可以使用

      SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server ... --json-model-override-args '{"text_config": {"rope_parameters": {"mrope_interleaved": true, "mrope_section": [11, 11, 10], "rope_type": "yarn", "rope_theta": 10000000, "partial_rotary_factor": 0.25, "factor": 4.0, "original_max_position_embeddings": 262144}}}' --context-length 1000000  

      对于 TokenSpeed,您可以使用

      TOKENSPEED_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 tokenspeed serve ... --hf-overrides '{"text_config": {"rope_parameters": {"mrope_interleaved": true, "mrope_section": [11, 11, 10], "rope_type": "yarn", "rope_theta": 10000000, "partial_rotary_factor": 0.25, "factor": 4.0, "original_max_position_embeddings": 262144}}}' --max-model-len 1000000  

    [!NOTE]
    所有知名的开源框架均实现了静态 YaRN,这意味着缩放因子始终保持不变,与输入长度无关,这可能会对较短文本的性能产生影响。
    我们建议仅在需要处理长上下文时修改 rope_parameters 配置。
    同时建议根据实际需求修改 factor。例如,如果您的应用通常处理 524,288 个 token 的上下文长度,最好将 factor 设置为 2.0。

  4. 长视频理解:为优化纯文本和图像的推理效率,发布的 video_preprocessor_config.json 中的 size 参数配置较为保守。建议将 video_preprocessor_config 文件中的 longest_edge 参数设置为 469,762,048(对应 224k 视频 token),以便对小时级视频实现更高帧率的采样,从而获得更优性能。例如:

    {"longest_edge": 469762048, "shortest_edge": 4096}  

    或者,通过引擎启动参数覆盖默认值。有关实现细节,请参阅:vLLM / SGLang。

引用

如果您觉得我们的工作有所帮助,欢迎引用我们。

@misc{qwen38,
    title = {{Qwen3.8-Max}: A New Bar for Coding and Cowork},
    url = {https://qwen.ai/blog?id=qwen3.8},
    author = {{Qwen Team}},
    month = {August},
    year = {2026}
}