BookinglyTech News
Inteligencia artificial

Mini-AGI entrena desde cero y aprende sin parar en una GPU de 8 GB

El proyecto guarda los pesos en disco y los pagina a la tarjeta: el límite de parámetros lo pone el espacio libre, no la memoria de la GPU. Leer y entrenar son el mismo paso de código.

2 min de lecturaShow HN0 vistas

Un desarrollador que firma como volotat ha publicado en GitHub mini-AGI, un modelo de lenguaje byte a byte que entrena desde cero en una sola GPU con 8 GB de VRAM y sigue aprendiendo de todo lo que lee. El autor avisa de que es un experimento de nivel juguete y que no hay que esperar capacidades de frontera: lo que quiere demostrar es que el aprendizaje continuo sobre un único flujo de datos se puede hacer sin olvido catastrófico, y en hardware modesto.

Pesos en disco, no en la tarjeta

El truco para caber en 8 GB no es cuantizar. El entrenamiento necesita gradientes y estado del optimizador, más o menos el triple que los pesos, así que el modelo los guarda como ficheros normales en disco y va paginando a la tarjeta solo el conjunto de trabajo. El número de parámetros queda acotado por el espacio libre, no por la VRAM. Mientras entrena, añade capacidad nueva cuando se queda corto y poda lo que nadie reclama, y usa exactamente la misma ruta de código para leer que para servir.

Cada carácter no atraviesa una pila fija de capas. Pasa por dos bloques densos de preludio y luego por un bloque recurrente que se aplica hasta 24 veces, cada una eligiendo sus propios expertos de un pool compartido. El enrutado es top-8 por aplicación, no por carácter, así que a lo largo del recorrido un mismo carácter toca bastantes más de ocho expertos, y el mismo experto puede salir varias veces a distintas profundidades. No hay etiquetas ni temas asignados a nadie: el reparto de capacidad sale del propio enrutado blando, siguiendo la línea del artículo clásico de mezcla dispersa de expertos y de trabajos posteriores como Switch Transformers.

La profundidad la decide una halting head al estilo PonderNet, que puntúa cada carácter en cada fila y para en cuanto otra fila no cambiaría la respuesta. En las trazas del modelo en vivo se mueve entre 4 y 14 filas contra un techo de 24. Las posiciones son rotatorias y no llevan parámetros aprendidos, de modo que la ventana de contexto se puede alargar siguiendo el entrenamiento en lugar de reinicializar nada.

El alfabeto son los 256 valores de byte, así que no hay tokenizador que ajustar ni vocabulario nuevo que definir para un tipo de dato distinto. El repositorio apunta a corpus públicos como TinyStories y OpenHermes-2.5.

Qué falta

De momento no hay pesos publicados. La ejecución sigue en su primera pasada sobre el corpus y el autor calcula que tardará un par de semanas en terminarla a este ritmo; los ficheros se liberarán después.

La propuesta va en dirección contraria a la habitual: en vez de servir un modelo congelado que otro entrenó en un clúster, entrenar y seguir entrenando el tuyo en la tarjeta que ya tienes delante. Queda por ver si la resistencia al olvido aguanta cuando el corpus crezca y si el resultado pasa de escribir frases coherentes.