Репозиторий содержит квантованные в FP8 веса модели и файлы конфигурации для модели после дообучения в формате Hugging Face Transformers.

Эти артефакты совместимы с Hugging Face Transformers, vLLM, SGLang, TokenSpeed и другими фреймворками.

Метод квантования — точная поблочная FP8-квантизация с размером блока 128, метрики производительности практически идентичны оригинальной модели.

Пользователям, которым нужен управляемый масштабируемый инференс без обслуживания инфраструктуры, доступен официальный API-сервис Qwen Cloud.

Qwen3.8-27B станет доступна в виде хостируемой версии с дополнительными production-функциями, например, контекстным окном 1M токенов по умолчанию и встроенными инструментами. Подробности — на странице Qwen3.8-27B Overview. Сервис запустится в ближайшее время.

После широкого принятия серий Qwen3.5 и Qwen3.6 сообществом команда Qwen представила Qwen3.8 — самое возможностное поколение открытых моделей Qwen на сегодняшний день.

Построенная на архитектурной базе Qwen3.5, Qwen3.8 демонстрирует существенный прогресс в кодинге, профессиональных задачах, исследованиях и долгих агентных сценариях. Qwen3.8-27B переносит эти улучшения в компактную, удобную для деплоя плотную модель: нативную vision-language модель, понимающую изображения и видео, с гибким управлением "размышлениями" и способностью доводить сложные многошаговые задачи до конца с большей надёжностью.

Основные особенности Qwen3.8

Qwen3.8-27B получила следующие улучшения:

  • Основные возможности: комплексный рост показателей в кодинге, профессиональных задачах, исследованиях и долгих агентных сценариях.
  • Выполнение агентных задач: усиленное автономное планирование и лучшая обработка обратной связи от среды, что приводит к более надёжному завершению задач end-to-end.
  • Совместимость с downstream-инструментами: расширенная поддержка популярных harness'ов и инструментов разработки, что упрощает интеграцию в существующий стек.
  • Гибкое управление "размышлениями": режим размышлений включён по умолчанию и может быть отключён для конкретного запроса; глубина рассуждений настраивается через reasoning_effort, а контекст размышлений из истории сообщений сохраняется через preserve_thinking.
  • Понимание изображений и видео: нативная поддержка понимания изображений и видео — от STEM-диаграмм и документов до часовых видеозаписей.

Обзор модели

  • Тип: каузальная языковая модель с визуальным энкодером
  • Стадия обучения: пре-тренинг и пост-тренинг
  • Языковая модель
    • Число параметров: 27B
    • Скрытая размерность: 5120
    • Токен-эмбеддинг: 248 320 (с паддингом)
    • Число слоёв: 64
    • Расположение слоёв: 16 × (3 × (Gated DeltaNet → FFN) → 1 × (Gated Attention → FFN))
    • Gated DeltaNet:
      • Число голов линейного внимания: 48 для V и 16 для QK
      • Размерность головы: 128
    • Gated Attention:
      • Число голов внимания: 24 для Q и 4 для KV
      • Размерность головы: 256
      • Размерность Rotary Position Embedding: 64
    • Feed Forward Network:
      • Промежуточная размерность: 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 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
Score
42.9
Pass@1
10.6
Score
27.3
Pass@1
13.2
Score
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, для которой используется официально опубликованный результат, все модели оценены с помощью harness'а Claude Code при temp=1.0, top_p=0.95 и контекстном окне 256K. Проблемные задачи были исправлены, все базовые модели переоценены на уточнённом бенчмарке.
  2. NL2Repo-Bench: оценка проведена с помощью harness'а Claude Code. Для предотвращения "обмана" бенчмарка отключены Bash-команды, обращающиеся к конкретному репозиторию, такие как pip download, pip install и git clone.
  3. DeepSWE 1.1: оценка проведена с помощью harness'а Claude Code при temp=1.0, top_p=0.95 и контекстном окне 256K.
  4. QwenSWEBench: внутренний бенчмарк для оценки навыков разработки ПО. Оценка проведена с помощью harness'а Claude Code. Указано avg@3 с таймаутом 8 часов, max_tokens=32 768, temperature=1.0 и контекстным окном 256K.
  5. CoWorkBench: внутренний бенчмарк для оценки долгосрочных задач в компьютерных науках, финансах, юриспруденции, медицине и других продуктивных областях.
  6. HLE: оценка выполнена GPT-4o.
  7. Лучший результат в каждой строке выделен жирным.
  8. Пустые ячейки (--) означают, что результаты пока недоступны или неприменимы.

