Un asistente de código que no llegó a nacer
Quise entrenar un asistente de código en mi propio PC con Soup, sobre todo para aprender la técnica. La técnica funcionó, el asistente nunca encontró para qué servir y lo abandoné.

Soup promete entrenar un modelo de lenguaje de 8B en una tarjeta gráfica de 4 GB con un solo fichero de configuración. Mi PC tiene 6 GB de memoria de vídeo y 32 GB de RAM, así que las cuentas parecían salir. El plan era montar un asistente de código propio, un modelo que ayudara a programar desde mi propio equipo, y el objetivo de verdad era aprender la técnica.
Exámenes en una caja sin red
Antes de entrenar nada hay que saber de dónde se parte, y eso pide exámenes. Preparamos unos exámenes que ejecutan el código de cada respuesta dentro de un contenedor sin red, como quien corrige exámenes en un aula sin ventanas. Tres modelos sin entrenar sacaron su nota de partida en dos pruebas públicas y en un examen mío de diez preguntas.
| Modelo | HumanEval+ | MBPP+ | Examen propio |
|---|---|---|---|
| Qwen2.5-Coder 1.5B | 44,5 % | 66,1 % | 4/10 |
| Qwen2.5-Coder 3B | 65,9 % | 71,4 % | Sin medir |
| Qwen2.5-Coder 7B | 70,7 % | 79,1 % | 9/10 |
El 3B rinde casi como el 7B con menos de la mitad de tamaño, y esa fue la primera lección, que hay que medir antes de suponer que más grande es mejor.
Después vinieron los datos de entrenamiento. De 200.000 ejemplos quedaron unos 62.000 buenos, y quitamos 62 que se parecían demasiado a los exámenes, porque un alumno que ha visto las preguntas no demuestra nada. Ahí apareció la segunda lección. Nuestros conjuntos «normal» y «alta calidad» también se diferenciaban en el tipo de problemas, y un experimento solo vale si compara cosas que se diferencian en una sola variable. Lo detectamos antes de entrenar.
La memoria que la tarjeta no tiene
La función estrella de Soup, el layer streaming, es la que promete meter un modelo de 8B en una tarjeta de 4 GB, y funciona. En mi PC dio exactamente el mismo resultado que el método normal. Lo frágil es todo lo que la rodea. Hubo que sortear varios fallos de Soup y de las piezas que usa, y uno de ellos copiaba 1 GB a la tarjeta en cada palabra generada.
Y la memoria real es menor que la nominal. Windows se queda con parte de la tarjeta, hay partes del modelo que no se comprimen, y el Linux que corre dentro de Windows guarda ficheros en RAM que dentro cuentan como libres y para Windows están ocupados. Esto último paró dos veces las pruebas.
Un especialista sin oficio
Con la técnica aprendida quedaba la pregunta que debería haber ido primero. Un modelo pequeño y local no compite como generalista con las herramientas grandes, y solo tiene sentido como especialista en una tarea estrecha. Así que cambiamos de rumbo hacia droneobservatory, el código de EODI, y medimos su gasto real.
Tampoco compensaba. El gasto es de unos 39 USD al mes, y el 80 % lo hace el modelo experto con las fichas de noticia, que son la tarea más difícil y necesitan el texto de los artículos, que no se guarda. Sustituir todo el modelo base ahorraría como mucho unos 5 USD al mes. Lo que más ahorraría allí no es entrenar nada, sino revisar las reglas que mandan fichas al experto, las de «crítico» y «poca seguridad», y esa mejora sigue pendiente.
La técnica salió bien. Lo que nunca apareció fue un entregable que justificara seguir, y sin saber qué se quiere entregar ni para qué, los experimentos acaban siendo pruebas sueltas y no hay manera de saber cuándo parar. Así que paré.
Bitácora
Abandono
Abandoné el proyecto al no encontrar un entregable que mereciera la pena.
Cambio de rumbo hacia droneobservatory
Al ver que un asistente de código pequeño no me iba a ser útil, cambiamos de rumbo hacia droneobservatory y medimos su gasto real. Las cuentas están más arriba, en el texto.
Datos de entrenamiento
Preparamos los datos de entrenamiento. De 200.000 ejemplos quedaron unos 62.000 buenos, y quitamos 62 que se parecían demasiado a los exámenes.
Exámenes y nota de partida
La fase 0 se completó entera. Los exámenes ejecutan el código en una caja sin red, y tres modelos sin entrenar sacaron su nota de partida, que es la de la tabla.
Un asistente propio en mi PC
Planteamos un asistente de código propio en mi PC, que tiene 6 GB de memoria de vídeo y 32 GB de RAM. El objetivo principal era aprender la técnica.
Evaluación de Soup
Soup es una herramienta para entrenar modelos de lenguaje con un solo fichero de configuración. Su función estrella, el layer streaming, permite entrenar un modelo de 8B en una tarjeta de 4 GB. Nos pareció interesante, aunque con muchas funciones poco probadas.