Cómo funcionan los LLM y la inteligencia artificial generativa

La inteligencia artificial generativa es un tipo de inteligencia artificial capaz de crear contenido original, como lenguaje natural, imágenes, audio y código. La salida de una inteligencia artificial generativa se basa en las entradas proporcionadas por el usuario. Una manera común de que los usuarios interactúen con la inteligencia artificial generativa es a través de aplicaciones de chat que usan lenguaje natural como entrada. ChatGPT, desarrollado por OpenAI, es un ejemplo popular de esto. Las aplicaciones de inteligencia artificial generativa que usan lenguaje natural como entrada cuentan con tecnología de modelos de lenguaje grande (LLM) para realizar el procesamiento del lenguaje natural (NLP).

Funcionamiento de la inteligencia artificial generativa

Toda la inteligencia artificial generativa se basa en modelos. Estos modelos se entrenan con grandes conjuntos de datos en forma de contenido, como lenguaje natural, imágenes, audio y código. Los modelos de inteligencia artificial generativa usan los patrones identificados en los datos de entrenamiento para generar contenido nuevo y estadísticamente similar.

El modelo de IA usa la entrada proporcionada por el usuario para crear una salida. La entrada se analiza primero en una forma de datos que el modelo pueda comprender. A continuación, el modelo usa esos datos para identificar patrones coincidentes de su entrenamiento que combina para compilar la salida final. Los modelos de inteligencia artificial generativa están diseñados para generar contenido único, por lo que no generarán la misma salida para entradas idénticas.

Las aplicaciones de inteligencia artificial generativa que admiten lenguaje natural como entrada o salida usan LLM para hacerlo. El LLM se usa para realizar NLP, que clasifica el texto de entrada y determina su opinión. El modelo de inteligencia artificial generativa usa esa clasificación y análisis de sentimiento para identificar patrones y crear la salida. Si la salida es texto, se puede usar solo LLM para generarla. Si la salida es audio o imágenes, se usan modelos adicionales para proporcionar los datos y patrones para generar salidas en ese formato.

Usos comunes de la inteligencia artificial generativa

Las aplicaciones de inteligencia artificial generativa admiten una variedad de posibles casos de uso y posibles salidas, que se exploran en las secciones siguientes.

Generación de lenguaje natural

Algunas aplicaciones de inteligencia artificial generativa pueden producir salidas de lenguaje natural, como:

  • Resúmenes con palabras profesionales para un perfil de LinkedIn
  • Descripciones enriquecidas de elementos en un escaparate en línea
  • Ideas para comidas saludables

Por ejemplo, dada la entrada del usuario Dame tres ideas para un desayuno saludable que incluya pimientos, una aplicación de inteligencia artificial generativa podría producir la siguiente salida:

Vale, aquí hay tres desayunos saludables que incluyen pimientos:

  1. Revuelto de huevo y pimienta: corta en dados algunos pimientos y saltéalos en una sartén hasta que se suavicen ligeramente. Luego, añade huevos batidos y remueve. Sirve con tostadas integrales para un desayuno nutritivo.

  2. Tostada de pimienta y aguacate: tuesta una rebanada de pan de grano entero y coloca encima pimientos cortados, aguacate hecho puré, y espolvorea con sal y pimienta. Esta es una excelente manera de obtener grasas saludables del aguacate junto con la vitamina C de los pimientos.

  3. Burrito de desayuno con pimientos: saltea algunos pimientos cortados en cubos, cebollas y huevos revueltos juntos en una sartén. A continuación, pon la mezcla en una tortilla integral y cúbrela con un poco de salsa o salsa picante. Enróllala y disfruta de un desayuno satisfactorio y nutricional.

Imagen y generación

Algunas aplicaciones de inteligencia artificial generativa producen salidas de imagen a partir de entradas de lenguaje natural. En función de la aplicación y sus modelos, es posible que los usuarios puedan especificar:

  • Las personas o las cosas que aparecen en la imagen
  • El estilo artístico en el que crear la imagen
  • Referencias para generar imágenes similares

La generación de imágenes puede crear avatares virtuales para cuentas en línea, diseñar logotipos para un negocio o proporcionar inspiración artística para los creadores. Por ejemplo, un usuario puede escribir la solicitud Crea una imagen de un elefante comiendo una hamburguesa. Una aplicación de inteligencia artificial generativa podría producir la siguiente salida:

