Inicio / Artículos

De GPT-1 a los modelos de razonamiento: qué cambió en cada generación para los desarrolladores

Trace la familia GPT desde el preentrenamiento de 2018 hasta los modelos de razonamiento, observe qué ideas aportó cada generación, y conozca como se denominan GPT-4o Vision y Structured Outputs de Python.

Editor: REACTAPP.TOP10 min de lectura2213 palabras

Fuentes: The GPT Timeline: How OpenAI Built the Brains of Modern AI

Cada llamada a una API de un modelo de lenguaje moderno se basa en un conjunto de ideas que surgieron poco a poco a lo largo del tiempo: entrenamiento generativo previo, escalabilidad, aprendizaje in-contexto, alineación mediante retroalimentación humana, multimodalidad nativa y cálculos adicionales durante la inferencia. Saber de dónde proviene cada idea facilita enormemente comprender qué puede hacer un modelo, por qué falla y qué características de la API utilizar. Esta guía recorre la línea evolutiva de GPT desde sus orígenes en 2018 hasta los modelos centrados en el razonamiento, y finaliza con dos ejemplos prácticos en Python para GPT-4o.

Antes de GPT: por qué fue importante el Transformer

Hasta alrededor de 2018, la mayor parte del procesamiento del lenguaje natural dependía de redes neuronales recurrentes y su variante LSTM. Estos modelos leían el texto token por token, lo que dificultaba la paralelización del entrenamiento y hacía que la información de las partes iniciales de un texto largo se desvaneciera antes de llegar al final.

En 2017, un artículo de investigación de Google titulado “Attention Is All You Need” presentó la arquitectura Transformer. Esta sustituyó la recursividad por la autoatención, permitiendo que cada posición en una secuencia se relacionara directamente con todas las demás. OpenAI desarrolló su serie GPT (Generative Pre-trained Transformer) sobre esta arquitectura, y en junio de 2018 publicó el artículo “Improving Language Understanding by Generative Pre-Training”, que en ese momento pocos reconocieron como el inicio de un cambio significativo en la informática.

2018 a 2019: entrenamiento previo y los beneficios de la escala

GPT-1: primero entrenamiento previo, luego ajuste fino

El primer modelo era modesto según los estándares actuales:

  • 117 millones de parámetros
  • un Transformer solo con decodificador y 12 capas
  • entrenado en BooksCorpus, aproximadamente 5 GB de texto

Su aporte fue un método en dos etapas. Primero, el entrenamiento previo no supervisado con texto sin procesar permitió al modelo adquirir conocimientos gramaticales, asociaciones factuales y la estructura del lenguaje simplemente al predecir el siguiente token. Segundo, una pequeña cantidad de ajuste fino supervisado en una tarea específica, como el análisis de sentimientos o la clasificación, fue suficiente para obtener resultados de vanguardia, sin necesidad de diseñar una arquitectura personalizada para cada tarea.

GPT-2: aparece el comportamiento de tipo “zero-shot”

