Команда Qwen выпустила Qwen3-Coder-Next — языковую модель открытого веса, разработанную специально для программных агентов и локальной разработки. Она основана на Qwen3-Next-80B-A3B. Модель использует разреженную архитектуру Mixture-of-Experts (MoE) с гибридным вниманием. Она имеет 80 миллиардов параметров в общей сложности, но только 3 миллиарда параметров активируются на токен.
Цель — соответствовать производительности гораздо более крупных активных моделей, сохраняя при этом низкую стоимость вывода для длительных сеансов кодирования и рабочих процессов агентов.
Архитектура: гибридное внимание плюс разреженное MoE
Исследовательская группа описывает её как гибридную архитектуру, которая сочетает в себе Gated DeltaNet, Gated Attention и MoE.
Ключевые параметры конфигурации:
* Тип: причинная языковая модель, предварительное обучение плюс последующее обучение.
* Параметры: 80 миллиардов в общей сложности, 79 миллиардов без встраивания.
* Активные параметры: 3 миллиарда на токен.
* Слои: 48.
* Скрытое измерение: 2048.
* Макет: 12 повторений по 3 × (Gated DeltaNet → MoE), за которыми следует 1 × (Gated Attention → MoE).
Обучение агентов: исполняемые задачи и RL
Команда Qwen описывает Qwen3-Coder-Next как «обученного на уровне агентов в масштабе» на основе Qwen3-Next-80B-A3B-Base. В процессе обучения используются крупномасштабные синтетические исполняемые задачи, взаимодействие со средами и обучение с подкреплением.
Использование инструментов и интеграция с агентами
Qwen3-Coder-Next настроен для вызова инструментов и интеграции с программными агентами. Модель предназначена для подключения к средам IDE и CLI, таким как Qwen-Code, Claude-Code, Cline и другим интерфейсам агентов. Контекст в 256 тысяч токенов позволяет этим системам хранить большие кодовые базы, журналы и разговоры в течение одного сеанса.
Qwen3-Coder-Next поддерживает только режим без размышлений. Официальная карточка модели и документация Unsloth подчёркивают, что она не генерирует блоки
Развёртывание: SGLang, vLLM и локальный GGUF
Для развёртывания на сервере команда Qwen рекомендует SGLang и vLLM. В SGLang пользователи запускают sglang>=0.5.8 с —tool-call-parser qwen3_coder и длиной контекста по умолчанию в 256 тысяч токенов. В vLLM пользователи запускают vllm>=0.15.0 с —enable-auto-tool-choice и тем же анализатором инструментов. Обе настройки предоставляют совместимый с OpenAI /v1 endpoint.
Для локального развёртывания Unsloth предоставляет GGUF-квантования Qwen3-Coder-Next и полный рабочий процесс llama.cpp и llama-server.
Ключевые выводы
* Разреженная архитектура MoE с низким активным вычислением: Qwen3-Coder-Next имеет 80 миллиардов параметров в разреженной конструкции MoE, но только 3 миллиарда параметров активны на токен, что снижает стоимость вывода, сохраняя при этом высокую ёмкость для специализированных экспертов.
* Гибридный стек внимания для долгосрочного кодирования: модель использует гибридную структуру из блоков Gated DeltaNet, Gated Attention и MoE в течение 48 слоёв со скрытым размером 2048, оптимизированную для долгосрочного рассуждения при редактировании кода и рабочих процессов агентов.
* Обучение агентов с исполняемыми задачами и RL: Qwen3-Coder-Next обучается на крупномасштабных исполняемых задачах и обучении с подкреплением на основе Qwen3-Next-80B-A3B-Base, поэтому он может планировать, вызывать инструменты, запускать тесты и восстанавливаться после сбоев, а не только завершать короткие фрагменты кода.
* Конкурентная производительность на SWE-Bench и Terminal-Bench: тесты показывают, что Qwen3-Coder-Next достигает высоких результатов на SWE-Bench Verified, SWE-Bench Pro, SWE-Bench Multilingual, Terminal-Bench 2.0 и Aider, часто соответствуя или превосходя гораздо более крупные модели MoE с в 10–20 раз большим количеством активных параметров.
Как построить продвинутые квантовые алгоритмы с помощью Qrisp
В этом руководстве мы представляем продвинутое практическое руководство, которое демонстрирует, как мы используем Qrisp для построения и выполнения нетривиальных квантовых алгоритмов. Мы рассмотрим основные абстракции Qrisp для квантовых данных, построим запутанные состояния, а затем постепенно реализуем поиск по алгоритму Гровера с автоматическим уничтожением, квантовую оценку фазы и полный рабочий процесс QAOA для задачи MaxCut.
Мы сосредоточимся на написании выразительных квантовых программ высокого уровня, позволяя Qrisp управлять построением схем, логикой управления и обратимостью за кулисами.
Установка зависимостей
«`python
import sys, subprocess, math, random, textwrap, time
def pipinstall(pkgs):
cmd = [sys.executable, «-m», «pip», «install», «-q»] + pkgs
subprocess.check_call(cmd)
print(«Installing dependencies (qrisp, networkx, matplotlib, sympy)…»)
pipinstall([«qrisp», «networkx», «matplotlib», «sympy»])
print(«✓ Installed\n»)
«`
Импорт модулей
«`python
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
from qrisp import (
QuantumVariable, QuantumFloat, QuantumChar,
h, z, x, cx, p,
control, QFT, multi_measurement,
auto_uncompute
)
from qrisp.qaoa import (
QAOAProblem, RX_mixer,
createmaxcutcostoperator, createmaxcutclcost_function
)
from qrisp.grover import diffuser
«`
Мы начинаем с настройки среды выполнения и установки Qrisp вместе с минимальным научным стеком, необходимым для запуска квантовых экспериментов. Мы импортируем основные примитивы Qrisp, которые позволяют нам представлять квантовые типы данных, вентили и поток управления. Мы также подготавливаем утилиты оптимизации и Grover, которые позже позволят использовать вариационные алгоритмы и амплитудное усиление.
Определение функций
«`python
def banner(title):
print(«\n» + «=»*90)
print(title)
print(«=»*90)
def topkprobs(probdict, k=10):
items = sorted(prob_dict.items(), key=lambda kv: kv[1], reverse=True)[:k]
return items
def printtopk(probdict, k=10, label=»Top outcomes»):
items = topkprobs(probdict, k=k)
print(label)
for state, prob in items:
print(f» {state}: {prob:.4f}»)
«`
Мы определяем служебные функции, которые помогают нам проверять вероятностные распределения, интерпретировать битовые строки и оценивать классические затраты для сравнения с квантовыми выходами.
Далее мы строим состояние GHZ, чтобы продемонстрировать, как Qrisp обрабатывает запутанность и составление схем с помощью высокоуровневых абстракций. Мы также демонстрируем типизированные квантовые данные, используя QuantumChar, подкрепляя то, как символические квантовые значения могут быть обработаны и измерены.
Реализация алгоритма Гровера
«`python
@auto_uncompute
def sqrt_oracle(qf):
cond = (qf * qf == 0.25)
z(cond)
qf = QuantumFloat(3, -1, signed=True)
n = qf.size
iterations = int(0.25 math.pi math.sqrt((2n) / 2))
print(f»QuantumFloat qubits: {n} | Grover iterations: {iterations}»)
h(qf)
for _ in range(iterations):
sqrt_oracle(qf)
diffuser(qf)
print(«\nGrover result distribution (QuantumFloat prints decoded values):»)
print(qf)
qfmeas = qf.getmeasurement()
printtopk(qfmeas, k=10, label=»\nTop measured values (decoded by QuantumFloat):»)
«`
Мы реализуем оракул Гровера с помощью автоматической очистки, что позволяет нам выражать обратимую логику без ручной очистки промежуточных состояний. Мы применяем амплитудное усиление над пространством поиска QuantumFloat для решения простого нелинейного уравнения с помощью квантового поиска.
Визуализация результатов
«`python
banner(«SECTION 3 — Quantum Phase Estimation (QPE): Controlled U + inverse QFT»)
def QPE(psi: QuantumVariable, U, precision: int):
res = QuantumFloat(precision, -precision, signed=False)
h(res)
for i in range(precision):
with control(res[i]):
for _ in range(2i):
U(psi)
QFT(res, inv=True)
return res
def U_example(psi):
phi_1 = 0.5
phi_2 = 0.125
p(phi_1 2 np.pi, psi[0])
p(phi_2 2 np.pi, psi[1])
psi = QuantumVariable(2)
h(psi)
res = QPE(psi, U_example, precision=3)
print(«Joint measurement of (psi, phase_estimate):»)
mm = multi_measurement([psi, res])
items = sorted(mm.items(), key=lambda kv: (-kv[1], str(kv[0])))
for (psibits, phaseval), prob in items:
print(f» psi={psibits} phase≈{phaseval} prob={prob:.4f}»)
«`
Мы строим полный конвейер квантовой оценки фазы, комбинируя контролируемые унитарные приложения с обратным квантовым преобразованием Фурье. Мы демонстрируем, как фазовая информация кодируется в квантовый регистр с настраиваемой точностью с помощью QuantumFloat.
Реализация QAOA MaxCut
«`python
G = nx.erdosrenyigraph(6, 0.65, seed=133)
while G.numberofedges() < 5:
G = nx.erdosrenyigraph(6, 0.65, seed=random.randint(0, 9999))
print(f»Graph: |V|={G.numberofnodes()} |E|={G.numberofedges()}»)
print(«Edges:», list(G.edges())[:12], «…» if G.numberofedges() > 12 else «»)
qarg = QuantumVariable(G.numberofnodes())
qaoa_maxcut = QAOAProblem(
costoperator=createmaxcutcostoperator(G),
mixer=RX_mixer,
clcostfunction=createmaxcutclcostfunction(G),
)
depth = 3
max_iter = 25
t0 = time.time()
results = qaoamaxcut.run(qarg, depth=depth, maxiter=max_iter)
t1 = time.time()
print(f»\nQAOA finished in {t1 — t0:.2f}s (depth={depth}, maxiter={maxiter})»)
print(«Returned measurement distribution size:», len(results))
clcost = createmaxcutclcost_function(G)
print(«\nTop 8 candidate cuts (bitstring, prob, cost):»)
top8 = sorted(results.items(), key=lambda kv: kv[1], reverse=True)[:8]
for bitstr, prob in top8:
costval = clcost({bitstr: 1})
print(f» {bitstr} prob={prob:.4f} cutedges≈{costval}»)
best_bitstr = top8[0][0]
bestcost = classicalmaxcutcost(G, bestbitstr)
left, right = bitstringtopartition(best_bitstr)
print(f»\nMost likely solution: {best_bitstr}»)
print(f»Partition 0-side: {left}»)
print(f»Partition 1-side: {right}»)
print(f»Classical crossing edges (verified): {best_cost}»)
«`
Мы формулируем задачу MaxCut как экземпляр QAOA, используя ориентированные на проблемы абстракции Qrisp, и запускаем гибридный квантово-классический цикл оптимизации. Мы анализируем возвращённое вероятностное распределение, чтобы определить высококачественных кандидатов на сокращение, и проверяем их с помощью классической функции затрат.
Мы завершаем, показывая, как единый согласованный рабочий процесс Qrisp позволяет нам перейти от низкоуровневой подготовки квантовых состояний к современным вариационным алгоритмам, используемым в квантовых вычислениях ближнего поля.
1. Какие особенности архитектуры Qwen3-Coder-Next делают его подходящим для программных агентов и локальной разработки?
В статье указано, что Qwen3-Coder-Next использует разреженную архитектуру Mixture-of-Experts (MoE) с гибридным вниманием. Это позволяет модели соответствовать производительности гораздо более крупных активных моделей, сохраняя при этом низкую стоимость вывода для длительных сеансов кодирования и рабочих процессов агентов.
2. Какие параметры конфигурации используются в Qwen3-Coder-Next и как они влияют на его производительность?
Ключевые параметры конфигурации Qwen3-Coder-Next включают:
* Тип: причинная языковая модель, предварительное обучение плюс последующее обучение.
* Параметры: 80 миллиардов в общей сложности, 79 миллиардов без встраивания.
* Активные параметры: 3 миллиарда на токен.
* Слои: 48.
* Скрытое измерение: 2048.
Эти параметры влияют на производительность модели, определяя её способность обрабатывать большие объёмы данных и выполнять сложные задачи.
3. Какие методы обучения используются для Qwen3-Coder-Next и как они способствуют его эффективности?
Qwen3-Coder-Next обучается на крупномасштабных исполняемых задачах и обучении с подкреплением на основе Qwen3-Next-80B-A3B-Base. Это позволяет модели планировать, вызывать инструменты, запускать тесты и восстанавливаться после сбоев, а не только завершать короткие фрагменты кода.
4. Какие инструменты и среды могут быть интегрированы с Qwen3-Coder-Next для разработки программных агентов?
Qwen3-Coder-Next настроен для вызова инструментов и интеграции с программными агентами. Модель предназначена для подключения к средам IDE и CLI, таким как Qwen-Code, Claude-Code, Cline и другим интерфейсам агентов.
5. Какие рекомендации даёт команда Qwen для развёртывания Qwen3-Coder-Next на сервере и локально?
Для развёртывания на сервере команда Qwen рекомендует SGLang и vLLM. В SGLang пользователи запускают sglang>=0.5.8 с —tool-call-parser qwen3_coder и длиной контекста по умолчанию в 256 тысяч токенов. В vLLM пользователи запускают vllm>=0.15.0 с —enable-auto-tool-choice и тем же анализатором инструментов. Для локального развёртывания Unsloth предоставляет GGUF-квантования Qwen3-Coder-Next и полный рабочий процесс llama.cpp и llama-server.