Команда Qwen выпускает Qwen3-Coder-Next: языковую модель открытого веса, разработанную специально для программных агентов и локальной разработки

Команда 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.

Источник