Inteligência artificial

Cómo mejoró JetBrains la ejecución local de Qwen3.6 dentro del agente Junie

JetBrains explica las modificaciones realizadas en Junie y en el motor de inferencia para ejecutar Qwen3.6-27B localmente en MacBook equipados con el chip M5. La experiencia muestra que el rendimiento de los agentes de programación locales depende de la gestión del contexto y de la fase de prefill tanto como de la velocidad de generación de tokens.

2026-08-24
8 min de leitura
10 visualizações
فريق تحرير certi.news
Cómo mejoró JetBrains la ejecución local de Qwen3.6 dentro del agente Junie

JetBrains reveló detalles técnicos sobre la ejecución local de la primera versión de Junie Local en un MacBook M5 utilizando el modelo Qwen3.6-27B, y explicó que alcanzar un rendimiento práctico no fue simplemente resultado de elegir un modelo comprimido, sino que requirió modificaciones en el propio agente de programación, el motor de inferencia, la configuración del modelo y la forma de gestionar el contexto.

La empresa afirma que el proyecto para ejecutar Junie completamente en el dispositivo, sin inferencia en la nube, es un proyecto a largo plazo dirigido a una amplia variedad de configuraciones de hardware. La primera versión disponible actualmente se centra en los MacBook M5, lo que explica el enfoque de las optimizaciones anunciadas en las características de estos chips.

Mantener el contexto de las tareas dentro de la sesión

Junie, al igual que otros agentes de programación, funciona mediante un ciclo de ejecución en el que el usuario envía una tarea al modelo. A continuación, el modelo ejecuta llamadas a herramientas, como comandos Bash y la lectura y escritura de archivos, antes de devolver los resultados de esas operaciones al modelo. Con cada nueva solicitud, el contexto se amplía y los datos KV-cache que el modelo procesó en la solicitud anterior pueden reutilizarse.

En los modelos en la nube, el agente puede volver a solicitar un archivo cuando lo necesita porque la fase de prefill, es decir, el procesamiento del contexto inicial antes de generar la respuesta, es relativamente rápida. Sin embargo, JetBrains descubrió que leer archivos requiere mucho tiempo en los modelos locales. Por ello, modificó la lógica de inferencia local para que cada nueva solicitud se añadiera directamente al contexto en curso, en lugar de limitarse a las partes que considera adecuadas para la nueva tarea. De este modo, el archivo que el modelo leyó permanece dentro del contexto y la memoria KV-cache puede reutilizarse en lugar de procesarse de nuevo.

La empresa también cambió el orden de los datos que Junie envía al iniciar una nueva sesión de codificación y añadió al motor de inferencia una lógica para almacenar el prefijo hasta la solicitud del usuario. Como resultado, este prefijo puede reutilizarse en tareas posteriores dentro del mismo proyecto. En cambio, el contexto del proyecto que aparece después de la solicitud del usuario no se almacenó de la misma manera, porque es relativamente pequeño y está compuesto principalmente por archivos de nivel superior que pueden cambiar con frecuencia.

Modificaciones relacionadas con el comportamiento del modelo

Qwen3.6 no gestionaba las actualizaciones de progreso de la forma que Junie espera de los modelos en la nube: normalmente ignoraba el bloque dedicado a las actualizaciones de estado con un formato similar a XML, pero escribía una descripción textual de sus acciones junto con las llamadas a herramientas. JetBrains aprovechó este comportamiento y mostró el texto generado como una actualización para el usuario. La empresa aclara que esta adaptación es específica del modelo, ya que otros modelos podrían no imprimir ningún texto o producir un texto excesivo.

JetBrains también desactivó solicitudes opcionales al modelo, entre ellas la lógica que genera una breve descripción de la tarea. La empresa considera aceptable la concesión limitada en la experiencia de uso a cambio de reducir las solicitudes. También desactivó el modo de múltiples agentes, porque el procesamiento secuencial es más eficiente en un dispositivo M5 según sus pruebas, mientras que las solicitudes paralelas seguirían limitadas por la velocidad de inferencia.

¿Por qué se eligió Qwen3.6-27B?

JetBrains decidió desactivar por completo el razonamiento en la versión local. Según sus pruebas internas de la versión en la nube de Qwen3.6-27B, activar el razonamiento no produjo un aumento significativo de la calidad. Dado que los tokens de razonamiento se contabilizan entre los tokens generados por el motor de inferencia, desactivarlos redujo entre dos y tres veces la cantidad de tokens necesarios, lo que la empresa tradujo en una aceleración cercana al doble en la ejecución de tareas, con un impacto en la calidad que describió como insignificante.

