- Дата публикации
Qwen3.5-35B-A3B: открытый «мыслительный» ИИ для кода, агентов и мультимодальных задач
Что нового
Alibaba представила Qwen3.5-35B-A3B — открытый мультимодальный ИИ с сильным упором на код и агентные сценарии. Модель доступна на Hugging Face и совместима с популярными движками инференса.
Ключевые факты:
- Тип модели: языковая модель с визуальным энкодером (текст + изображения + видео).
- Размер: 35 млрд параметров, при этом одновременно активируется только 3 млрд — это снижает стоимость инференса.
- Контекст:
- нативно — 262 144 токена;
- с RoPE-скейлингом (YaRN) — до 1 010 000 токенов.
- Режим работы по умолчанию: «thinking mode» — модель сначала генерирует скрытый блок
<think>…</think>, потом финальный ответ. - Официальный управляемый сервис: через Alibaba Cloud Model Studio (Qwen3.5-Flash — хостинговая версия Qwen3.5-35B-A3B с контекстом 1M токенов по умолчанию и встроенными инструментами).
Основные улучшения Qwen3.5
-
Единая мультимодальная основа (Vision + Language)
- Раннее объединение токенов текста и изображений.
- По заявлению разработчиков, Qwen3.5 не уступает Qwen3 по мультимодальным задачам и обгоняет Qwen3-VL на бенчмарках по рассуждению, коду, агентам и визуальному пониманию.
-
Гибридная архитектура для скорости
- Сочетание Gated Delta Networks и разрежной Mixture-of-Experts (MoE).
- Цель — высокий throughput и низкая задержка при умеренных затратах.
-
Масштабный reinforcement learning на агентах
- RL обучали в средах с миллионами агентов и усложняющимися задачами.
- Фокус — устойчивость к реальным сценариям и сложным пайплайнам.
-
Мультиязычность
- Поддержка 201 языка и диалекта, включая редкие и региональные варианты.
-
Новая инфраструктура обучения
- Заявленная эффективность мультимодального обучения — почти как у текстового (почти 100% от текст-only).
- Асинхронные RL-фреймворки для масштабных агентных сценариев.
Бенчмарки: язык, код, агенты
Ниже — только часть цифр для Qwen3.5-35B-A3B.
Языковые и знаниевые тесты:
- MMLU-Pro: 85,3
- MMLU-Redux: 93,3
- C-Eval: 90,2
- SuperGPQA: 63,4
Следование инструкциям:
- IFEval: 91,9
- IFBench: 70,2
- MultiChallenge: 60,0
Длинный контекст:
- AA-LCR: 58,5
- LongBench v2: 59,0
STEM и рассуждение:
- HLE w/ CoT: 22,4
- GPQA Diamond: 84,2
- HMMT Feb 25: 89,0
- HMMT Nov 25: 89,2
Код и разработка:
- SWE-bench Verified: 69,2
- Terminal Bench 2: 40,5
- LiveCodeBench v6: 74,6
- CodeForces: 2028 (собственный набор запросов)
- OJBench: 36,0
- FullStackBench en: 58,1
- FullStackBench zh: 55,0
Агентные задачи:
- BFCL-V4 (general agent): 67,3
- TAU2-Bench: 81,2 (с учётом фиксированной airline-домен части, как в system card Claude Opus 4.5)
- VITA-Bench: 31,9
- DeepPlanning: 22,8
Поиск и web-агенты:
- HLE w/ tool: 47,4
- Browsecomp: 61,0
- Browsecomp-zh: 69,5
- WideSearch: 57,1 (без контекст-менеджмента, окно 256k)
- Seal-0: 41,4
Мультиязычные тесты:
- MMMLU: 85,2
- MMLU-ProX (29 языков): 81,0
- NOVA-63: 57,1
- INCLUDE: 79,7
- Global PIQA: 86,6
- PolyMATH: 64,4
- WMT24++ (55 языков, XCOMET-XXL): 76,3
- MAXIFE (23 настроек, EN + мультиязычные промпты): 86,6
Мультимодальные бенчмарки (Vision+Language)
STEM и головоломки:
- MMMU: 81,4
- MMMU-Pro: 75,1
- MathVision: 83,9 (с фиксированным промптом с
\boxed{}) - MathVista (mini): 86,2
- DynaMath: 85,0
- ZEROBench: 8
- ZEROBench_sub: 34,1
- VlmsAreBlind: 97,0
- BabyVision: 38,4 / 29,6 (с доверительными интервалами / без)
Общий VQA:
- RealWorldQA: 84,1
- MMStar: 81,9
- MMBench EN-DEV-v1.1: 91,5
- SimpleVQA: 58,3
- HallusionBench: 67,9
OCR и документы:
- OmniDocBench1.5: 89,3
- CharXiv (RQ): 77,5
- MMLongBench-Doc: 59,5
- CC-OCR: 80,7
- AI2D_TEST: 92,6
- OCRBench: 91,0
Пространственный интеллект:
- ERQA: 64,8
- CountBench: 97,8
- RefCOCO (avg): 89,2
- ODInW13: 42,6
- EmbSpatialBench: 83,1
- RefSpatialBench: 63,5
- LingoQA: 79,2
- Hypersim: 13,1
- SUNRGBD: 33,4
- Nuscene: 14,6
Видео:
- VideoMME (c субтитрами): 86,6
- VideoMME (без субтитров): 82,5
- VideoMMMU: 80,4
- MLVU: 85,6
- MVBench: 74,8
- LVBench: 71,4
- MMVU: 72,3
Визуальные агенты:
- ScreenSpot Pro: 68,6
- OSWorld-Verified: 54,5
- AndroidWorld: 71,1
Tool calling (мультимодальный):
- TIR-Bench: 55,5 / 38,0 (c CI / без CI)
- V*: 92,7 / 89,5 (c CI / без CI)
Медицинские VQA:
- SLAKE: 78,7
- PMC-VQA: 62,0
- MedXpertQA-MM: 61,4
Как это работает
Архитектура модели
Qwen3.5-35B-A3B — это causal language model с визуальным энкодером и MoE.
Основные параметры:
- Общее число параметров: 35 млрд.
- Активные параметры при инференсе: 3 млрд.
- Размер скрытого слоя: 2048.
- Словарь токенов: 248 320 (padded).
- Число слоёв: 40.
- Контекст: 262 144 токена нативно, расширяемо до 1 010 000 токенов с YaRN.
- Выход LM: 248 320 (padded).
- Обучение MTP: модель обучена с multi-step multi-token prediction.
Внутреннее устройство слоёв
Layout слоёв:
- 10 повторов блока:
3 × (Gated DeltaNet → MoE)1 × (Gated Attention → MoE)
Gated DeltaNet:
- Линейное внимание с разделением голов:
- 32 головы для V;
- 16 голов для QK.
- Размер головы: 128.
Gated Attention:
- 16 голов для Q;
- 2 головы для KV;
- Размер головы: 256.
Rotary Position Embedding:
- Размер RoPE: 64.
Mixture-of-Experts:
- Число экспертов: 256.
- Активных экспертов на токен: 8 маршрутизируемых + 1 shared expert.
- Intermediate dimension: 512.
MoE даёт возможность держать общий размер модели большим, но активировать лишь часть параметров. Отсюда — 35B total / 3B activated.
Мультимодальность
Модель содержит vision encoder, который преобразует изображения и видео в токены, совместимые с языковым декодером.
- Текст и визуальные токены проходят через общую архитектуру.
- Мультимодальное обучение шло с почти такой же эффективностью, как текст-only, за счёт оптимизированного пайплайна и асинхронного RL.
Thinking mode
По умолчанию Qwen3.5:
- Генерирует внутренний блок рассуждений в теге
<think>…</think>. - Затем выдаёт финальный ответ.
Этот блок можно отключить через параметры API (см. ниже). Мягкий переключатель /think и /nothink из Qwen3 не поддерживается.
Инфраструктура и поддерживаемые фреймворки
Модель распространяется в формате Hugging Face Transformers и совместима с:
- Hugging Face Transformers (включая встроенный сервер);
- vLLM;
- SGLang;
- KTransformers;
- а также с OpenAI-совместимыми API.
Для продакшена разработчики рекомендуют SGLang, KTransformers или vLLM благодаря высокой пропускной способности и эффективной работе с длинным контекстом.
Что это значит для вас
Когда Qwen3.5-35B-A3B действительно полезен
-
Генерация и правка кода, особенно в агентных сценариях
- Высокие результаты на SWE-bench Verified (69,2), LiveCodeBench (74,6), FullStackBench (58,1 / 55,0).
- Хорошо подходит для:
- автогенерации патчей;
- пошагового решения задач в терминале;
- анализа больших репозиториев с помощью агентов.
- В связке с Qwen Code можно строить терминального ассистента для разработчиков.
-
Агентные сценарии и tool calling
- Высокие результаты на TAU2-Bench (81,2), BFCL-V4 (67,3), TIR-Bench и V*.
- Модель умеет:
- вызывать внешние инструменты;
- работать с MCP-серверами (через Qwen-Agent);
- поддерживать сложные цепочки действий.
- Подходит для:
- ассистентов, которые управляют файловой системой;
- web-агентов с поиском и навигацией по сайтам;
- внутренних инструментов разработчика.
-
Длинные документы и сложные пайплайны
- Нативный контекст 262k токенов, расширяемый до 1M.
- Подходит для:
- анализа больших кодовых баз;
- обработки длинных юридических или технических документов;
- многопроходных задач, где важна история взаимодействия.
-
Мультимодальные задачи
- Сильные показатели на MMMU, MathVision, OmniDocBench, VideoMME и других.
- Применения:
- разбор сканов, презентаций, PDF с картинками;
- решение визуальных задач по математике;
- понимание видео с вопросами к содержанию.
-
Мультиязычные сценарии
- Поддержка 201 языка и диалекта.
- Бенчмарки (MMMLU, WMT24++, MAXIFE) показывают уверенный уровень на множестве языков.
- Полезно, если нужно покрывать международную аудиторию и локальные диалекты.
Когда Qwen3.5 может быть не лучшим выбором
-
Ограниченные ресурсы (GPU/память)
- 35B MoE с длинным контекстом — тяжёлая конфигурация.
- Для запуска команд из инструкции часто требуется 8 GPU с достаточным объёмом памяти.
- Если у вас одна потребительская видеокарта, стоит смотреть на более компактные модели Qwen или других семейств.
-
Сверхстрогие требования к задержке
- Thinking mode добавляет вычислительные шаги и увеличивает время ответа.
- Можно отключить рассуждения, но тогда вы теряете часть сильных сторон модели в сложных задачах.
-
Простые чат-боты без кода и инструментов
- Для FAQ-бота или простого ассистента Qwen3.5-35B-A3B может быть избыточен по ресурсам.
- Логичнее использовать меньшие модели или облачные решения с более мягкими требованиями.
Доступность из России
- Хостинговая версия (Qwen3.5-Flash) доступна через Alibaba Cloud Model Studio.
- Для доступа к облаку может потребоваться регистрация и возможное использование VPN в зависимости от сетевых ограничений и политики провайдера.
- Локальный запуск через Hugging Face/vLLM/SGLang не требует доступа к зарубежным API после того, как вы скачаете веса.
Место на рынке
Разработчики приводят таблицы с результатами не только Qwen3.5, но и других моделей, включая условный GPT-5-mini 2025-08-07, GPT-OSS-120B, а также более крупные версии Qwen3 и Qwen3.5.
По самим цифрам:
- На MMLU-Pro Qwen3.5-35B-A3B набирает 85,3, что близко к более крупным моделям Qwen3.5-27B (86,1) и Qwen3.5-122B-A10B (86,7).
- На SWE-bench Verified — 69,2, почти на уровне Qwen3.5-27B (72,4) и Qwen3.5-122B-A10B (72,0).
- На TAU2-Bench модель показывает 81,2 — даже выше, чем Qwen3.5-27B (79,0) и Qwen3.5-122B-A10B (79,5).
Цифры по GPT-5-mini и Claude-Sonnet-4.5 в таблицах есть, но разработчики не дают прямых выводов о скорости или стоимости. Из данных видно, что Qwen3.5-35B-A3B на многих бенчмарках находится в одном диапазоне с более крупными моделями, но при меньшем числе активных параметров.
Если вы сравниваете модели для кода и агентов, Qwen3.5-35B-A3B выглядит как компромисс между качеством и ресурсами: близко к топовым open-source моделям по качеству, но легче полноценных 70B+.
Установка
Hugging Face Transformers
Для быстрого запуска можно использовать встроенный сервер Transformers. Нужна последняя версия из ветки main:
pip install "transformers[serving] @ git+https://github.com/huggingface/transformers.git@main"
Также убедитесь, что установлены torchvision и pillow.
Запуск сервера с API на http://localhost:8000/v1:
transformers serve --force-model Qwen/Qwen3.5-35B-A3B --port 8000 --continuous-batching
Модель автоматически разместится на доступных ускорителях.
Как запустить
SGLang
SGLang — быстрый сервер для LLM и VLM. Для Qwen3.5 нужна версия из main репозитория:
uv pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python&egg=sglang[all]'
API будет доступен по адресу http://localhost:8000/v1.
Стандартный запуск (262 144 токена, 8 GPU):
python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tp-size 8 \
--mem-fraction-static 0.8 \
--context-length 262144 \
--reasoning-parser qwen3
С поддержкой инструментов (tool use):
python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tp-size 8 \
--mem-fraction-static 0.8 \
--context-length 262144 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder
Multi-Token Prediction (MTP):
python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tp-size 8 \
--mem-fraction-static 0.8 \
--context-length 262144 \
--reasoning-parser qwen3 \
--speculative-algo NEXTN \
--speculative-num-steps 3 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 4
vLLM
vLLM — движок инференса с высокой пропускной способностью. Для Qwen3.5 нужна nightly-версия:
uv pip install vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightly
Стандартный запуск (262 144 токена, 8 GPU):
vllm serve Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tensor-parallel-size 8 \
--max-model-len 262144 \
--reasoning-parser qwen3
С поддержкой tool calling:
vllm serve Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tensor-parallel-size 8 \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder
Multi-Token Prediction (MTP):
vllm serve Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tensor-parallel-size 8 \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--speculative-config '{"method":"qwen3_next_mtp","num_speculative_tokens":2}'
Только текст (без vision encoder):
vllm serve Qwen/Qwen3.5-35B-A3B \
--port 8000 \
--tensor-parallel-size 8 \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--language-model-only
KTransformers
KTransformers — фреймворк для оптимизации инференса с гетерогенными CPU/GPU. Для Qwen3.5 есть отдельное руководство по деплою:
- См. KTransformers Deployment Guide для конкретных команд.
Использование через Chat Completions API
Qwen3.5 можно дергать через OpenAI-совместимый API.
Подготовка
pip install -U openai
# Настройки окружения
export OPENAI_BASE_URL="http://localhost:8000/v1"
export OPENAI_API_KEY="EMPTY"
Рекомендуемые параметры сэмплинга
-
Thinking mode, общие задачи:
temperature=1.0,top_p=0.95,top_k=20,min_p=0.0,presence_penalty=1.5,repetition_penalty=1.0.
-
Thinking mode, точные задачи по коду (например, WebDev):
temperature=0.6,top_p=0.95,top_k=20,min_p=0.0,presence_penalty=0.0,repetition_penalty=1.0.
-
Instruct (без thinking), общие задачи:
temperature=0.7,top_p=0.8,top_k=20,min_p=0.0,presence_penalty=1.5,repetition_penalty=1.0.
-
Instruct (без thinking), рассуждения:
temperature=1.0,top_p=0.95,top_k=20,min_p=0.0,presence_penalty=1.5,repetition_penalty=1.0.
Поддержка конкретных параметров зависит от выбранного движка инференса.
Пример: текстовый запрос
from openai import OpenAI
client = OpenAI()
messages = [
{
"role": "user",
"content": "Type \"I love Qwen3.5\" backwards",
},
]
chat_response = client.chat.completions.create(
model="Qwen/Qwen3.5-35B-A3B",
messages=messages,
max_tokens=81920,
temperature=1.0,
top_p=0.95,
presence_penalty=1.5,
extra_body={
"top_k": 20,
},
)
print("Chat response:", chat_response)
Пример: изображение + текст
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": (
"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?\n\nChoices:\n\n"
"(A) $\\frac{2}{9}$\n\n(B) $\\sqrt{5}$\n\n(C) $0.8 \\cdot \\pi$\n\n"
"(D) 2.5\n\n(E) $1+\\sqrt{2}$"
),
},
],
}
]
response = client.chat.completions.create(
model="Qwen/Qwen3.5-35B-A3B",
messages=messages,
max_tokens=81920,
temperature=1.0,
top_p=0.95,
presence_penalty=1.5,
extra_body={
"top_k": 20,
},
)
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": (
"How many porcelain jars were discovered in the niches located in the "
"primary chamber of the tomb?"
),
},
],
}
]
response = client.chat.completions.create(
model="Qwen/Qwen3.5-35B-A3B",
messages=messages,
max_tokens=81920,
temperature=1.0,
top_p=0.95,
presence_penalty=1.5,
extra_body={
"top_k": 20,
"mm_processor_kwargs": {
"fps": 2,
"do_sample_frames": True,
},
},
)
print("Chat response:", chat_response)
Thinking vs Instruct: как отключить рассуждения
Qwen3.5 всегда думает по умолчанию, /think и /nothink не работают.
Чтобы получить ответ без блока <think>…</think>, нужно указать параметр в API.
Пример для OpenAI-совместимого 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": "Where is this?",
},
],
}
]
chat_response = client.chat.completions.create(
model="Qwen/Qwen3.5-35B-A3B",
messages=messages,
max_tokens=32768,
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 Alibaba Cloud Model Studio, вместо "chat_template_kwargs": {"enable_thinking": False} нужно передать просто:
"enable_thinking": false
Агентные сценарии и Qwen-Agent
Qwen3.5 хорошо умеет работать с инструментами. Для быстрого старта с агентами есть библиотека Qwen-Agent.
Пример: агент, который управляет файловой системой через MCP-сервер и может организовать ваш рабочий стол.
import os
from qwen_agent.agents import Assistant
llm_cfg = {
'model': 'Qwen3.5-35B-A3B',
'model_type': 'qwenvl_oai',
'model_server': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
'api_key': os.getenv('DASHSCOPE_API_KEY'),
'generate_cfg': {
'use_raw_api': True,
'extra_body': {
'enable_thinking': True,
},
},
}
tools = [
{
'mcpServers': {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/xxxx/Desktop",
],
}
}
}
]
bot = Assistant(llm=llm_cfg, function_list=tools)
messages = [{'role': 'user', 'content': 'Help me organize my desktop.'}]
for responses in bot.run(messages=messages):
pass
print(responses)
messages = [{'role': 'user', 'content': 'Develop a dog website and save it on the desktop'}]
for responses in bot.run(messages=messages):
pass
print(responses)
Qwen Code
Qwen Code — открытый агент для терминала, оптимизированный под Qwen.
Он помогает:
- разбираться в больших кодовых базах;
- автоматизировать рутинные задачи;
- ускорять разработку.
Подробности — в документации Qwen Code.
Работа с ультрадлинными текстами
Qwen3.5 нативно поддерживает до 262 144 токенов. Для задач, где суммарная длина входа и выхода выше, нужны техники RoPE-скейлинга, например YaRN.
YaRN поддерживается:
transformers;vllm;ktransformers;sglang.
Есть два основных способа включить YaRN.
1. Правка config.json
В 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
}
2. Параметры командной строки (пример для 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 1010000
Для SGLang и KTransformers используются переменные окружения (в исходнике обрезан фрагмент, но идея та же: передать параметры RoPE/YaRN через конфиг или CLI).
Qwen3.5-35B-A3B — мощный открытый вариант для тех, кто строит свои ИИ-продукты вокруг кода, агентов и мультимодальных задач, и готов инвестировать в инфраструктуру под 35B MoE с длинным контекстом.