Искусственный интеллект

Как JetBrains улучшила локальный запуск Qwen3.6 внутри агента Junie

JetBrains объясняет изменения, внесённые в Junie и движок инференса для локального запуска Qwen3.6-27B на MacBook с чипом M5. Эксперимент показывает, что производительность локальных агентов программирования зависит от управления контекстом и этапа prefill не меньше, чем от скорости генерации токенов.

2026-08-24
6 мин. чтения
10 просмотров
فريق تحرير certi.news
Как JetBrains улучшила локальный запуск Qwen3.6 внутри агента Junie

JetBrains раскрыла инженерные подробности локального запуска первой версии Junie Local на MacBook M5 с использованием модели Qwen3.6-27B, пояснив, что достижение практической производительности стало результатом не только выбора компактной модели, но и изменений в самом агенте программирования, движке инференса, настройках модели и способе управления контекстом.

Компания говорит, что проект по полному запуску Junie на устройстве, без облачного инференса, рассчитан на длительную перспективу и широкий спектр аппаратных конфигураций. Первая доступная сейчас версия ориентирована на MacBook M5, что объясняет акцент заявленных оптимизаций на особенностях этих чипов.

Сохранение контекста задач в рамках сессии

Junie, как и другие агенты программирования, работает в цикле выполнения: пользователь отправляет модели задачу, затем модель выполняет вызовы инструментов, таких как команды Bash, чтение и запись файлов, после чего возвращает результаты этих операций модели. С каждым новым запросом контекст расширяется, а данные KV-cache, обработанные моделью в предыдущем запросе, можно повторно использовать.

В облачных моделях агент может повторно запросить файл при необходимости, поскольку этап prefill, то есть обработка исходного контекста перед генерацией ответа, происходит относительно быстро. Однако JetBrains обнаружила, что чтение файлов дорого по времени в локальных моделях. Поэтому компания изменила логику локального инференса так, чтобы каждый новый запрос непосредственно добавлялся к текущему контексту, вместо того чтобы сохранять только части, которые считаются релевантными для новой задачи. Благодаря этому файл, прочитанный моделью, остаётся в контексте, а память KV-cache можно повторно использовать, не обрабатывая файл заново.

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

Изменения, связанные с поведением модели

Qwen3.6 обрабатывала обновления прогресса не так, как Junie ожидает от облачных моделей: она обычно игнорировала блок обновлений состояния в формате, похожем на XML, но писала текстовое описание своих действий наряду с вызовами инструментов. JetBrains использовала это поведение и отображала сгенерированный текст как обновление для пользователя. Компания поясняет, что такая адаптация специфична для модели: другие модели могут вообще не выводить текст или, наоборот, генерировать его в чрезмерном количестве.

JetBrains также отключила необязательные запросы к модели, включая логику создания краткого описания задачи. Компания считает ограниченное ухудшение пользовательского опыта приемлемой платой за сокращение количества запросов. Кроме того, она отключила режим нескольких агентов, поскольку, согласно её тестам, последовательная обработка эффективнее на устройстве M5, тогда как параллельные запросы по-прежнему будут ограничены скоростью инференса.

Почему была выбрана Qwen3.6-27B?

JetBrains решила полностью отключить reasoning в локальной версии. Согласно внутренним тестам облачной версии Qwen3.6-27B, включение рассуждений не давало значительного прироста качества. Поскольку токены рассуждений учитываются среди токенов, генерируемых движком инференса, их отключение сократило необходимое количество токенов примерно в два-три раза. В компании это выразилось в почти двукратном ускорении выполнения задач при, как она описывает, несущественном влиянии на качество.

Компания использовала версию с 4-битным квантованием, поскольку в эталонных тестах она лишь немного уступала версии 8-bit, а генерация токенов, ограниченная пропускной способностью памяти, была примерно вдвое быстрее по сравнению с версией 8-bit. Однако скорость prefill в предварительных тестах не различалась между версиями 4-bit, 8-bit и 16-bit, что побудило команду изучить вычислительные операции внутри движка.

Невидимое узкое место: этап prefill

Согласно данным JetBrains, скорость prefill может достигать примерно 3 700 токенов в секунду на видеокарте RTX 5090 с настройками по умолчанию против примерно 650 токенов в секунду на M5 до оптимизации. В задачах исследования файлов большая часть времени уходила на обработку контекста, а не на генерацию самого ответа.

Команда обнаружила, что значительная часть матричных операций во время prefill выполнялась с точностью 16-bit, даже когда веса были сжаты до 4-bit, поскольку перед выполнением операций веса преобразовывались в 16-bit. Поскольку M5 поддерживает специальные инструкции для вычислений с точностью 8-bit, JetBrains внесла исправление в пакет MLX-VLM, чтобы перенести некоторые матричные операции в слоях self-attention на 8-bit, получив прирост скорости prefill примерно на 40%. Изменение не коснулось слоёв full-attention, веса которых остаются в формате 16-bit даже при квантовании.

Компания связывает текущий акцент на M5 именно с этими вычислительными инструкциями: чипы M4 ими не располагают, а JetBrains утверждает, что вычисления 16-bit на M4 на этапе prefill на 20–30% медленнее по сравнению с M5.

Ускорение генерации и выбор модели

JetBrains одновременно включила два метода speculative decoding: многотокенное предсказание MTP с использованием отдельной черновой модели и n-gram matching, которая ищет повторяющиеся последовательности в контексте для предсказания следующих токенов. В некоторых случаях через MTP можно принять около трёх предложенных токенов и до восьми дополнительных токенов через n-gram matching, что обеспечило ускорение генерации до двух раз.

Компания объясняет, что Qwen3.8-27B не была лучшим выбором для Mac, поскольку для хорошей работы ей требуется reasoning. При его отключении качество резко ухудшается, и модель может зациклиться, повторяя один и тот же вызов инструмента. Включение reasoning на среднем уровне увеличивает количество генерируемых токенов примерно в пять раз, что на практике приводит почти к четырёхкратному замедлению, поскольку время prefill меняется незначительно. Поэтому, согласно оценке JetBrains, Qwen3.6-27B на данный момент остаётся наиболее подходящим вариантом для локального запуска Junie на оборудовании Mac.

Разбор certi.news: что действительно меняется?

Этот эксперимент показывает, что оценка локального агента программирования только по числу генерируемых токенов в секунду может давать неполную картину. Пользователь также ждёт загрузки файлов, повторного использования контекста и выполнения вызовов инструментов — эти этапы могут стать узким местом ещё до начала генерации. На практике изменения в Junie уменьшают необходимость повторного чтения файлов, исправление MLX-VLM повышает скорость обработки контекста на M5, а отключение reasoning сокращает необходимое количество токенов.

Однако ограничения также очевидны: первая версия ориентирована на M5, отключение reasoning может не подходить моделям, которые полагаются на него для сохранения качества, а использование обновлений прогресса связано с поведением Qwen3.6. JetBrains говорит, что располагает прототипами поддержки DGX Spark и RTX 5090 и также изучает видеокарты с объёмом памяти 24 GB, но материал не содержит сроков или спецификаций доступности этих версий. Поэтому Junie Local представляет собой важный технический шаг к более пригодным для использования локальным агентам программирования, но не свидетельствует о том, что опыт уже стал эквивалентен работе со всеми облачными моделями или доступен на всех типах оборудования.

Источник новости
ف
Автор

فريق تحرير certi.news

В той же категории

Вам также может понравиться

Все новости