La empresa utilizó la versión con cuantización de 4 bits porque era solo ligeramente peor que la versión de 8 bits en las pruebas de referencia y porque la generación de tokens limitada por la memoria era aproximadamente el doble de rápida que en la versión de 8 bits. Sin embargo, la velocidad de prefill no difería entre las versiones de 4 bits, 8 bits y 16 bits en las pruebas iniciales, lo que llevó al equipo a examinar las operaciones matemáticas dentro del motor.

El cuello de botella invisible: la fase de prefill

Según las cifras de JetBrains, la velocidad de prefill puede alcanzar aproximadamente 3.700 tokens por segundo en una tarjeta RTX 5090 con la configuración predeterminada, frente a unos 650 tokens por segundo en un M5 antes de la optimización. En las tareas de investigación dentro de archivos, la mayor parte del tiempo se dedicaba a procesar el contexto, no a generar la respuesta en sí.

El equipo descubrió que una gran parte de las operaciones matriciales durante el prefill se ejecutaba con precisión de 16 bits, incluso cuando los pesos estaban comprimidos a 4 bits, porque los pesos se convertían a 16 bits antes de ejecutar las operaciones. Dado que el M5 cuenta con instrucciones específicas para cálculos de 8 bits, JetBrains aplicó una corrección al paquete MLX-VLM para trasladar algunas operaciones matriciales de las capas de self-attention a 8 bits, y obtuvo un aumento cercano al 40 % en la velocidad de prefill. La modificación no incluyó las capas de full-attention, cuyos pesos siguen teniendo una precisión de 16 bits incluso con la cuantización.

La empresa relaciona su enfoque actual en el M5 precisamente con estas instrucciones de cálculo: los chips M4 no las tienen, y JetBrains afirma que los cálculos de 16 bits en el M4 son entre un 20 % y un 30 % más lentos durante la fase de prefill que en el M5.

Acelerar la generación y elegir el modelo

JetBrains activó conjuntamente dos métodos de speculative decoding: la predicción de múltiples tokens MTP mediante un modelo borrador independiente y la coincidencia de n-gramas, que busca secuencias repetidas en el contexto para predecir los tokens siguientes. En algunos casos, se pueden aceptar aproximadamente tres tokens propuestos mediante MTP y hasta ocho tokens adicionales mediante la coincidencia de n-gramas, lo que proporcionó a la generación una aceleración de hasta el doble.

La empresa explica que Qwen3.8-27B no era la mejor opción en los Mac, porque necesita el razonamiento para funcionar bien. Cuando se desactiva, la calidad se deteriora considerablemente y el modelo puede quedarse atascado en un bucle en el que repite la misma llamada a la herramienta. Activarlo en un nivel medio aumenta aproximadamente cinco veces la cantidad de tokens generados, lo que en la práctica provoca una ralentización cercana a cuatro veces, porque el tiempo de prefill no cambia demasiado. Por ello, Qwen3.6-27B sigue siendo por ahora la opción más adecuada para ejecutar Junie localmente en hardware Mac según la evaluación de JetBrains.

Lectura de certi.news: ¿qué cambia realmente?

Esta experiencia muestra que medir un agente de programación local únicamente por el número de tokens generados por segundo puede ofrecer una imagen incompleta. El usuario también espera la carga de archivos, la reutilización del contexto y la ejecución de llamadas a herramientas, etapas que pueden convertirse en un cuello de botella antes de que comience la generación. En la práctica, las modificaciones de Junie reducen la necesidad de volver a leer archivos, mientras que la corrección de MLX-VLM aumenta la velocidad de procesamiento del contexto en el M5 y la desactivación del razonamiento reduce la cantidad de tokens necesarios.

Pero las limitaciones también son claras: la primera versión se centra en el M5, desactivar el razonamiento puede no ser adecuado para los modelos que dependen de él para mantener la calidad y el aprovechamiento de las actualizaciones de progreso está relacionado con el comportamiento de Qwen3.6. JetBrains afirma que dispone de prototipos para admitir DGX Spark y RTX 5090 y que también está estudiando tarjetas con una capacidad de 24 GB, pero el material no ofrece una fecha ni especificaciones para la disponibilidad de estas versiones. Por tanto, Junie Local representa un paso técnico importante hacia agentes de programación locales más utilizables, no una prueba de que la experiencia se haya equiparado a la de todos los modelos en la nube o esté disponible en todo tipo de hardware.

Fonte da notícia
JetBrains Blog
Abrir fonte original ↗
ف
Autor

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

Na mesma categoria

Você também pode gostar

Ver todas as notícias