Bueno Noderos y alimañas múltiples del foro ya sabeis que en el post anterior https://www.nodo313.net/post/creando-una-ia-en-casa-akili.72906/
la última vez que posteé os contaba el progreso con la IA casera, pues nuevamente estoy aquí para poneros al día y decir que tuve con AKILI (es el nombre de la IA que estoy creando, para aquellos que no leyeron el post anterior) altos y bajos, entrenamientos de más de 70 horas tirados a la basura (ya veréis cuando llegue la factura de la luz) y pequeños avances en paralelo. Os resumo un poco.
Como sabéis estoy creando a AKILI desde 0, sin tomar modelos de IA entrenados ni modelos base anteriores ni leches, vamos una criatura que o será muy tonta o muy lista pero será mía 100%. El punto de partida para que empiece a aprender español, ha sido la Wikipedia en castellano; hasta aquí todo bien, descargué la misma, le realicé una limpieza a los datos (ojo con esto que es lo más importante, lo aprendí a base de ostias) y la puse a entrenar con la aplicación que creé en Python, y bueno tuve que rehacerla un par de veces para afinarla y mejorarla, pero eso estaba dentro de los planes, las mejoras son bienvenidas.
Deciros que el primer entrenamiento de unas 50 horas (llamémosle AKILI V1.0) fue al final un fracaso, ya que los valores y parámetros debían mostrar que la curva de aprendizaje y validación (comparación entre lo aprendido y datos que no conoce) debía tener una caída continua y descendente que tendiera a 0 (cosa prácticamente imposible, pero deseable) , pues cuando el modelo llevaba unos 30,000 mil pasos (ciclos) empezó la curva a volverse horizontal y sobre los 40.000 pasos ya era claramente una curva ascendente (señal de que AKILI no aprendía y lo que es peor, que empezaba a memorizar patrones como un loro) FRACASO NÚMERO 1. Así que la asesiné, y revisé las configuraciones, la velocidad de aprendizaje y otros parámetros. Mi teoría era que el modelo se estaba quedando pequeño y por eso fallaba. Así que en lugar del modelo pequeño que era AKILI de unos 50 millones de parámetros, pasé a ampliarlo y lo doté de unos 145 a 150 millones de parámetros y vuelta a entrenar……
70 horas después y unos 55,000 pasos (ciclos) AKILI V2 parecía que iba aprendiendo, las graficas mostraban unas curvas de caída continuas pero muy lentas en la bajada, pero notaba algo raro, en las pruebas de generación de texto (cada 2000 ciclos, la aplicación compara los valores y si han mejorado, guardan una copia del modelo….digamos que a medida que aprende, se guarda) al ejecutar el programa beta de chat con el modelo, aun sabiendo que el modelo no generaría texto coherente, si que esperaba “algo” al menos medio legible. FRACASO NÚMERO 2 a veces en el texto generado, mostraba etiquetas HTML y seudocódigo WIKI. Así que con dolor en el alma por el tiempo que se perdió, me tocó asesinar a AKILI V2 y analizar el proyecto….
La conclusión era obvia a mí entender, el tamaño del modelo no era la causa (aun así ampliar el modelo fue una buena decisión) si estaba “hablando” con código html y demás etiquetas, algo en los datos de entrenamiento no estaba bien, así que me tocó realizar una nueva limpieza de datos ya que efectivamente, había quedado “morralla” en forma de seudocódigo anteriormente que no había detectado, tras lo cual puse en marcha a AKILI V2.1 con los datos limpios y empezando de 0, y de momento lleva unas 36 horas de entrenamiento, solo ha realizado unos 13900 pasos (ciclos) pero las curvas son inmejorables, anteriormente con 70,000 pasos la validación y el aprendizaje llegó a 6.5 (recordar debe ir a 0), y en estos momentos ya va por 5.4 y casi sin ruido. Vamos que parece que está aprendiendo más rápido y mejor.
Bueno prometo realizar un pequeño video explicándolo todo para que lo entendáis mejor, y no creáis que mientras el modelo sigue entrenando yo estoy cruzado de manos y mirando la pantalla, no, la idea es que AKILI sea modular, de manera que se le puedan ir agregando capacidades sin empezar de 0, de esa forma será útil y hasta cierto punto autónoma; y bueno la mayor carencia que tienen los modelos actuales por un lado es el problema de la memoria, es decir cuando se alcanza un límite de tokens, os obligan a empezar un nuevo chat y el modelo olvida todo lo anterior, en la medida de lo posible esto es un reto, pero estoy implementando un nuevo modulo llamado COGNITUS que su función será recordar las conversaciones con los usuarios (al menos lo importante), de igual forma estoy trabajando en otro modulo ACCION que le permitirá a AKILI realizar tareas de forma autónoma (parecido a los famosos artifact de Anthropic) de manera que podrás darle una tarea y AKILI la realizará de forma autónoma, para que se entienda, imagina que le dices a AKILI “Crea una carpeta en el directorio raíz, y dentro de la misma otra llamada documentos y dentro un archivo .txt con un resumen de X” AKILI, de forma autónoma creará lo que le has pedido.
Bueno como veis no me aburro, pero sí que me retuerzo muchas veces, así que noderos y gente de mal vivir, se aceptan sugerencias, contribuciones y críticas, ya que antes de que termine el verano, espero tener si todo va bien un MVP “Producto Mínimo Viable”. Además como a los pobres nos cuesta mucho el hardware, se abre la posibilidad de que donéis pasta para al menos adquirir un par de graficas para IA tipo TESLA V100 DE 12 o 16 GB de segunda mano o lo que sea, que con las RTX3060 de 8GB veo que se acaba el verano y AKILI aun no termina de entrenar. Se escuchan opciones. Y formas de colaborar. NO SEAIS RATAS, SEGURO QUE ALGO SE PUEDE HACER.
la última vez que posteé os contaba el progreso con la IA casera, pues nuevamente estoy aquí para poneros al día y decir que tuve con AKILI (es el nombre de la IA que estoy creando, para aquellos que no leyeron el post anterior) altos y bajos, entrenamientos de más de 70 horas tirados a la basura (ya veréis cuando llegue la factura de la luz) y pequeños avances en paralelo. Os resumo un poco.
Como sabéis estoy creando a AKILI desde 0, sin tomar modelos de IA entrenados ni modelos base anteriores ni leches, vamos una criatura que o será muy tonta o muy lista pero será mía 100%. El punto de partida para que empiece a aprender español, ha sido la Wikipedia en castellano; hasta aquí todo bien, descargué la misma, le realicé una limpieza a los datos (ojo con esto que es lo más importante, lo aprendí a base de ostias) y la puse a entrenar con la aplicación que creé en Python, y bueno tuve que rehacerla un par de veces para afinarla y mejorarla, pero eso estaba dentro de los planes, las mejoras son bienvenidas.
Deciros que el primer entrenamiento de unas 50 horas (llamémosle AKILI V1.0) fue al final un fracaso, ya que los valores y parámetros debían mostrar que la curva de aprendizaje y validación (comparación entre lo aprendido y datos que no conoce) debía tener una caída continua y descendente que tendiera a 0 (cosa prácticamente imposible, pero deseable) , pues cuando el modelo llevaba unos 30,000 mil pasos (ciclos) empezó la curva a volverse horizontal y sobre los 40.000 pasos ya era claramente una curva ascendente (señal de que AKILI no aprendía y lo que es peor, que empezaba a memorizar patrones como un loro) FRACASO NÚMERO 1. Así que la asesiné, y revisé las configuraciones, la velocidad de aprendizaje y otros parámetros. Mi teoría era que el modelo se estaba quedando pequeño y por eso fallaba. Así que en lugar del modelo pequeño que era AKILI de unos 50 millones de parámetros, pasé a ampliarlo y lo doté de unos 145 a 150 millones de parámetros y vuelta a entrenar……
70 horas después y unos 55,000 pasos (ciclos) AKILI V2 parecía que iba aprendiendo, las graficas mostraban unas curvas de caída continuas pero muy lentas en la bajada, pero notaba algo raro, en las pruebas de generación de texto (cada 2000 ciclos, la aplicación compara los valores y si han mejorado, guardan una copia del modelo….digamos que a medida que aprende, se guarda) al ejecutar el programa beta de chat con el modelo, aun sabiendo que el modelo no generaría texto coherente, si que esperaba “algo” al menos medio legible. FRACASO NÚMERO 2 a veces en el texto generado, mostraba etiquetas HTML y seudocódigo WIKI. Así que con dolor en el alma por el tiempo que se perdió, me tocó asesinar a AKILI V2 y analizar el proyecto….
La conclusión era obvia a mí entender, el tamaño del modelo no era la causa (aun así ampliar el modelo fue una buena decisión) si estaba “hablando” con código html y demás etiquetas, algo en los datos de entrenamiento no estaba bien, así que me tocó realizar una nueva limpieza de datos ya que efectivamente, había quedado “morralla” en forma de seudocódigo anteriormente que no había detectado, tras lo cual puse en marcha a AKILI V2.1 con los datos limpios y empezando de 0, y de momento lleva unas 36 horas de entrenamiento, solo ha realizado unos 13900 pasos (ciclos) pero las curvas son inmejorables, anteriormente con 70,000 pasos la validación y el aprendizaje llegó a 6.5 (recordar debe ir a 0), y en estos momentos ya va por 5.4 y casi sin ruido. Vamos que parece que está aprendiendo más rápido y mejor.
Bueno prometo realizar un pequeño video explicándolo todo para que lo entendáis mejor, y no creáis que mientras el modelo sigue entrenando yo estoy cruzado de manos y mirando la pantalla, no, la idea es que AKILI sea modular, de manera que se le puedan ir agregando capacidades sin empezar de 0, de esa forma será útil y hasta cierto punto autónoma; y bueno la mayor carencia que tienen los modelos actuales por un lado es el problema de la memoria, es decir cuando se alcanza un límite de tokens, os obligan a empezar un nuevo chat y el modelo olvida todo lo anterior, en la medida de lo posible esto es un reto, pero estoy implementando un nuevo modulo llamado COGNITUS que su función será recordar las conversaciones con los usuarios (al menos lo importante), de igual forma estoy trabajando en otro modulo ACCION que le permitirá a AKILI realizar tareas de forma autónoma (parecido a los famosos artifact de Anthropic) de manera que podrás darle una tarea y AKILI la realizará de forma autónoma, para que se entienda, imagina que le dices a AKILI “Crea una carpeta en el directorio raíz, y dentro de la misma otra llamada documentos y dentro un archivo .txt con un resumen de X” AKILI, de forma autónoma creará lo que le has pedido.
Bueno como veis no me aburro, pero sí que me retuerzo muchas veces, así que noderos y gente de mal vivir, se aceptan sugerencias, contribuciones y críticas, ya que antes de que termine el verano, espero tener si todo va bien un MVP “Producto Mínimo Viable”. Además como a los pobres nos cuesta mucho el hardware, se abre la posibilidad de que donéis pasta para al menos adquirir un par de graficas para IA tipo TESLA V100 DE 12 o 16 GB de segunda mano o lo que sea, que con las RTX3060 de 8GB veo que se acaba el verano y AKILI aun no termina de entrenar. Se escuchan opciones. Y formas de colaborar. NO SEAIS RATAS, SEGURO QUE ALGO SE PUEDE HACER.