Imagen generada por inteligencia artificial de ejemplo de un elefante comiendo una hamburguesa.

Generación de audio

Algunas aplicaciones de inteligencia artificial generativa producen salidas de audio a partir de entradas de lenguaje natural. En función de la aplicación y sus modelos, es posible que los usuarios puedan hacer lo siguiente:

  • Sintetizar voces de sonido natural a partir de texto de entrada
  • Crear música en un estilo específico o con ciertos instrumentos
  • Modificar archivos de audio de entrada en función de un criterio establecido proporcionado en lenguaje natural

La generación de audio pueden proporcionar respuestas habladas de asistentes de voz digital, agregar instrumentos de respaldo a canciones para producción musical o reproducir la voz original de un usuario a partir de grabaciones de referencia.

Generación de código

Algunas aplicaciones de inteligencia artificial generativa producen código a partir de entradas de lenguaje natural. En función de la aplicación y sus modelos, es posible que los usuarios puedan generar código que:

  • Esté en el idioma de su elección
  • Acepte una estructura de entrada y salida específica
  • Use tecnologías específicas basadas en su documentación de referencia

La generación de código puede proporcionar implementaciones rápidas de operaciones comunes, como ordenar o filtrar datos, acelerar la traducción de código de un lenguaje a otro, o responder preguntas sobre una tecnología basada en la documentación de referencia especificada. Por ejemplo, dada la entrada "Muéstrame cómo codificar un juego de tres en línea con C#", una aplicación de inteligencia artificial generativa podría generar la siguiente salida:

Este es un ejemplo sencillo de cómo se puede codificar un juego de tres en línea en C#:

using System;

namespace TicTacToe
{
    class Program
    {
        static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        static int player = 1; // Player 1 will start
        static int choice; // The number the player chooses
        static int flag = 0; // Set the flag value to 0

        // Check if the position is already marked or not
        private static int CheckPosition(char mark)
        {
            for (int i = 0; i < 9; i++)
            {
                if (board[i] == mark)
                {
                    return 1;
                }
            }
            return 0;
        }

        // The rest of the generated code has been omitted for brevity
        // ...
    }
}

Este código crea un sencillo juego de tres en línea basado en consola en C#. Usa una matriz unidimensional para representar el panel y comprueba si hay una victoria o un empate después de cada movimiento.

Cómo funcionan los LLM

Al entrenar un LLM, el texto de entrenamiento se divide primero en tokens. Cada token identifica un valor de texto único. Un token puede ser una palabra distinta, una palabra parcial o una combinación de palabras y signos de puntuación. A cada token se le asigna un id., que permite que el texto se represente como una secuencia de id. de tokens.

Después de dividir el texto en tokens, se asigna un vector contextual, conocido como inserción, a cada token. Estos vectores de inserción son datos numéricos con varios valores, donde cada elemento del vector de un token representa un atributo semántico del token. Los elementos del vector de un token se determinan en función de la frecuencia de uso de los tokens juntos o en contextos similares.

El objetivo es predecir el siguiente token de la secuencia en función de los tokens anteriores. Se asigna un peso a cada token de la secuencia existente que representa su influencia relativa en el siguiente token. A continuación, se realiza un cálculo que usa los pesos e incrustaciones de los tokens anteriores para predecir el siguiente valor vectorial. A continuación, el modelo selecciona el token más probable para continuar la secuencia en función del vector previsto.

Este proceso continúa iterativamente para cada token de la secuencia, con la secuencia de salida que se usa de manera regresiva como entrada para la siguiente iteración. La salida se crea un token a la vez. Esta estrategia es análoga a cómo funciona autocompletar, donde las sugerencias se basan en lo que se ha escrito hasta ahora y se actualizan con cada entrada nueva.

Durante el entrenamiento, se conoce la secuencia completa de tokens, pero se omiten todos los tokens que vienen después del que se está considerando actualmente. El valor previsto para el vector del siguiente token se compara con el valor real y se calcula la pérdida. Los pesos se ajustan entonces incrementalmente para reducir la pérdida y mejorar el modelo.