BookinglyTech News
Inteligencia artificial

Un clasificador logístico aprende a etiquetar commits y deja al LLM solo los dudosos

Regresión logística entrenada sobre la marcha para resolver los commits obvios, y el LLM solo para los casos en los que el clasificador no está seguro.

2 min de lecturaLobsters0 vistas

Un proyecto pequeño necesitaba etiquetar 21.000 commits como mantenimiento o desarrollo nuevo. La vía obvia, un LLM barato y bastante capaz —gpt-5.6 Luna, vía OpenRouter—, funcionó: sobre un conjunto de prueba reducido sus etiquetas coincidieron con las que habría puesto el autor, que las verificó a mano. El problema no fue el dinero, sino la latencia: alrededor de 1,5 segundos por llamada, y eran 21.000 llamadas. La solución que publica el blog entropicthoughts es meter un clasificador rápido delante y dejar al modelo solo los casos difíciles.

Regresión logística que se entrena sobre la marcha

El atajo trabaja con la frecuencia de palabras del mensaje de commit. Si el clasificador ya ha visto suficientes ejemplos y su predicción es muy clara, se queda con ella; si no, llama al LLM y aprovecha la respuesta para seguir entrenando.

El autor descarta la elección obvia, naïve Bayes, porque asume independencia entre características y aquí las palabras de un mensaje no son independientes. Se queda con una regresión logística, y ahí está lo que le pareció elegante: se puede entrenar de forma incremental, un ejemplo cada vez, ajustando los pesos con descenso de gradiente sobre la log-verosimilitud. El código son entre 3 y 10 líneas, según cómo se cuenten, y remite a la derivación de la regresión logística para quien quiera el desarrollo.

Los detalles: tasa de aprendizaje 0,1, sin regularización por defecto (todo configurable), pesos iniciales vacíos y peso cero para las palabras no vistas. La predicción sale como probabilidad y solo se acepta si es extrema: por debajo de 0,08 se etiqueta como mantenimiento, por encima de 0,92 como desarrollo nuevo. En medio, decide el LLM.

Hay un detalle que evita que el clasificador se estropee solo. Solo se le pide predicción si ha visto más de 50 muestras y, además, con un 95% de probabilidad; el 5% restante va directo al modelo grande. Así se impide que una racha larga de una sola etiqueta le enseñe que la probabilidad es 0 o 1.

La parte del LLM

La llamada al modelo se hace con la herramienta de línea de comandos llm, de Simon Willison, invocada desde Perl con open2: se lanza el proceso, se le escribe el prompt y se lee la respuesta entera. El prompt está pensado para tener sobre todo tokens de entrada y pocos de salida, así que el gasto es bajo. El cuello de botella es el tiempo de respuesta, no la factura.

El autor reconoce que si de verdad le importara la latencia no pasaría por Perl para llamar a un CLI en Python que manda la petición a OpenRouter, sino que iría directo a la API de OpenAI. Lo dice él mismo: el artículo va sobre todo de compartir la técnica.