El descubrimiento
Mi descubrimiento de la API de OpenAI marcó el inicio de mi inmersión en el mundo de los modelos de lenguaje a gran escala (LLM). Al principio, mi curiosidad se despertó al integrar la API en mis proyectos personales (generación de código, ideación, investigación…). Soy un apasionado de la robótica y la domótica, intento automatizar muchas cosas y la llegada de OpenAI me fascinó por las posibilidades que ofrece en este ámbito, el paso siguiente a Google Home, Alexa, etc...
Primeros experimentos
El uso de la API del LLM comenzó con aplicaciones prácticas: ayudar a mi «mini-yo» n.º 1 con cuestiones de biología avanzada que superaban mi nivel académico; proporcionarme descripciones y reflexiones sobre ciertos temas relacionados con la ciberseguridad (el 80 % de mi uso en ese momento); y, lo más importante, ayudarme a poner en marcha un sistema de recompensas para fomentar la realización de las tareas domésticas en casa. Curiosamente, los puntos obtenidos siempre se utilizaban para desbloquear el wifi fuera del horario de actividad permitido.
Dato curioso: no dejéis que vuestro mini-yo (el n.º 3 en mi caso, que tenía 6 años en aquel momento) tenga acceso a vuestro asistente si queréis conservar vuestras fichas; se dio cuenta muy pronto de que las respuestas eran más interesantes que las de su Google Assistant, y mi presupuesto se disparó.
La llegada de ChatGPT
El lanzamiento de ChatGPT por parte de OpenAI ha consolidado las funcionalidades que antes estaban dispersas en la API, ofreciendo una interfaz unificada y más intuitiva. Mientras el mundo descubría ChatGPT y los LLM, yo descubrí que una experiencia de usuario bien cuidada podía marcar una gran diferencia: donde antes tenía que pasar por mi shell y su línea de comandos para llamar a la API según lo que quisiera hacer, ahora podía hacerlo todo en la misma interfaz.
Superar los límites
Empecé a utilizarlo a diario para corregir mis textos, comprobar el sentido de mis conversaciones en inglés y crear contenido profesional. Me acompañaba en mi día a día, hasta convertirse en la pestaña más abierta, por delante incluso de Spotify. Este uso me puso de manifiesto las capacidades, pero también los límites del modelo, especialmente en términos de precisión y fiabilidad; empecé a ponerlo a prueba en MITRE y en la extracción de TTP a partir de informes del CERT, y descubrí las alucinaciones: era capaz de responder con aplomo cuando lo que decía era falso. Y empecé a cuestionarme mi uso.
¿Pero qué? ¿Qué estás haciendo con mis datos?
El ojo de experto es una maldición profesional: analiza y juzga constantemente el entorno. El mundo de la ciberseguridad forma parte integral de mi vida. Rápidamente, mi atención se centró en la seguridad de los datos y la integridad de las interacciones con ChatGPT. La idea de introducir datos sensibles nunca me ha atraído, lo que demuestra la eficacia de las campañas de sensibilización a las que me he visto sometido durante mucho tiempo. Quería utilizarlo para temas en los que deseaba aumentar mi productividad, pero no quería darle información que no debía tener: los primeros incidentes empezaban a ser noticia (Samsung, fuga de datos, desbordamiento de prompts...) estamos en los inicios y no me había tomado realmente el tiempo de leer qué haría OpenAI con mis datos, el tiempo de retención, la eliminación real, etc... No podía seguir razonablemente con mis experimentos en el modelo de OpenAI, no con el nivel de servicio actual.
Hacia la autosuficiencia: la independencia técnica
No lo pensé mucho, no puedo prescindir de él: me ayudaba a compensar mi dislexia y me daba seguridad en mis conversaciones (significado deseado frente al percibido, sintaxis...), y en este sentido mi mujer estaba más que encantada de que le pidiera menos ayuda. Evitaba las lecturas largas pidiendo que me resumieran lo esencial de un artículo técnico, y buscaba formas de utilizarlo para mejorar mi productividad. La necesidad de controlar los datos y su procesamiento me llevó a explorar alternativas. Resultó que Llama o GPT4All acababan de hacer su aparición en escena y pude iniciar la implementación de un LLM local. Pero me enfrenté a los retos técnicos de la implementación; aún no entendía qué era un LLM, cómo funcionaba ni cuáles eran los requisitos previos necesarios, así que, como siempre, tras una buena dosis de documentación: funciona, pero es laaaargo, se cuelga y da errores. Todo lo que me gusta.
Mixtral 34B e intento de personalización
Después de trabajar con Llama y aprovechar los avances de la comunidad de código abierto, optimicé mi herramienta utilizando Llama.cpp y Hugging Face. El modelo Mixtral 34B, cuantificado para funcionar en mi Nvidia 3080 de 12 GB, ofrecía muy buenos resultados y un control total sobre mis datos, algo esencial para mis proyectos delicados. Sin embargo, el modelo tenía dificultades con el análisis de texto contextualizado, una dificultad agravada por la carga en memoria de los textos de referencia y el hecho de que se trata de un modelo genérico. A pesar de los intentos de refinar el aprendizaje, los únicos resultados tangibles fueron una factura de electricidad desorbitada y un PC que sustituyó a mi calefacción. Las pruebas con modelos más ligeros no dieron sus frutos. Incluso intenté introducir un toque de sarcasmo en una de las generaciones, y nunca me habían trolleado tanto: superó sin dificultad a mis mini-yo n.º 1 y n.º 2, pero ya no era capaz de responder correctamente.
¿Y ahora qué?
Nunca más podré prescindir de las tecnologías GPT/LLM; les saco demasiado partido y me dan tranquilidad en mi día a día. Hoy entiendo mucho mejor el ámbito de los LLM, pero las matemáticas siguen resultándome igual de complejas.
Mi LLM local gestiona tareas críticas sin depender de servicios externos; sigo beneficiándome de esta innovación al tiempo que recupero el control sobre mis datos. También tengo el control de mis proyectos y la posibilidad de experimentar sin miedo. Por supuesto, esto no resuelve las limitaciones del LLM; sigo teniendo que controlar los resultados, verificar las alucinaciones, cambiar de modelo según el contexto, etc. Pero me siento tranquilo y seguro. Hay numerosos ejemplos de incidentes y riesgos de los LLM; cada día se descubren nuevos casos. (¿Os suena el LLM Agent? Seguid atentos a Squad, hablaremos de ello). Es una oportunidad para que Fabien, nuestro experto en IA, y yo os hablemos próximamente de las recomendaciones sobre el uso de los LLM.
Para más información:
Eileen Yu. (11 de agosto de 2023). El 75 % de las empresas están aplicando o considerando prohibir el uso de ChatGPT. ZDNet. Consultado en https://www.zdnet.com/article/75-of-businesses-are-implementing-or-considering-bans-on-chatgpt/
Comunidad Hugging Face. (s. f.). Página de inicio. Consultado en https://huggingface.co/
GPT4ALL. manyoso (s. f.). Página de inicio. Consultado en https://gpt4all.io/index.html
Gerganov, G. (s. f.). llama.cpp. Consultado en https://github.com/ggerganov/llama.cpp
Jan.ai. (s. f.). Página de inicio. Consultado en https://jan.ai y https://github.com/janhq/jan
["Vale, pero quiero que GPT rinda 10 veces más en mi caso concreto"]. (Año). YouTube. Consultado en https://www.youtube.com/watch?v=Q9zv369Ggfk
[¿Qué es la generación aumentada por recuperación (RAG)?]. (Año). YouTube. Consultado en https://www.youtube.com/watch?v=T-D1OfcDW1M
¿Una pequeña anécdota para terminar?
Ya os he dicho que utilizo mi LLM principalmente para compensar mi dislexia; a veces tengo la impresión de ser claro y coherente, pero no es así en absoluto cuando veo las sugerencias de mi LLM. En uno de mis experimentos, intenté enseñarle a anonimizar mis entradas, para ver si se podía confiar en un modelo para proteger datos sensibles, etc. Así que le di la instrucción de sustituir los nombres, apellidos y lugares por información ficticia. No funcionó, no fue concluyente. Lo dejé de lado para dedicarle un poco más de tiempo más adelante. Pero es que, entretanto, se me olvidó y, sin darme cuenta, puse en marcha mi LLM para que me corrigiera un intercambio dirigido a un contacto importante; no estaba seguro de mi redacción en inglés, de si tenía todo el sentido que quería, pero solo tenía dudas sobre una parte de mi texto... ¿Se imaginan lo que pasó? Tenía un nombre en el texto, al principio, donde no tenía ninguna duda, así que solo revisé la parte que me interesaba: efectivamente, era más acertado que yo, la generación tenía más sentido, copié y pegué, y lo envié. Respuesta del contacto: «¿Quién es Toto?»





