BookinglyTech News
Inteligencia artificial

CauterRule mueve su umbral semántico de 0,80 a 0,62 y casi duplica el recall

El sidecar open source que aprende reglas de los fallos repetidos de agentes corrige un canal semántico que estaba bien probado y nunca llegaba a dispararse.

3 min de lecturaDev.to0 vistas

CauterRule, un sidecar open source que aprende reglas permanentes a partir de los fallos repetidos de agentes, ha publicado la v0.3.1. El proyecto ya está en GitHub y en PyPI, y se instala con pip install cauterule. El cambio es de tres líneas en el matcher y de casi el doble en resultados: el umbral del canal semántico baja de 0,80 a 0,62, y el recall sobre el conjunto dorado sube de 0,170 a 0,377 con GPT y de 0,228 a 0,427 con Llama. Es decir, unas 1,9 veces más.

Un canal correcto que nunca se disparaba

El matcher de replay combina tres señales: 0,5·token-F1 + 0,3·bigram + 0,2·semántica (coseno de MiniLM). El término semántico era el que debía capturar paráfrasis, del estilo de "non-fast-forward" frente a "Updates were rejected because the remote contains work that you do not have locally". Tenía dos problemas encima.

El primero era el suelo en 0,80: solo contaba si el coseno lo superaba. Una paráfrasis con cero tokens en común se queda como mucho en 0,2 en la mezcla, por debajo de cualquier umbral de promoción, así que el canal no podía cambiar un veredicto ni queriendo. El segundo era la firma diluida: el embedding del texto incluía la etiqueta de clase de fallo ("ci/lint"). Sobre un disparador breve, el coseno medido era 0,631 con firma limpia y 0,547 con la etiqueta mezclada. La etiqueta era un impuesto sobre cada coincidencia semántica, y se cobraba justo en los casos que el canal existía para salvar.

Durante la v0.3.0 el canal estaba correcto, con tests unitarios en verde y apagado. Los tests pasaban porque montaban casos limpios de alta similitud, que no se parecen a una paráfrasis real.

Qué se cambió y qué se movió

La v0.3.1 mueve el suelo a 0,62, calibrado contra la distribución medida de cosenos de paráfrasis verdaderas (las coincidencias reales se agrupan cerca de 0,63) y no contra la intuición de "seguro". Además, el disparador se embebe contra la firma de fallo sin la etiqueta de clase, y el matcher toma el máximo entre las dos vistas; la etiqueta puede seguir informando el enrutado, pero deja de gravar el coseno. Por último, las coincidencias se anclan en una firma estructurada y no en la prosa de toda la traza. No hay cambio de modelo ni de prompt, y los pesos de la mezcla siguen igual: eso queda abierto.

Los números del informe de campo, hecho sobre 2 modelos en la nube, 40 corpus y 4.742 ejecuciones de trayectoria, acompañan: los adaptadores pasan de 0/60 a 60/60, y las referencias raw/ci de 0/110 a 21/47 y 26/47. La expansión de referencias sube de 19/303 a 201/303 y 198/303, unas diez veces más.

El autor avisa de que esas dos filas dependen a la vez del suelo y del arreglo de referencias, y que no ha instrumentado la separación, así que no reparte la atribución. También hay una corrección de método: el "30–50%" de la versión anterior era una estimación puntual con n=10 y sin intervalo de confianza; ahora es n=60 con 54 referencias de replay, un 82% [0,70; 0,89] y un 83% [0,72; 0,91], con cota inferior por encima de la puerta del 70%.

Queda por ver si 0,62 es portable. Está calibrado sobre ese corpus, esos dos modelos y MiniLM; cambia cualquiera de los tres y la distribución se mueve. El propio autor lo apunta como pregunta sin respuesta.