A principios de año, una organización llamada OpenAI (fundada inicialmente para democratizar la IA) anunció un modelo de lenguaje llamado GPT-2 con 1.500 millones de parámetros. Mostraron ejemplos de textos generados por la máquina —como un artículo sobre unicornios descubiertos en los Andes— que eran tan coherentes que daban escalofríos.
Pero lo que más ruido hizo fue su decisión de no publicar el modelo completo. Alegaron que era "demasiado peligroso" porque podría usarse para generar fake news a escala industrial. Desde entonces, han ido soltando versiones pequeñas con cuentagotas, y el debate en la comunidad técnica está que arde. ¿Es realmente un peligro existencial o es la campaña de marketing más brillante de la historia de Silicon Valley?
La predicción de la siguiente palabra
Técnicamente, GPT-2 es una evolución masiva de la arquitectura Transformer de la que hablamos hace un par de años. Mientras que el Transformer original se inventó para traducir (usando un Encoder para leer y un Decoder para escribir), GPT-2 utiliza una arquitectura Decoder-only.
Su único objetivo, su única métrica matemática durante el entrenamiento masivo con 40 Gigabytes de texto de internet, ha sido predecir estadísticamente cuál es la siguiente palabra (o token). Nada más.
El modelo no tiene una base de datos de hechos, ni "entiende" lo que es un unicornio. Simplemente ha interiorizado tan bien la estructura estadística del inglés que, si le das una frase inicial (prompt), aplica sus pesos para elegir el token más probable.
A nivel de código, generar texto con la librería transformers de HuggingFace sobre las versiones recortadas que sí han liberado se ve algo así:
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Cargamos el modelo (versión pequeña liberada) y su tokenizador
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# Le damos un inicio (prompt)
texto_inicial = "In a shocking finding, scientist discovered a herd of unicorns"
inputs = tokenizer.encode(texto_inicial, return_tensors="pt")
# Le pedimos que prediga los siguientes 50 tokens
salida = model.generate(inputs, max_length=50, do_sample=True, top_k=50)
print(tokenizer.decode(salida[0], skip_special_tokens=True))
Reflexión: La barrera del sentido común
Cuando pruebas GPT-2, notas que escribe mejor que muchos humanos (cosa que es fácil hasta para un mono), pero es propenso a sufrir "alucinaciones". Puede afirmar con total rotundidad un hecho falso porque suena estadísticamente correcto. No tiene un modelo lógico del mundo, solo un modelo estadístico de nuestro lenguaje.
Por tanto, creo que el miedo a que sea una "Inteligencia Artificial General" (AGI) es puro marketing. Sin embargo, su capacidad para escupir miles de tuits o artículos falsos sintácticamente perfectos sí es un riesgo real para la desinformación en redes sociales. Pero no porque la Inteligencia Artificial sea mala, no, es porque la gente no ttiene espiritu crítico o simplemente es imbecil.
Lo que me fascina (y aterra) de GPT-2 es que no hay ninguna revolución teórica sobre el modelo anterior; simplemente le han metido más capas, más GPUs y más datos. Si el rendimiento sigue escalando linealmente solo con inyectar más hardware... ¿dónde está el techo?