GPT-3
GPT-3 es el modelo de lenguaje de OpenAI de 2020 con 175.000 millones de parámetros, que aprendía tareas a partir de ejemplos en su prompt y allanó el camino para ChatGPT.
GPT-3 (Transformer generativo preentrenado 3) es un modelo de lenguaje grande (LLM) de 175.000 millones de parámetros que OpenAI describió en mayo de 2020 en el artículo Los modelos de lenguaje aprenden con pocos ejemplos. Era más de 100 veces mayor que su predecesor GPT-2, y su principal resultado fue el aprendizaje en contexto: con la descripción de una tarea y unos pocos ejemplos en la indicación, el mismo modelo congelado podía traducir, responder preguntas o hacer operaciones aritméticas sin ningún ajuste fino. OpenAI nunca publicó los pesos y solo ofreció GPT-3 a través de su API, lanzada en junio de 2020. Los descendientes de GPT-3 ajustados con instrucciones dieron lugar a los modelos GPT-3.5 que impulsaban ChatGPT y convirtieron a la familia GPT en un nombre conocido por todos a finales de 2022.
Arquitectura y entrenamiento#
GPT-3 es un transformador de solo decodificador con el mismo diseño que GPT-2, pero a mayor escala. El modelo más grande tiene 96 capas, una anchura de 12.288, 96 cabezas de atención de 128 dimensiones cada una y una ventana de contexto de 2.048 tokens; sus capas alternan entre atención densa y atención dispersa con bandas locales. Reutiliza la tokenización BPE a nivel de bytes de GPT-2, con un vocabulario de 50.257 tokens. El artículo entrenó ocho modelos de distintos tamaños, desde 125 millones hasta 175.000 millones de parámetros, cada uno con 300.000 millones de tokens extraídos de Common Crawl filtrado (el 60 % de la mezcla de entrenamiento), WebText2 (el 22 %), dos corpus de libros (un 8 % cada uno) y la Wikipedia en inglés (el 3 %), utilizando las GPU V100 en un clúster proporcionado por Microsoft. Estos hiperparámetros explican el tamaño y el coste de entrenamiento del modelo:
# GPT-3 175B: layers, width, and context from the paper's Table 2.1, plus GPT-2's vocabulary
n_layers, d_model, vocab_size, context = 96, 12288, 50257, 2048
# Each decoder block holds 4 * d^2 attention weights and 8 * d^2 feed-forward weights (4x hidden width)
blocks = n_layers * 12 * d_model**2
embeddings = (vocab_size + context) * d_model # token and learned position embeddings
params = blocks + embeddings
print(f"Parameters: {params / 1e9:.1f} billion ({blocks / params:.1%} in the decoder blocks)")
# Training compute: about 6 FLOPs per parameter per token, over 300 billion training tokens
flops = 6 * params * 300e9
print(f"Training compute: {flops:.2e} FLOPs = {flops / (1e15 * 86400):,.0f} petaflop/s-days")Imprime 174.600 millones de parámetros, el 99,6 % en los bloques del decodificador, y 3.14e+23 FLOP, o 3.637 petaflop/s-días, en consonancia con los 174.600 millones de parámetros y los 3.14e+23 FLOP que figuran en el apéndice del artículo.
Aprendizaje con pocos ejemplos y en contexto#
El artículo evaluó tres configuraciones de indicaciones. Cero ejemplos ofrece solo una instrucción, un ejemplo añade un único ejemplo resuelto y pocos ejemplos añade tantos ejemplos como quepan en la ventana de contexto, normalmente entre 10 y 100. El rendimiento aumentó tanto con el tamaño del modelo como con el número de ejemplos: en la prueba de respuesta a preguntas TriviaQA, el modelo de 175.000 millones de parámetros obtuvo un 64,3 % sin ejemplos, un 68,0 % con un ejemplo y un 71,2 % con pocos ejemplos; este último resultado superó al de los sistemas ajustados con el mismo formato cerrado, sin consultar fuentes externas. Las indicaciones con pocos ejemplos convirtieron la ingeniería de indicaciones en una forma estándar de usar los LLM, y los resultados respaldaron la idea de las leyes de escalado, según la cual los modelos más grandes aprenden más del contexto. La misma idea de usar indicaciones en vez de volver a entrenar llega a la detección de objetos con YOLOE-26, cuyas indicaciones visuales utilizan cuadros dibujados alrededor de ejemplos en una imagen de referencia para definir una clase que el modelo encuentra después en imágenes nuevas sin actualizar ningún peso.
De GPT-3 a ChatGPT#
Microsoft obtuvo en septiembre de 2020 una licencia exclusiva del modelo subyacente de GPT-3, y Codex de OpenAI, descendiente de GPT-3 ajustado con código público, impulsó la primera versión de GitHub Copilot en 2021. GPT-3 básico generaba texto correctamente, pero seguía mal las instrucciones, así que OpenAI aplicó el ajuste con instrucciones y el aprendizaje por refuerzo a partir de comentarios humanos (RLHF). Los etiquetadores prefirieron las respuestas del modelo InstructGPT de 1.300 millones de parámetros a las del GPT-3 de 175.000 millones. Esa línea dio lugar a GPT-3.5 y ChatGPT en noviembre de 2022 y, después, al GPT-4 multimodal en marzo de 2023. OPT-175B de Meta y BLOOM de BigScience reprodujeron modelos de la escala de GPT-3 con pesos abiertos en 2022.
GPT-3 y modelos relacionados#
- GPT-2: El predecesor de 1.500 millones de parámetros de 2019, con la misma arquitectura y el mismo tokenizador, pero aproximadamente cien veces más pequeño y con un contexto de 1.024 tokens.
- GPT-4: El sucesor de 2023, que acepta imágenes además de texto y sigue las instrucciones con mucha más fiabilidad tras el posentrenamiento.
- BERT: Modelo de Google de 2018 compuesto solo por un codificador, que lee texto en ambas direcciones y es adecuado para tareas de clasificación y extracción.
Limitaciones#
El propio artículo de GPT-3 enumera muchas de las limitaciones del modelo. Se repite y pierde coherencia en pasajes largos, comete errores básicos de sentido común físico y, como los LLM posteriores, afirma hechos falsos con seguridad; ahora se denominan alucinaciones. Los autores midieron sesgos de género, raza y religión en sus respuestas, y descubrieron que algunos conjuntos de prueba de referencia se habían filtrado en los datos web de entrenamiento. También era difícil distinguir su generación de texto de la escritura humana: los evaluadores solo identificaron correctamente el 52 % de los artículos de noticias de 200 palabras escritos por el modelo de 175.000 millones de parámetros. OpenAI retiró los modelos originales de API ada, babbage, curie y davinci el 4 de enero de 2024 y los sustituyó por babbage-002 y davinci-002.










