En el capítulo anterior de esta serie de artículos presentamos algunos conceptos básicos sobre la Inteligencia Artificial: qué tipos de IA existen o qué son los modelos de lenguaje. En esta entrega vamos a profundizar algo más en estos últimos.
Los modelos de lenguaje o LLM por sus siglas en inglés (Large Language Models) son sistemas informáticos diseñados para comprender, interpretar y generar lenguaje humano. Estos modelos utilizan técnicas de aprendizaje automático, especialmente aprendizaje profundo (deep learning), para procesar grandes cantidades de datos lingüísticos y aprender patrones y estructuras.
Algunas características de los Modelos de Lenguaje
- Aprendizaje supervisado: los LLM se entrenan utilizando grandes conjuntos de datos que contienen ejemplos de texto, en los que se proporciona al modelo el texto de entrada y la salida deseada (puede ser la siguiente palabra en una oración, la traducción a otro idioma, etc.).
- Aprendizaje no supervisado: algunos LLM también se entrenan de manera no supervisada, lo que significa que no necesitan ejemplos de entrada y salida específicos. En cambio, aprenden patrones y estructuras del lenguaje a partir de grandes cantidades de texto sin etiquetas.
- Capacidad de generación: uno de los aspectos más destacados de los LLM es su capacidad para generar texto de manera coherente y contextual. Pueden completar oraciones, responder preguntas o incluso crear texto completamente nuevo que se ajuste al estilo y contenido del lenguaje con el que fueron entrenados.
- Escalabilidad: los LLM de gran escala, como GPT-4 (Generative Pre-trained Transformer 4), han demostrado una sorprendente capacidad para manejar tareas diversas y comprender contextos complejos. Estos modelos están compuestos por miles de millones de parámetros, lo que les permite capturar una amplia gama de patrones lingüísticos.
- Transferencia de conocimiento: los LLM preentrenados pueden ser afinados para tareas específicas con conjuntos de datos más pequeños y específicos. Esto se conoce como transferencia de conocimiento o fine tuning y permite que los modelos adapten su capacidad lingüística a tareas particulares.
Los modelos de lenguaje tienen la capacidad de generar textos coherentes y relevantes. Sin embargo, esto no equivale necesariamente a un texto verdadero.
GPT-4 y su aplicación ChatGPT es el modelo de lenguaje más popular y ha tenido un impacto muy significativo en una variedad de aplicaciones, incluyendo la traducción automática, la generación de texto creativo, la asistencia virtual o la respuesta a preguntas, entre otros. Junto a este, otros modelos son Bard y Gemini, desarrollados por Google; LlaMA, que es un modelo open source desarrollado por Meta, o Claude, desarrollado por Anthropic.
Sin embargo, en este punto hay que hacer una aclaración muy importante. Como se ha mencionado antes, los modelos de lenguaje tienen la capacidad de generar textos coherentes y relevantes. Sin embargo, esto no equivale necesariamente a un texto verdadero. Los LLM han sido entrenados para trabajar con el lenguaje a partir de relaciones estadísticas entre términos, pero no para comprender realmente el contenido de lo que generan, y mucho menos para distinguir lo verdadero de lo falso o lo correcto de lo incorrecto. Por ello, es importante supervisar y ajustar el contenido generado por el modelo de lenguaje para asegurarnos de que es adecuado al estilo y los objetivos de comunicación específicos que buscamos.
Hablar con la IA: prompts y frameworks
Los modelos de lenguaje han sido la llave para la gran popularización de la IA, puesto que nos permiten trabajar con herramientas de inteligencia artificial sin necesidad de conocer un lenguaje o código específico. Basta con utilizar el lenguaje natural para escribir prompts y la máquina nos entenderá.
Prompt es otro concepto que se ha popularizado en los últimos meses, hasta el punto de llegar a plantear una nueva profesión, el prompt engineer (aunque no está todavía claro que vaya a tener un recorrido profesional muy largo). Pero, ¿qué es un prompt?
Un prompt es una instrucción que se utiliza para comunicarse con un modelo de lenguaje basado en inteligencia artificial. Esta entrada puede ser una pregunta, una declaración o una solicitud específica que se proporciona al modelo para obtener una respuesta o generar contenido.
La elección de un prompt adecuado es importante para obtener resultados precisos y útiles. Existen estructuras de prompt que los modelos como ChatGPT entienden mejor y que podemos utilizar para optimizar los resultados obtenidos. Estas estructuras se denominan frameworks y hay multitud de ellas. A continuación vamos a ver solo algunas.
RTF (Role-Task-Format)
Es una estructura básica y de propósito general. Consiste en dirigirnos a la IA del siguiente modo: “Actúa como un [rol]. ¿Puedes hacer [tarea] en formato [formato]?”
Al indicarle a la IA que actúe con un determinado rol limitamos el rango de vocabulario que puede utilizar, obteniendo así respuestas más adecuadas. Y al especificar un formato para la salida podemos obtener resultados más precisos, como una lista, una tabla o un diagrama.
Cadena de pensamiento
Este framework es adecuado para tareas de análisis, toma de decisiones o resolución de problemas. Consiste en añadir ‘paso a paso’ al final del prompt, de forma que el modelo de lenguaje nos proporcione una respuesta en varias partes en la que podemos seguir el razonamiento que ha llevado a las conclusiones finales. Si en alguno de esos pasos se desvía del objetivo establecido inicialmente podemos corregir a partir de ese punto sin necesidad de repetir todo el proceso.
RISEN (Role – Instructions – Steps – End goal – Narrowing)
Este framework es más complejo y es adecuado para tareas con limitaciones específicas o aquellas en las que debemos seguir unas pautas claras. Un ejemplo de prompt estructurado en modo RISEN sería así:
Rol: Actúa como [rol].
Instrucciones: Escribe un post sobre [tema].
Pasos: 1. Empieza con una introducción; 2. Escribe dos secciones principales detalladas sobre [tema]; 3. Finaliza con una conclusión.
Finalidad: La finalidad del post es informar sobre [tema].
Restricciones: máximo 500 palabras; evita vocabulario técnico; usa lenguaje claro […].
Programar con la IA
Una aplicación específica de la inteligencia artificial a través de los LLM es la escritura de código para el desarrollo de aplicaciones y sitios web.
Como programadores, la IA puede ayudarnos de al menos cuatro formas:
- Generación de código: la IA puede generar código en múltiples lenguajes de programación (PHP, C#, C+, Javascript…) automáticamente a partir de comandos de lenguaje natural.
- Optimización del código: la IA puede optimizar el código existente para mejorar su rendimiento y eficiencia.
- Detección de errores: la IA puede detectar errores en el código y proporcionar soluciones para corregirlos.
- Optimización del flujo de trabajo: la IA puede optimizar el flujo de trabajo del desarrollo de software al automatizar tareas repetitivas y tediosas, como proporcionar sugerencias de autocompletado y reducir así el tiempo necesario para escribir código.
Al trabajar con la IA para programar debemos tomar en consideración algunas cuestiones relativas a la privacidad de los datos. Las aplicaciones de IA que usamos online utilizan toda la información que reciben para continuar con su entrenamiento. Si además se trata de aplicaciones que son propiedad de empresas privadas, la opacidad sobre qué hacen con esos datos aún es mayor. Por ello, debemos ser muy cuidadosos con la información que proporcionamos a la IA para que genere código, ya que podríamos estar vulnerando acuerdos de confidencialidad con clientes o incumpliendo la legislación sobre protección de datos.
Sobre este tema y otras cuestiones relacionadas con los desafíos éticos y legales que supone la IA trataremos en una próxima entrada de esta serie de artículos.