Производительность VL (vision-language)

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
Average
56.9
Pass@3
42.6
Average
50.4
Pass@3
57.4
Average
60.1
--
Pass@3
52.5
Average
54.7
Мультимодальная разработка ПО
SWE-MM
38.625.730.0--27.1
Визуальная веб-разработка
Vision2Web
62.945.042.1----
Общий мультимодальный интеллект
Решение визуальных математических задач
MathVision
Without CI
90.0
With CI
94.6
Without CI
85.1
Without CI
90.3
--
Without CI
65.5
Общие визуальные рассуждения
BabyVision
Without CI
65.7
With CI
85.6
Without CI
28.9
Without CI
64.7
With CI
70.4
--
Without CI
12.6
Анализ научных графиков
CharXiv (RQ)
Without CI
83.7
With CI
90.2
Without CI
78.4
Without CI
85.8
With CI
85.9
78.8
Without 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): там, где доступны оба варианта, в ячейках указаны отдельно результаты "Without CI" и "With CI"; иначе показан только доступный вариант. Небольшое число неверных эталонных аннотаций в MathVision и CharXiv (RQ) были исправлены после ручной проверки, все указанные результаты на этих бенчмарках рассчитаны с учётом исправленных аннотаций.
  2. MathVision: Qwen3.8-27B оценивается с фиксированным промптом: "Please reason step by step, and put your final answer within \boxed{}." Для остальных моделей указан более высокий результат из двух вариантов промпта — с требованием формата \boxed{} и без него.
  3. WebArena-Verified: результаты рассчитаны с помощью официального грейдера WebArena-Verified в рамках scaffold'а OSWorld.
  4. RecreationBench: внутренний долгосрочный бенчмарк воссоздания приложений, разработанный для оценки гибридных агентных возможностей на пяти платформах: десктоп (Ubuntu, macOS и Windows), мобильные устройства (Android) и веб.
  5. ClawEval-MM: результаты указаны как "Pass@3 / средний балл". Pass@3 — процент задач, пройденных хотя бы в одной из трёх попыток; средний балл — усреднённый результат по трём попыткам.
  6. Vision2Web: результаты усреднены по категориям фронтенда, веб-страниц и сайтов. Оценка проведена с помощью harness'а Claude Code, судья — gpt-5.4-2026-03-05.
  7. SWE-MM: результаты оценены на harness'е Claude Code с использованием публичного dev-сплита SWE-bench Multimodal с изменениями, описанными в Приложении 8.3 системной карточки Claude Opus 4.7.
  8. Пустые ячейки (--) означают, что результаты пока недоступны или неприменимы.

Быстрый старт

Для упрощённой интеграции рекомендуется использовать Qwen3.8 через API.

Развёртывание Qwen3.8

Эффективность инференса и пропускная способность значительно различаются между фреймворками. Рекомендуется использовать последние версии фреймворков для оптимальной производительности и совместимости. Для production-нагрузок или сценариев с высокой пропускной способностью рекомендуются специализированные серверные движки, такие как SGLang, vLLM или TokenSpeed.

Qwen3.8 можно развернуть с помощью популярных фреймворков инференса, например:

Использование API

Модели Qwen3.8 по умолчанию работают в режиме размышлений, генерируя содержимое размышлений, обозначенное <think>\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
  • Instruct-режим (без размышлений): 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 включён по умолчанию для всех нагрузок для наилучшего опыта работы "из коробки". Для отключения сохранения размышлений см. пример ниже.

В многошаговых агентных задачах низкий уровень reasoning_effort не всегда сокращает общее время выполнения задачи. Хотя он может ускорить ответы на каждом шаге, недостаточный анализ может привести к большему числу ошибок и повторных попыток, что увеличит общую задержку и потребление токенов.

Chat Completions API

Chat Completions API можно использовать с большинством фреймворков инференса, а также с Qwen Cloud. Перед началом убедитесь, что установлен Python SDK OpenAI, а также настроены 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-FP8",
    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-FP8",
    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-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
# 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-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)

При использовании API из Qwen Cloud, помимо изменения model, следует использовать "enable_thinking": False напрямую, а не "chat_template_kwargs": {"enable_thinking": False}.

Отключение сохранённых размышлений

По умолчанию Qwen3.8 сохраняет блоки размышлений из всех предыдущих сообщений, поддерживая полную цепочку рассуждений в рамках диалога. Такое поведение (preserved thinking) обеспечивает непрерывность контекста и особенно полезно в агентных сценариях, где важна согласованность решений и снижение избыточных рассуждений. Оно также улучшает использование 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-FP8",
    messages=messages,
    extra_body={
        "chat_template_kwargs": {"preserve_thinking": False},
    },
)
print("Chat response:", chat_response)

При использовании API из Qwen Cloud, помимо изменения 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. Достаточная длина вывода: для оптимизации работы над агентными задачами рекомендуется выделять достаточную длину вывода, позволяющую модели генерировать подробные и полные ответы. Для фреймворков, поддерживающих раздельные лимиты токенов для внутренних рассуждений и финального вывода, в пределах контекста 1M рекомендуется следующая конфигурация:

    • Содержимое рассуждений: максимальная длина вывода — 262 144 токена.
    • Финальный ответ: максимальная длина вывода — 131 072 токена.

    Эти настройки обеспечивают необходимый запас для сложных рассуждений, оставляя достаточно места для качественного финального результата.

  3. Обработка очень длинных текстов: Qwen3.8-27B нативно поддерживает контекст длиной до 262 144 токенов. Для долгосрочных задач, где суммарная длина (включая вход и выход) превышает этот лимит, рекомендуется использовать техники масштабирования RoPE, например YaRN.

    YaRN в настоящее время поддерживается несколькими фреймворками инференса, например vLLM, SGLang и TokenSpeed. В целом есть два способа включить YaRN для поддерживаемых фреймворков:

    • Изменение файла конфигурации модели:

      В файле config.json измените поля rope_parameters внутри text_config на:

      {
          "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  
      

    Все заметные open-source фреймворки реализуют статический YaRN, то есть коэффициент масштабирования остаётся постоянным независимо от длины входа, что потенциально может повлиять на производительность на коротких текстах. Рекомендуется изменять конфигурацию rope_parameters только при необходимости обработки длинного контекста. Также рекомендуется корректировать factor по необходимости. Например, если типичная длина контекста в приложении составляет 524 288 токенов, лучше установить factor равным 2.0.

  4. Понимание длинных видео: для оптимизации эффективности инференса на текстах и изображениях параметр size в поставляемом video_preprocessor_config.json настроен консервативно. Рекомендуется установить параметр longest_edge в файле конфигурации видео-препроцессора равным 469 762 048 (что соответствует 224k видео-токенов), чтобы включить сэмплирование с более высокой частотой кадров для часовых видео и достичь более высокой производительности. Например:

    {"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}
}