En este artículo, queremos intentar aclararte todas las dudas que puedas tener en relación con los modelos de lenguaje como ChatGPT que, como bien sabes, son parte ya de nuestro día a día.
¿Tienes claro que son los modelos de lenguaje, las diferencias entre ChatGPT y GPT-3 o qué usos tienen en la actualidad y de cara a un futuro no tan lejano?
Vamos a empezar por el principio: ¿qué son los modelos de lenguaje? Los modelos de lenguaje son un componente fundamental del procesamiento del lenguaje natural y han acaparado gran atención en los últimos años debido a su notable rendimiento en diversas tareas, como el reconocimiento de voz, la traducción automática y el resumen de textos. En esencia, los modelos de lenguaje están diseñados para predecir la distribución de probabilidad de la siguiente palabra en una secuencia de palabras, dadas las palabras precedentes. Para ello se utilizan arquitecturas complejas, como las redes neuronales recurrentes o los modelos transformers, capaces de procesar grandes cantidades de datos textuales y extraer patrones significativos.
Un modelo Transformer es una red neuronal que utiliza un mecanismo de auto-atención para averiguar las relaciones importantes entre los datos de entrada[1]. Con una inmensa cantidad de datos y conectando diferentes unidades de Transformers, los modelos de lenguaje son capaces de encontrar relaciones lingüísticas a diferentes niveles de comunicación. Por ejemplo, las dependencias entre las diferentes partes de una oración[2]: artículos-sustantivos, verbos-adverbios, etc.
Existen multitud de arquitecturas diferentes que se pueden utilizar. Entre todas, los Large Language Model como GPT3 usan una estructura llamada Decoder, donde el modelo intenta predecir el siguiente token1 en función de los precedentes y de su entrenamiento.
En general, estos modelos aprenden a asociar palabras y frases entre sí, construyendo una representación interna del lenguaje que les permite realizar diversas tareas, entre ellas la generación y comprensión del lenguaje.
Esto podemos aprovecharlo para tareas como completar textos, resúmenes, extracción de información, clasificación o detección de sentimiento.
En particular, ChatGPT es un AI chatbot desarrollado por OpenAI™ que utiliza el procesamiento del lenguaje natural (NLP) para generar texto similar al humano a partir de la información que se le proporciona manteniendo cierta memoria sobre el contexto que se va generando durante la conversación. Se lanzó en noviembre de 2022 y se ha optimizado para el diálogo.
ChatGPT está construido sobre un modelo de lenguaje llamado GPT-3.5, más concretamente text-davinci-003 según la nomenclatura de OpenAI™ como puedes ver en la siguiente lista2. Sobre ese modelo se ha añadido una capa de Reinforcement Learning con Human Feedback (RLHF) que ha permitido mejorar sus capacidades conversacionales.
Como imaginarás, GPT-3 no es el único modelo de lenguaje. Desde la publicación del artículo de Google Research en 2018 sobre la arquitectura Transformer que dio lugar al modelo BERT, el primer modelo de lenguaje capaz de entender el contexto, se han realizado numerosas variaciones y mejoras del modelo, incluso con entrenamiento para dominios específicos (BioBERT, SciBERT, LegalBERT, finBERT...). Posteriormente, los modelos de lenguaje han ido aumentando en tamaño3, incluyendo cada vez más parámetros como GPT-2 (1.5B4) en 2019, Turing-NLG de Microsoft (17B) y GPT-3 (175B de parámetros) en 2020 o Megatron-Turing NLG (con 530B de parámetros) en 2021.
Es posible que te preguntes qué otros modelos están disponibles, ya sean comerciales o de código abierto. En este sentido Hugging Face5 es un excelente punto de partida para explorar los modelos disponibles. Esta plataforma ofrece a los desarrolladores la capacidad de realizar el ciclo completo de una demostración para probar las capacidades de los modelos. Además, cuenta con una impresionante colección de más de 100.000 modelos pre-entrenados descargables, 20.000 conjuntos de datos con diversos tipos de licencias de uso y una sección llamada "Spaces" donde se pueden probar una amplia variedad de demos de diferentes categorías6. Incluso puedes desplegar tus demos para ejecutarlos de forma gratuita. En la siguiente imagen puedes hacerte una idea de la cantidad de modelos que están desarrollando7.
¿Y cómo puedo utilizarlos en mis aplicaciones? Dependiendo del número de parámetros, los modelos pueden ser ejecutados en equipos locales o en infraestructuras con recursos GPU8. Sin embargo, dado el tamaño de los modelos, es común utilizar APIs9 proporcionadas por las compañías que los comercializan para su ejecución.
Esto nos lleva a OpenAI vs Open AI (comercial vs open source) que puede ser un factor importante que considerar al elegir qué modelo utilizar. Las compañías que ofrecen modelos comerciales suelen brindar soporte técnico y actualizaciones regulares, además de garantizar la privacidad y seguridad de los datos. Por otro lado, los modelos de código abierto (open source) permiten una mayor flexibilidad y personalización, pero pueden requerir un mayor conocimiento técnico para su implementación y mantenimiento.
En última instancia, la elección dependerá de las necesidades específicas del proyecto y de los recursos disponibles. Si se requiere una solución rápida y confiable, un modelo comercial puede ser la mejor opción. Si se dispone de un equipo de desarrollo y se necesita una solución personalizada, un modelo de código abierto podría ser más adecuado. O una combinación de ambos.
Hablando de aplicaciones, ¿cuáles son las aplicaciones en las que más están impactando los modelos de lenguaje?
- Procesado Inteligente de Documentos: resúmenes abstractivos, extracción de información o clasificación avanzada de documentos.
- Generación automática de código: generación basada en requerimientos mediante lenguaje natural, correcciones de código, documentación o mantenimiento de aplicaciones.
- Interfaces conversacionales y chatbots
Quizás hayas oído que la prompt es un elemento central para sacar todo el rendimiento a estos modelos. ¿En qué consiste exactamente? Prompt Engineering es el proceso de diseñar y optimizar el texto de entrada (prompt) para un modelo de lenguaje, con el objetivo de mejorar su rendimiento y capacidad de generación de texto coherente y relevante en NLP. Algunas de las principales características13 que debería tener una buena prompt son:
Sin embargo, a pesar de sus impresionantes capacidades, los modelos lingüísticos no están exentos de limitaciones, y su eficacia depende de varios factores, como la calidad de los datos de entrenamiento y la tarea a realizar. No obstante, los modelos lingüísticos representan un hito importante en el campo de la inteligencia artificial y encierran un enorme potencial para el futuro de la interacción persona-máquina.
Además de los factores mencionados anteriormente, existen otros desafíos importantes que los modelos de lenguaje enfrentan en la actualidad.
El primero de ellos es el sesgo o bias. Los modelos de lenguaje se entrenan en base a grandes cantidades de datos de texto, pero estos datos pueden contener prejuicios culturales, políticos o sociales que se reflejan en el modelo. Esto puede llevar a resultados sesgados o discriminatorios, lo que puede ser un problema serio en aplicaciones críticas como la toma de decisiones en justicia, contratación o selección de candidatos.
Otro reto es la precisión o accuracy. La precisión se refiere a la capacidad del modelo de lenguaje para producir resultados precisos y correctos en una tarea específica. Aunque los modelos de lenguaje han mejorado significativamente en los últimos años, todavía pueden cometer errores y generar resultados inexactos. Esto es especialmente cierto en tareas complejas como la traducción automática o la generación de texto coherente.
Por último, está el coste. El entrenamiento de modelos de lenguaje requiere grandes cantidades de recursos computacionales y financieros, especialmente para los modelos más grandes y complejos. Esto puede limitar el acceso a esta tecnología a empresas o individuos con recursos limitados.
Cómo has podido ver, los modelos de lenguaje, como ChatGPT, se han convertido en una parte importante de nuestra vida diaria. Estos modelos están diseñados para predecir la distribución de probabilidad de la siguiente palabra en una secuencia de palabras, dadas las palabras precedentes, y se utilizan en tareas como el reconocimiento de voz, la traducción automática y el resumen de textos.
Los modelos de lenguaje más grandes, como GPT-3, se basan en la arquitectura Transformer, los mecanismos de auto-atención y cómo un diseño correcto de las prompts pueden tener un impacto fundamental en los resultados.
Sin embargo, estos modelos también tienen limitaciones, como el sesgo o bias y la precisión, y requieren grandes cantidades de recursos computacionales y financieros.
Quiero aprovechar esta oportunidad para agradecer sinceramente a Vanessa Bueno y Antonio Menta del equipo de desarrollo de Dolffia™ pertenecientes al equipo de Innovation & Strategic Investments por su valiosa colaboración en la redacción de este artículo. Su experiencia y conocimiento han sido fundamentales para dar forma y profundidad al contenido. También quiero expresar mi reconocimiento a Ignacio Barahona, manager en Data & Intelligence y product owner de Dolffia™, por su visión en cuanto a la aplicación de estas tecnologías en activos de negocio.