Inteligencia 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 tanto de la gestión del contexto y de la etapa de prefill como de la velocidad de generación de tokens.

2026-08-24
8 min de lectura
344 visitas
certi.news Editorial Team
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 mediante el modelo Qwen3.6-27B. La empresa explicó que alcanzar un rendimiento práctico no fue únicamente 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 compañía 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 dispositivos MacBook M5, lo que explica que las optimizaciones anunciadas se concentren 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. Después, el modelo ejecuta llamadas a herramientas, como comandos de Bash y la lectura y escritura de archivos, antes de devolver al modelo los resultados de esas operaciones. Con cada nueva solicitud, el contexto se amplía y es posible reutilizar los datos de KV-cache que el modelo procesó en la solicitud anterior.

En los modelos en la nube, el agente puede volver a solicitar un archivo cuando lo necesita, porque la etapa 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 resulta costoso en términos de tiempo en los modelos locales. Por ello, modificó la lógica de inferencia local para añadir cada nueva solicitud directamente al contexto en movimiento, en lugar de limitarse a las partes que considera pertinentes 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 vez de procesarlo de nuevo.

La empresa también cambió el orden de los datos que Junie envía al iniciar una nueva sesión de programació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 en 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 del modelo, entre ellas la lógica que genera una descripción breve de la tarea. La empresa considera aceptable la concesión limitada en la experiencia de uso a cambio de reducir las solicitudes. Asimismo, desactivó el modo de agentes múltiples, 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 reasoning 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. Puesto 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. La empresa tradujo esto en una aceleración cercana al doble en la ejecución de tareas, con un impacto que describió como insignificante en la calidad.

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 varió entre las versiones de 4, 8 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 etapa 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 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 parte considerable 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. Como el M5 dispone de instrucciones específicas para cálculos con precisión de 8 bits, JetBrains aplicó una corrección al paquete MLX-VLM para trasladar a 8 bits algunas operaciones matriciales de las capas de self-attention, con lo que obtuvo un aumento cercano al 40 % en la velocidad de prefill. La modificación no incluyó las capas de full-attention, cuyos pesos permanecen con precisión de 16 bits incluso con la cuantización.

La empresa relaciona su enfoque actual en 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 M4 son entre un 20 % y un 30 % más lentos en la etapa de prefill que en 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 pueden aceptarse aproximadamente tres tokens propuestos mediante MTP y hasta ocho tokens adicionales mediante la coincidencia de n-gramas, lo que proporcionó una aceleración de hasta el doble en la generación.

La empresa explica que Qwen3.8-27B no era la mejor opción en dispositivos Mac, porque necesita reasoning para funcionar bien. Al desactivarlo, la calidad se deteriora considerablemente y el modelo puede quedarse atascado en un ciclo 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, ya que el tiempo de prefill no cambia demasiado. Por ello, Qwen3.6-27B sigue siendo actualmente, según la evaluación de JetBrains, la opción más adecuada para ejecutar Junie localmente en hardware Mac.

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 los archivos, mientras que la corrección de MLX-VLM aumenta la velocidad de procesamiento del contexto en M5 y la desactivación del reasoning reduce el número de tokens necesarios.

Pero las limitaciones también son claras: la primera versión se centra en M5, desactivar el reasoning puede no ser adecuado para los modelos que dependen de él para mantener la calidad y el aprovechamiento de las actualizaciones de progreso está vinculado al 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 24 GB de capacidad, pero el material no proporciona 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 ya sea equivalente a la de todos los modelos en la nube o esté disponible en todo tipo de hardware.

Fuente de la noticia
JetBrains Blog
Abrir fuente original ↗
c
Autor

certi.news Editorial Team

Lo que necesitas saber

JetBrains explica que ejecutar Junie Local de forma local en MacBook equipados con el chip M5 depende de optimizar la gestión del contexto, la fase de prefill y el motor de inferencia, no solo de elegir un modelo comprimido. Según las pruebas de la empresa, desactivar el razonamiento, utilizar cuantización de 4 bits y aplicar correcciones en MLX-VLM ayudó a acelerar la ejecución de tareas, aunque el soporte actual sigue centrado en el hardware M5.

  • JetBrains ejecutó la primera versión de Junie Local de forma local utilizando Qwen3.6-27B en un MacBook M5, sin inferencia en la nube.
  • JetBrains modificó Junie para mantener los archivos dentro del contexto y reutilizar la KV-cache, lo que reduce la necesidad de procesar los archivos de nuevo.
  • La empresa desactivó el razonamiento en la versión local y afirmó que esto redujo entre dos y tres veces la cantidad de tokens necesarios, con un impacto limitado en la calidad en las pruebas con Qwen3.6-27B.
  • JetBrains utilizó una versión de 4 bits del modelo y afirmó que la generación de tokens era aproximadamente el doble de rápida que con una versión de 8 bits.
  • La modificación de MLX-VLM para trasladar algunas operaciones de self-attention a una precisión de 8 bits aumentó aproximadamente un 40 % la velocidad de prefill en M5.
  • La empresa activó speculative decoding mediante MTP y coincidencia de n-gramas, lo que en algunos casos permitió acelerar la generación hasta el doble.

Preguntas frecuentes

¿Por qué se centró JetBrains en los MacBook M5?

Porque los chips M5 cuentan con instrucciones específicas para cálculos de 8 bits que la empresa aprovechó para acelerar algunas operaciones de prefill, mientras que los chips M4 no disponen de esas instrucciones.

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

Según la evaluación de JetBrains, Qwen3.6-27B mantuvo una calidad adecuada después de desactivar el razonamiento, mientras que otros modelos necesitaban el razonamiento para conservar la calidad o se volvían mucho más lentos al activarlo.

¿Qué función cumple la fase de prefill en el rendimiento del agente local?

La fase de prefill procesa el contexto inicial antes de generar la respuesta. JetBrains descubrió que el procesamiento de archivos y del contexto representaba una parte considerable del tiempo de las tareas, por lo que se centró en reutilizar el contexto y acelerar las operaciones matriciales.

Explorar esta historia

Temas y entidades relacionados

De la misma categoría

También te puede interesar

Ver todas las noticias