El siguiente paso se centró principalmente en el tamaño:

  • 1.5 mil millones de parámetros, aproximadamente diez veces más que GPT-1
  • Entrenado con WebText, alrededor de 8 millones de páginas web o 40 GB de texto
  • Con suficiente escala, el ajuste fino pasó a ser opcional para muchas tareas. GPT-2 demostró aprendizaje sin entrenamiento previo: una instrucción como “Traducir al francés:” podía orientarlo hacia una tarea en la que nunca había sido entrenado explícitamente, simplemente porque continuar ese texto implicaba razonablemente producir una traducción.

    GPT-2 también es recordado por la forma en que se lanzó. OpenAI retuvo inicialmente el modelo completo, argumentando que podría utilizarse para producir en masa noticias falsas y spam, y lo lanzó por etapas. Esa decisión desató un debate público duradero sobre la seguridad de la IA y sobre si los modelos poderosos deberían publicarse abiertamente.

    2020 a 2022: aprendizaje in-context y alineación

    GPT-3: ejemplos dentro de la instrucción

    GPT-3 traspasó el umbral de la investigación al producto comercial:

    • 175 mil millones de parámetros, más de cien veces GPT-2
    • entrenado con una combinación de texto web filtrado, libros y Wikipedia, extraído de aproximadamente 45 TB de datos brutos antes del filtrado

    Su capacidad más destacada era el aprendizaje con pocos ejemplos a gran escala. Con dos o tres ejemplos funcionales en la instrucción, el modelo continuaba con el patrón, ya fuera escribiendo código, versos o extrayendo campos de datos desorganizados. Esto se conoce como aprendizaje in-context: el modelo se adapta únicamente a partir de la instrucción, sin actualizaciones de pesos.

    No obstante, el GPT-3 base tenía una limitación grave. Estaba entrenado solo para continuar textos, no para actuar como un asistente útil, por lo que a menudo inventaba hechos, se desviaba del tema o ignoraba lo que se le había pedido. El diagrama a continuación resume la solución implementada: la alineación mediante retroalimentación humana convierte a un predictor de texto en bruto en un modelo que sigue instrucciones.

    [Raw Pre-training]  --> Predicts likely text continuations (often rambling or toxic)
            │
            ▼  + RLHF (Human Feedback Alignment)
    [InstructGPT Engine] --> Follows instructions safely and concisely
    

    InstructGPT y ChatGPT: aprender de las preferencias humanas

    La solución fue el Aprendizaje Reforzado a partir de Retroalimentación Humana (RLHF). Las personas calificaron las salidas del modelo, un modelo de recompensas aprendió esas preferencias y luego el modelo de lenguaje se optimizó para generar respuestas que los humanos prefirieran. Los modelos InstructGPT resultantes siguieron las instrucciones de manera mucho más directa y útil.

    El 30 de noviembre de 2022, OpenAI lanzó ChatGPT, basado en la serie GPT-3.5. La combinación de conversaciones multietapa con un comportamiento ajustado mediante RLHF lo convirtió en la aplicación para consumidores de mayor crecimiento hasta ese momento, con una estimación de 100 millones de usuarios en aproximadamente dos meses.

    2023 a 2024: razonamiento profesional y multimodalidad

    GPT-4: razonamiento más sólido, imágenes y herramientas

    GPT-4, lanzado en marzo de 2023, desplazó el foco desde la capacidad para generar texto fluido hacia el razonamiento en tareas académicas y profesionales. OpenAI informó resultados como una puntuación alrededor del 90% en un examen simulado de abogacía y altas calificaciones en muchos exámenes AP. También incorporó la comprensión de imágenes, y la familia GPT-4 adquirió funciones en las que los desarrolladores confían hoy a diario: salida en formato JSON, llamadas a funciones y uso de herramientas como ejecución de código y búsquedas en la web.

    Hay dos detalles que a menudo se mencionan incorrectamente. OpenAI no ha publicado oficialmente la arquitectura de GPT-4; la afirmación ampliamente difundida de que se trata de un modelo de tipo Mixture of Experts proviene de informes no confirmados. Además, la ventana de contexto de 128k tokens llegó con GPT-4 Turbo más tarde en 2023, y no con el lanzamiento original de marzo, que ofrecía ventanas mucho más pequeñas.

    GPT-4o: una red para texto, visión y audio

    Las experiencias de voz anteriores funcionaban mediante pipelines: un modelo transcribía el habla, otro modelo de lenguaje generaba texto y un motor separado sintetizaba el audio. GPT-4o, donde la “o” representa “omni”, maneja texto, imágenes y audio en una única red de extremo a extremo. Al eliminar las etapas intermedias, la latencia de voz se redujo a aproximadamente 200 ms y permitió al modelo percibir y producir el tono de voz en lugar de solo palabras.

    Modelos de razonamiento: uso de recursos informáticos en el momento de la inferencia

    A medida que se volvía más difícil lograr mejoras con sesiones de entrenamiento cada vez más extensas, y los datos de entrenamiento de alta calidad se convertían en una limitación creciente, la atención se desplazó hacia los cálculos en tiempo de prueba: permitir que un modelo reflexione antes de responder. La diferencia es sencilla. Una respuesta clásica de GPT comienza a generar tokens tan pronto como llega la solicitud, mientras que un modelo basado en el razonamiento primero analiza una secuencia interna de pensamientos y solo luego emite su respuesta final.

    Traditional GPT Response:  Prompt ──> Immediate Word-by-Word Streaming
    o-Series Response:         Prompt ──> Internal Chain-of-Thought (Deliberation) ──> Final Answer
    

    Las series o1 y o3 de OpenAI están diseñadas de esta manera. En lugar de decidir inmediatamente la palabra siguiente, el modelo invierte más cálculos en explorar casos límite, verificar pasos intermedios y depurar su propio código, lo cual resulta especialmente útil en matemáticas, programación competitiva y lógica de múltiples pasos. El precio a pagar es una mayor latencia y costo, por lo que deben reservarse para problemas que requieren reflexión.

    Trabajar con GPT-4o en Python

    La historia explica por qué GPT-4o cambió el enfoque de su desarrollo día a día: en lugar de combinar un modelo de visión, un modelo de lenguaje y un motor de voz, una sola llamada a la API puede aceptar entradas mixtas. Dos ejemplos muestran las características más útiles para los desarrolladores.

    Enviar una imagen y texto en una sola solicitud

    Con GPT-4o se puede colocar texto e imágenes una al lado de la otra en el array content de un único mensaje de usuario. Una imagen puede ser transmitida como una URL pública o como datos codificados en base64. El ejemplo a continuación utiliza el SDK oficial de Python, lee la clave de API desde una variable de entorno, pide al modelo que examine una foto de concreto en busca de grietas y evalúe su gravedad, limita la respuesta con max_tokens y muestra el texto de la primera opción.

    import os
    from openai import OpenAI
    client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
    # Sending a visual inspection query directly to GPT-4o
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "Analyze this image for architectural structural damage. Identify any cracks and rate severity."
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "https://upload.wikimedia.org/wikipedia/commons/e/e1/Concrete_crack_example.jpg"
                        },
                    },
                ],
            }
        ],
        max_tokens=500,
    )
    print(response.choices[0].message.content)
    

    El contenido es una lista de elementos con tipo definido (text y image_url), lo que permite combinar varias imágenes e instrucciones en una sola vez. Considere la salida como una evaluación para revisar; todo lo relacionado con la seguridad aún requiere la intervención de un experto.

    Obtener JSON válido según el esquema con Salidas Estructuradas

    Extraer JSON de manera fiable desde un modelo solía requerir una formulación cuidadosa de las instrucciones además de un análisis defensivo con expresiones regulares. Las Salidas Estructuradas resuelven este problema en la etapa de decodificación: la generación del modelo está restringida de modo que la salida debe cumplir con el esquema JSON que se proporcione. Con esquemas estrictos, OpenAI describe esto como una garantía de conformidad con el esquema, lo cual es más sólido que el antiguo “modo JSON”, que solo garantizaba un JSON sintácticamente válido.

    En Python, la opción más práctica es Pydantic. El ejemplo define un modelo Entity y un modelo ArticleAnalysis que incluye un título, un resumen, una puntuación de sentimiento entre -1.0 y 1.0 además de una lista de entidades; luego pasa la clase como response_format al helper parse del SDK. Este helper convierte la clase en un esquema JSON, lo envía junto con la solicitud y devuelve un objeto tipado en message.parsed.

    from openai import OpenAI
    from pydantic import BaseModel, Field
    from typing import List
    client = OpenAI()
    # Define the exact JSON schema required by your database
    class Entity(BaseModel):
        name: str
        category: str = Field(description="Person, Organization, Location, or Date")
    class ArticleAnalysis(BaseModel):
        title: str
        summary: str
        sentiment_score: float = Field(description="Score between -1.0 and 1.0")
        key_entities: List[Entity]
    # Pass the schema directly into the completion request
    completion = client.beta.chat.completions.parse(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": "You are an automated intelligence parser."},
            {"role": "user", "content": "OpenAI CEO Sam Altman announced new developer tooling in San Francisco today."}
        ],
        response_format=ArticleAnalysis,
    )
    # Extract type-safe output directly as a Python object
    result: ArticleAnalysis = completion.choices[0].message.parsed
    print(f"Summary: {result.summary}")
    print(f"Entities: {result.key_entities}")
    

    Dos notas prácticas. El helper se encontraba bajo client.beta cuando se lanzó esta función, y las versiones más recientes del SDK también lo exponen fuera del espacio de nombres beta, así que verifique la versión del SDK que utiliza su proyecto. Aunque el esquema está garantizado, los valores no lo están: una puntuación de sentimiento será un número, pero si ese número es razonable sigue siendo una decisión del modelo. Maneje los rechazos y valide las reglas de negocio como lo haría con cualquier entrada externa.

    Un vistazo a la familia GPT

    • GPT-1 (2018): 117 millones de parámetros; demostró que el preentrenamiento generativo combinado con un ligero ajuste funciona bien.
    • GPT-2 (2019): 1.5 mil millones de parámetros; rendimiento en tareas sin entrenamiento previo y un lanzamiento gradual motivado por consideraciones de seguridad.
    • GPT-3 (2020): 175 mil millones de parámetros; aprendizaje en contexto con pocos ejemplos a gran escala.
  • InstructGPT y ChatGPT (2022): el alineamiento mediante RLHF convirtió a un predictor de texto en un asistente.
  • GPT-4 (2023): razonamiento de nivel profesional, entrada de imágenes y uso de herramientas.
  • GPT-4o (2024): una sola red para texto, visión y audio con voz de baja latencia.
  • o1 y o3: modelos de razonamiento que sacrifican el tiempo de inferencia por precisión en problemas complejos.
  • Qué significa esta evolución para su stack

    • Solo escalar ya no es suficiente. Los primeros avances se debieron al número de parámetros (117M, luego 1.5B y después 175B); los progresos posteriores provinieron en gran medida de técnicas de alineamiento como RLHF, unificación multimodal y deliberación en tiempo de prueba.
    • Modelos pasados de autocompletado a acciones reales. Los modelos actuales permiten planificar, llamar a funciones y coordinar flujos de trabajo multietapa con herramientas, por lo que el diseño de agentes es ahora un tema central en la ingeniería.
    • La previsibilidad es una ventaja que puedes aprovechar. Las salidas estructuradas te permiten integrar los resultados del modelo en rutas de código tipado con un esquema fijo, en lugar de analizar texto libre.
    • La eficiencia compite ahora con el tamaño bruto. Variantes más pequeñas como GPT-4o mini y modelos de razonamiento específicos suelen superar al modelo más grande en costos y latencia para una tarea determinada, por lo que es mejor elegir según la carga de trabajo y no solo según sus capacidades generales.

    El desarrollo con estos modelos se centra cada vez más en componer sistemas de modelos, herramientas y esquemas, en lugar de enviar una sola solicitud.

    Lecturas relacionadas

  • Depuración de un Small GPT en PyTorch: Pruebas que aíslan cada fallo. — Un flujo de trabajo paso a paso para depurar un GPT a nivel de carácter en PyTorch, desde los IDs de token y el desplazamiento de destino hasta las gradientes, las pérdidas NaN y los puntos de control.
  • OCR de LLM Vision autohospedado en Go: rasterización, generación de prompts y análisis — Cómo un trabajador de Go convierte PDF médicos en JSON estructurado con Ollama, pdftoppm, instrucciones estrictas, análisis de respaldo y grupos de consumidores de Redis Streams.
  • Composición de pipelines de LangChain con LCEL: lineales, paralelos y ramificados. — Aprende a conectar prompts, modelos y analizadores en pipelines lineales, de múltiples etapas, paralelos y condicionales de LangChain mediante el operador pipe, RunnableParallel y RunnableBranch.
  • De texto sin procesar a pipelines: analizadores, LCEL, elementos ejecutables y memoria en LangChain — Cómo LangChain convierte el texto bruto del modelo en datos estructurados, compone pasos con LCEL e la interfaz Runnable, y gestiona la memoria de conversación en la actualidad.
  • Por qué los agentes de IA para la producción fallan en silencio y cómo detectar respuestas incorrectas — Un estudio de caso de doce agentes de IA para la producción muestra por qué una salida incorrecta pero plausible es el verdadero modo de fallo, y cuáles reglas de diseño mantuvieron útiles a los que sobrevivieron.