En vivo 18.11 · Cohorte 318 nov, 19:00 MSK — taller práctico gratuito de agentes IA · Cohorte 3 en vivo inicia 23.11Taller 18 nov →Cohorte 3 (23.11)
LanzamientoAnálisis · En radarHabr AI→ original

NERVE: cómo atenuar las «neuronas SQL» en Qwen 27B y arreglar las consultas de 1C sin reentrenar

Qwen 27B, ajustada con datos de 1C, confunde el lenguaje de consultas de 1C con SQL: tablas virtuales, parámetros, construcciones ajenas. Los nuevos conjuntos de datos aportaron menos de un 1 % de mejora. En su lugar, el autor localizó las neuronas «culpables» en las capas MLP y las atenuó multiplicando las columnas de down_proj por un coeficiente menor que uno.

Procesado por IA desde Habr AI; editado por Hamidun News
NERVE: cómo atenuar las «neuronas SQL» en Qwen 27B y arreglar las consultas de 1C sin reentrenar
Fuente: Habr AI. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalHabr AI ↗
Editor jefe
Dato clave #1El mapa se construye sobre los tokens en los que difieren la respuesta correcta y la errónea
Dato clave #2La selección voraz de ediciones se valida en una mitad de control reservada
Dato clave #3La edición vive en los pesos y pasa a GGUF sin cambiar la arquitectura

Un dolor conocido: ajustaste un modelo abierto a un dominio estrecho y, aun así, se equivoca con regularidad en el mismo punto. Los nuevos conjuntos de datos apenas ayudan, y cada ronda de recopilación de datos cuesta semanas. El autor de un artículo en Habr se topó exactamente con esto en Qwen 3.8 27B, ajustada para 1C:Enterprise. El modelo escribe código en el lenguaje integrado de forma aceptable, pero confunde el lenguaje de consultas de 1C con SQL: mezcla tablas virtuales, coloca parámetros donde no van y arrastra construcciones que no existen en 1C. Los conjuntos de datos adicionales aportaron menos de un 1 % de mejora en accuracy.

La hipótesis: interfiere el SQL

Los lexemas de ambos lenguajes se parecen: SELECT, JOIN, WITH. El autor planteó que el conocimiento del SQL real empuja al modelo hacia la respuesta equivocada. Entonces, en lugar de reentrenar, se pueden encontrar las neuronas concretas que lo provocan y debilitarlas. Así nació el pipeline NERVE.

Aquí, una neurona es un componente del vector intermedio del bloque MLP (en Qwen 3.8 27B hay 17 408 por capa) junto con la columna de la matriz W_down en la que escribe. Multiplicar la columna por m equivale a multiplicar la activación de la neurona por m en cada token. Un valor de 0 apaga la neurona; 0,5 la reduce a la mitad. La arquitectura no cambia, y la edición sobrevive a la cuantización y a la exportación a GGUF. En total hay unos 1,1 millones de candidatas (64 capas), así que una búsqueda a ciegas carece de sentido.

Cómo funciona el pipeline

  1. Se toman pares «consulta correcta / errónea», como para DPO, unos dos mil. Como las respuestas coinciden en un 90–95 %, solo se comparan los tokens que difieren, que encuentra difflib. Promediar sobre toda la respuesta diluiría la señal.
  2. Los hooks en la entrada de cada down_proj recogen la activación media de las neuronas en esos tokens. En todos los pares se calculan la media, el estadístico t y la consistencia del signo. El ranking se hace por |t|, para que dos o tres pares anómalos no creen falsos líderes.
  3. La atribución por gradiente («gradiente × entrada») predice cómo cambiará el margin, es decir, cuánto prefiere el modelo la respuesta correcta frente a la errónea, si se atenúa una neurona. Una neurona con contribución negativa se considera «errónea». La atribución es cara, por lo que se calcula con 512 pares.
  4. La selección voraz prueba los candidatos uno a uno sobre los ya aceptados. La edición se conserva si el margin aumentó al menos 0,002 por token y el nll en las respuestas correctas cayó como máximo un 2 %. Como se revierten las ediciones fallidas, ya no hacen falta las predicciones lineales sumadas.

La principal defensa contra el sobreajuste: el conjunto de validación se divide en dos mitades según el hash de la consulta. Las decisiones se toman en una y el resultado se comprueba en la otra. Un conjunto se considera confirmado solo si en el control el margin aumentó y el nll no empeoró más allá de la tolerancia. Las ediciones confirmadas se acumulan en un archivo JSON junto al mapa y se excluyen de futuros candidatos.

Lo que se descubrió por el camino

Primer error: el mapa se construyó sobre tokens diferentes, pero la calidad se midió sobre toda la respuesta. El efecto se diluyó unas 25 veces. Solución: la misma máscara de diff para el mapa y la comprobación. Segundo hallazgo: potenciar las neuronas «buenas» rompía el nll con más frecuencia, mientras que suprimir las erróneas daba un aumento sostenido del margin, de modo que el modo suppress pasó a ser el principal. Otro hecho observado: la excitación en las respuestas erróneas aparece en casi todas las capas, es decir, el comportamiento tipo SQL está repartido por toda la profundidad de la red.

Limitaciones y conclusión

En el texto disponible no hay cifras finales: no sabemos cuánto aumentó el accuracy en el control. Se trata de un modelo y un conjunto de datos, y el método se basa en una aproximación lineal que falla cuando las ediciones interactúan, por lo que hace falta la selección voraz. Para los profesionales, la idea sigue siendo útil: si un modelo ajustado tiene un error persistente de «mezcla» con un dominio vecino, existe una alternativa barata a otra ronda de SFT.

Hacen falta pares de preferencia, un forward-backward sobre una muestra y una mitad de control honesta. La lección clave: calcula la métrica sobre los mismos tokens con los que construiste el mapa y verifica siempre con datos que no participaron en la selección.

Historia

Preguntas frecuentes sobre la noticia

¿Qué se sabe sobre La hipótesis: interfiere el SQL?

Los lexemas de ambos lenguajes se parecen: SELECT, JOIN, WITH. El autor planteó que el conocimiento del SQL real empuja al modelo hacia la respuesta equivocada. Entonces, en lugar de reentrenar, se pueden encontrar las neuronas concretas que lo provocan y debilitarlas. Así nació el pipeline NERVE. Aquí, una neurona es un componente del vector intermedio del bloque MLP (en Qwen 3.8 27B hay 17 408 por capa) junto con la columna de la matriz W_down en la que escribe.

Cómo funciona el pipeline?

Se toman pares «consulta correcta / errónea», como para DPO, unos dos mil. Como las respuestas coinciden en un 90–95 %, solo se comparan los tokens que difieren, que encuentra difflib. Promediar sobre toda la respuesta diluiría la señal. Los hooks en la entrada de cada down_proj recogen la activación media de las neuronas en esos tokens. En todos los pares se calculan la media, el estadístico t y la consistencia del signo. El ranking se hace por |t|, para que dos o tres pares anómalos no creen falsos líderes.

¿Qué se sabe sobre Lo que se descubrió por el camino?

Primer error: el mapa se construyó sobre tokens diferentes, pero la calidad se midió sobre toda la respuesta. El efecto se diluyó unas 25 veces. Solución: la misma máscara de diff para el mapa y la comprobación. Segundo hallazgo: potenciar las neuronas «buenas» rompía el nll con más frecuencia, mientras que suprimir las erróneas daba un aumento sostenido del margin, de modo que el modo suppress pasó a ser el principal.

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
¿Qué te parece?
Cargando comentarios…