El 23 de Mayo de 2023, acogimos, como ya es habitual en Domodesk, a dos alumnos en prácticas Erasmus+ italianos, sabíamos que habían estudiado un curso de desarrollo web (formación profesional), y también conocíamos, que contrariamente a otros alumnos que hemos tenido en prácticas, iban a estar con nosotros hasta el 10 de Agosto, da tiempo para hacer cosas chulas.
Una vez aquí, Filippo y Manuel, intentamos conocer sus intereses y desvelar aquello que pudiera ser motivador para unas prácticas, se les planteo el poder desarrollar un proyecto, con el ánimo de, si se conseguía algún resultado, perfecto, pero si no se conseguía, que al menos, fuera un camino de aprendizaje divertido.
Dicho y hecho, después de llevar meses siguiendo la frenética evolución de la Inteligencia Artificial (IA) en Domodesk y con ganas de hacer algo, tomamos la decisión de emprender el proyecto dentro de esta disciplina, con la certeza de que íbamos a aprender mucho, con cualquier reto, y siguiendo la máxima con la que finalizaba nuestra nota de bienvenida el primer día
“Vi do il benvenuto e spero che, soprattutto, ci divertirem”
Y este fue el reto:
********************************************
Asistente de documentación técnica PDF
Objetivos
El proyecto pretende crear una aplicación B2B que pueda almacenar, leer y hablar sobre los documentos PDF de la empresa, y cada uno de ellos tendrá su propio banco de trabajo con su propio chatbot que podrá responder a cualquier pregunta sobre los documentos PDF que la empresa haya decidido compartir subir a la aplicación.
La idea es evaluar modelos LLM con los que podamos optar a una licencia comercial, y a poder rodar en local, sin tener que conectar a la red, para mantener la privacidad de los documentos compartidos.
Requisitos
Los requisitos de la aplicación son:
– Debe responder correctamente
– Debe ser rápida
– Debe ser de uso local (imposible a fecha de Agosto de 2023 ***)
– Debe consumir la menor cantidad de energía posible.
– Debe funcionar con un hardware que no sea demasiado exigente. (***)
Obviamente, los requisitos son indicativos y no es seguro que se cumplan todos.
***********************************************
Partiendo de ahí, comenzamos con la estrategia de aproximación, primero debíamos de conocer el “estado-del-arte” de la IA en modelos generativos, y para ello se les indicó unos canales YouTube que deberían seguir, aquí es donde empieza la fiesta, pronto descubrimos que la información fluye y evoluciona en cuestión de horas, no de días, y lo que hoy das como lo último, en unas horas estará sobrepasado por algo mejor.
El primer mes sería dedicado solo a investigar, aprender y conocer herramientas que nos posibilitaran el trabajo, hay que comentar que la última semana ya no aportaban nada los canales de video de gente difundiendo, con mucho nivel, sobre lo que acontecía en IA, de hecho, nos pasamos a leer “research papers” para los que, nadie, estábamos preparados ni teníamos formación suficiente para extraer el jugo al máximo, pero algo quedaba ;-).
Una vez finalizado ese aprendizaje, ya nos dimos cuenta de que podíamos montar un “framework” pero pensando en el futuro para cierto requerimientos, porque el objetivo de LOCAL y PRIVACIDAD se desvanecía ante la evidencia de que los LLM vistos, y créanme, fueron muchos (destrozamos HuggingFace), por no decir todos los que salían a la luz en esas fechas, no iban a poder rodar en un PC discretamente potente…eso no era posible, aunque también aprendimos que en breve lo será, porque el avance de la comunidad open source es diabólico, y con Llama 2 en abierto y con licencia comercial, sumado a modelos procesados con métodos de cuantización, agrupamiento en clústeres , dispersión y reducción, esto será posible en breve, aunque no para nuestro proyecto.
Las ideas son universales, y sabíamos que todo esto estaba en manos de otros a lo largo del mundo, de hecho, a mitad del proyecto hubo una fuga, que acabo con una imagen en Reddit, donde veíamos como OpenAI incluía algunas de estas funcionalidades perseguidas (motivo de orgullo para un grupo de inocentes que seguíamos hacia delante porque no sabíamos que era imposible), maravilloso, OpenAI nos copia!!! (LoL, aunque el nuestro tiene usos distintos y detalles únicos)
No tenemos recursos, ni maquinas con muchas (ninguna) Nvidias H100 para inferir o entrenar modelos con Tensorflow… pero teníamos, el entusiasmo, el buen trabajo en equipo, las ganas, y el talento por desarrollar, con nosotros, de dos italianos volcados con los objetivos de manera incondicional.
Invitamos a un amigo Ingeniero Biomédico y propusimos que Filippo y Manuel nos hicieran una presentación sobre cómo íbamos a acometer el desarrollo, y así fue, cuando resolvimos que ante la imposibilidad del LLM local, usaríamos el API del chatGPT 3.5, y este stack de desarrollo
Frontend: HTML, CSS y JavaScript
Backend: Python, Flask, LangChain y ChromaDB
SGBD: SQLite
Control de versiones: Git y GitHub
Nube: PythonAnywhere
Ahí nos dimos cuenta del atrevimiento, en la presentación nos dijeron que el 15 de Julio tendríamos el proyecto finalizado (eso es el empuje romántico de dos personas con entusiasmo y ganas de hacer, admirable), y haciéndonos eco de ese espíritu atrevido de las culturas mediterráneas, se nos ocurrió que el sentir “Napolitano” sumaba ese “no sé qué”, así que el proyecto tenia nombre, NapolitanoGPT. (Go Ahead!!)
En Domodesk, forzamos a que crearan un cuaderno de bitácora, donde se detalla los avances y trabajos por semanas, por nuestra experiencia, sabemos lo adecuado de documentar un proyecto de I+D (no lo detallamos aquí, porque sería farragoso de leer para no entendidos…pero está disponible para curiosos en nuestras oficinas), es una manera de ver el esfuerzo de realizar un proyecto en un mes y medio efectivo (sin contar el tiempo anterior de investigación), una locura de viaje donde nos hemos divertido, sobre todas las cosas.
Y, al final, tenemos un producto que podemos comercializar a empresas, y como dijo aquel, “lo hicimos porque no sabíamos que era imposible” , había nacido NapolitanoGPT un proyecto realizado en tiempos record, gracias al buen trabajo en equipo, y las ganas de aprender de Filippo y Manuel y su alto potencial para empaparse de todo lo nuevo, y dejarse guiar en esta maravillosa experiencia.
A fecha de hoy, y después de haber pasado por demos a más de una docena de personas, que en Domodesk, consideramos referentes en sus distintas ocupaciones y disciplinas, os presentamos el producto.
Para poder usar, por ejemplo, en servicios técnicos, subiendo manuales de productos y facilitando que personas sin formación específica puedan encontrar, de forma sencilla, respuestas, o para contratos legales, informes financieros, contenidos propietarios y material de formación. Haga cualquier pregunta sobre el contenido de sus PDFs y obtenga respuestas claras y razonadas de forma rápida.
A partir del 4 de Septiembre, esperamos tus consultas, ¿Quieres contratar un empleado listo sin los costes de un empleado?, ¿Tu servicio técnico está saturado y necesitas una herramienta que la puedan usar empleados auxiliares sin formación técnica especifica?…. habla con nosotros y deja que la Inteligencia Artificial sea una ayuda en tu empresa, ponemos a la venta el proyecto en dos modalidades, empotrado en un MiniPC o customizado en la web para las empresas que quieran algo más personalizado.
Habla con nosotros