Qwen · HF · 通义

呵

Qwen3.8-Flash-Next

Qwen3.8-Flash-Next

二〇二六年九月八日 · 英文原文

Qwen团队发布Qwen3.8-Flash-Next,为Qwen4架构的实验性预览,以Hugging Face Transformers格式开源后训练权重。该模型为125B参数(激活6B)的因果语言模型,引入基于QSA的混合注意力、Gated Residual、N-gram Embedding(51B参数)及定制化训练方案,原生支持262,144 token上下文,可扩展至1M。在DeepSWE 1.1(58.7)、SWE-bench Pro(62.5)、GPQA Diamond(91.7)等benchmark上取得领先成绩,兼容vLLM、SGLang、TokenSpeed等框架。

Qwen3.8-Flash-Next

[!Note] 本仓库包含以 Hugging Face Transformers 格式存储的后训练模型权重和配置文件。

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

[!Tip] 对于需要托管式、可扩展推理且无需维护基础设施的用户,官方 Qwen API 服务由 Qwen Cloud 提供。

特别是,Qwen3.8-Flash 是基于 Qwen3.8-Flash-Next 的官方版本,具备更多生产级特性,例如默认 1M 上下文长度、官方内置工具。更多信息请参阅 Qwen3.8-Flash 概览。

随着基础模型的边界不断向更大参数规模和更长上下文窗口推进,问题已不再仅仅是我们能扩展多少,而是我们能以多高的效率进行扩展。朝着惠及所有人的通用人工智能(AGI)的可持续进展需要架构创新。今天,我们分享朝着这一方向迈出的具体一步:Qwen3.8-Flash-Next。

Qwen3.8-Flash-Next 架构

这一将支撑 Qwen4 的架构实验性预览,建立在对现代大语言模型(LLM)核心组件在大规模下如何交互的根本性重新思考之上。

亮点

该架构下的首个开源权重版本是 Qwen3.8-Flash-Next,它引入了:

更多细节请参阅我们的博客文章 Qwen3.8-Flash-Next 和 技术报告。

我们很高兴与您一起开启这一新篇章,并欢迎您在构建未来的过程中提供反馈。

模型概览

Benchmark 结果

语言

视觉语言

快速开始

为简化集成,我们推荐通过 API 使用 Qwen3.8-Flash-Next。

部署 Qwen3.8-Flash-Next

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

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

API 使用

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

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

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

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

[!Tip] 在多轮 agentic 任务中,较低的推理强度并不总能减少整体任务完成时间。虽然它可能产生更快的单轮响应,但也可能导致分析不足、更多失败和重复重试,从而可能增加总延迟和 token 消耗。

Qwen3.8-Flash-Next 支持通过 enable_thinking、preserve_thinking 和 reasoning_effort 控制思考行为。

Chat Completions API

Chat Completions API 可用于大多数推理框架,以及 Qwen Cloud。 开始之前,请确保已安装并配置 API key 和 API base URL,例如:

pip install -U openai

# 根据实际情况设置以下内容
export OPENAI_BASE_URL="http://localhost:8000/v1"
export OPENAI_API_KEY="EMPTY"
纯文本输入
from openai import OpenAI
# 通过环境变量配置
client = OpenAI()

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

completion = client.chat.completions.create(
    model="Qwen/Qwen3.8-Flash-Next",
    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 + "推理过程" + "=" * 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 + "回答" + "=" * 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-Flash-Next",
    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-Flash-Next",
    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-Flash-Next",
#     messages=messages,
#     extra_body={
#         "mm_processor_kwargs": {"fps": 2, "do_sample_frames": True},
#     }, 
# )

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

Qwen3.8-Flash-Next 默认在响应前进行思考。 您可以通过配置 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-Flash-Next",
    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 Cloud 的 API,除了更改 model 外,请直接使用 "enable_thinking": False,而不是 "chat_template_kwargs": {"enable_thinking": False}。

禁用保留思考

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

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

from openai import OpenAI

# 通过环境变量配置
client = OpenAI()
messages = [...]
chat_response = client.chat.completions.create(
    model="Qwen/Qwen3.8-Flash-Next",
    messages=messages,
    extra_body={
        "chat_template_kwargs": {"preserve_thinking": False},
    },
)
print("Chat response:", chat_response)

[!Note] 如果您使用 Qwen Cloud 的 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
    • Instruct(或非思考)模式: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. 充足的输出长度:为优化 agentic 任务的性能,我们建议分配足够的输出长度,使模型能够生成详细且全面的响应。对于支持内部推理和最终输出分别设置 token 限制的框架,我们建议在 1M 上下文长度内进行以下配置:

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

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

  3. 处理超长文本:Qwen3.8-Flash-Next 原生支持最长 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。

引用

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

@techreport{qwen2026design,
    title       = {On the Design of {Qwen3.8-Next} Architecture: Evaluation, Efficiency, and Training Stability},
    author      = {{Qwen Team}},
    institution = {Alibaba Group},
    month       = {August},
    year        = {2026}
}

@misc{qwen3.8flashnext,
    title  = {{Qwen3.8-Flash-Next}: A New Architecture, Towards Ultimate Cost-Efficiency},
    author = {{Qwen Team}},
    month  = {August},
    year   = {2026},
    url    = {https://qwen.ai/blog?id=qwen3.8-flash-next}
}
译自 Qwen · HF · 通义 · 录于 二〇二六年九月八日