Inteligencia artificial: de la pregunta de Turing a los grandes modelos de lenguaje
Volver a InformáticaEn 1950, el matemático Alan Turing abrió un artículo con una pregunta breve: **«¿Pueden pensar las máquinas?»**. Más de setenta años después, podemos escribir una pregunta en un programa y recibir una respuesta fluida y detallada. ¿Qué sucede en su interior? Contar qué palabras suelen aparecer juntas permite construir un programa que adivine la siguiente, pero esta técnica recuerda muy poca información. Si representamos las palabras mediante **una lista de números**, podemos compararlas mediante cálculos y combinar información del contexto. Esto nos llevará al mecanismo de **«atención»**, que permite a cada palabra consultar otras de la oración y es un componente importante del **Transformer**. Esta arquitectura se utiliza ampliamente en modelos de lenguaje. También veremos su desarrollo y entrenamiento. La generación de imágenes plantea otra pregunta: ¿cómo convierte una computadora el ruido en una imagen? El **método de difusión** nos permitirá observarlo.
No necesitas saber programar para leer esta página. Usaremos sumas, multiplicaciones y algunas potencias; explicaremos los símbolos nuevos donde aparezcan. Todos los números de los modelos interactivos se calculan realmente, y puedes comprobar cada paso.
¿Pueden pensar las máquinas?
El artículo de Turing «Computing Machinery and Intelligence» se publicó en 1950 en la revista Mind. Turing señaló enseguida una dificultad: para responder si una máquina puede pensar, primero debemos acordar qué significan «máquina» y «pensar», algo sobre lo que nunca ha existido un acuerdo completo. Por eso reemplazó la pregunta por otra que realmente pudiera ponerse a prueba.
Lo llamó «juego de imitación». Una persona interrogadora está en una habitación y escribe preguntas a dos interlocutores invisibles en otra: una persona y una máquina. Solo puede leer sus respuestas escritas y debe decidir quién es humano y quién es máquina. Turing sostuvo que, si la máquina fuese identificada como humana con una frecuencia similar a una persona real, sería difícil seguir afirmando que no piensa. Hoy este juego suele llamarse «prueba de Turing».
Otras dos ideas del artículo son relevantes aquí. Primero, Turing hizo una predicción: escribió que unos cincuenta años después, con suficiente memoria, las máquinas jugarían muy bien; tras cinco minutos de preguntas, una persona interrogadora corriente tendría como máximo un 70% de posibilidades de identificarlas correctamente. Segundo, propuso construir una máquina capaz de aprender, en lugar de escribir una a una las reglas de una mente adulta, y enseñarle como a un niño. Recuerda esta segunda idea, porque la inteligencia artificial actual sigue este camino. Nadie escribe una a una las reglas de un gran modelo de lenguaje: sus números se aprenden a partir de ejemplos.
¿Ganar ese juego demuestra que la máquina piensa? La discusión sigue abierta y esta página no pretende resolverla. Podemos hacer algo más sencillo y útil: examinar, paso a paso, qué calcula una máquina actual al responder. Así podremos juzgar la pregunta de Turing a partir de este mecanismo, y no de un misterio.
Breve historia de setenta años
El nombre «inteligencia artificial» apareció algunos años después del artículo de Turing: en 1956 se utilizó para un taller de verano en Dartmouth College. Desde entonces, el campo ha alternado entre dos grandes enfoques. El primero consiste en que las personas escriban las reglas: para diagnosticar enfermedades, se pide a especialistas que enumeren síntomas y reglas que los relacionen. El segundo es la máquina que aprende de Turing: se muestran muchos ejemplos al programa y se deja que ajuste sus propios números internos hasta que sus respuestas coincidan con ellos. Selecciona los acontecimientos de la cronología para saber qué ocurrió y a qué enfoque pertenecen.
Turing propone el juego de imitación y sugiere construir máquinas capaces de aprender.
Los programas basados en reglas siguen pasos proporcionados por personas; los modelos que aprenden ajustan su configuración numérica interna con ejemplos. Ambos enfoques tienen usos y pueden combinarse en un mismo sistema. Más datos y cálculos más rápidos permitieron aplicar el aprendizaje a tareas de imágenes y lenguaje de mayor escala. En 2017, «Attention Is All You Need» propuso el Transformer para traducción automática. Los ejemplos siguientes desarrollarán los cálculos de atención para poder comprobar de dónde sale cada número. Entender cómo combinan información nos permitirá estudiar cómo se elige el siguiente token al generar texto. Es un mecanismo importante de la inteligencia artificial, pero no representa toda la inteligencia artificial.
Adivinar la siguiente palabra
Empecemos por la forma más sencilla de un modelo de lenguaje. Lee esta oración incompleta: «El gato se sentó sobre…». Probablemente pienses en «la esterilla» o «el suelo», pero no en «una idea». Estás adivinando la siguiente palabra a partir de tu experiencia con muchas oraciones parecidas. Un modelo de lenguaje es un programa dedicado a esto: recibe un texto y asigna una probabilidad a cada posible palabra siguiente.
Aquí, una probabilidad es un número entre y que indica la proporción de veces que esperamos que ocurra algo en muchos intentos. Si una palabra aparece después en 1 de cada 4 casos, su probabilidad es . Las probabilidades de todas las posibles palabras siguientes suman , porque en la siguiente posición aparecerá exactamente una de ellas.
La forma más directa de obtener esos números es contar. Abajo hay un pequeño conjunto de oraciones, nuestro corpus, es decir, el texto del que aprenderemos. Elige una palabra: se resaltarán todas sus apariciones y la tabla mostrará qué palabras la siguen, cuántas veces y el resultado de dividir cada recuento entre el total.
| Palabra siguiente | Recuento | Probabilidad |
|---|---|---|
| cat | 3 | |
| dog | 3 | |
| fish | 1 | |
| mat | 1 | |
| rug | 1 | |
| Total | 9 |
Por ejemplo, en el corpus, después de «sobre» aparecen tres palabras: «esterilla», «alfombra» y «silla», una vez cada una. Por tanto, la probabilidad de «esterilla» después de «sobre» es , y las tres probabilidades suman .
Pulsa «Escribir una oración». El programa parte de la palabra elegida y extrae al azar la siguiente, con las probabilidades de la tabla. Luego toma esa nueva palabra como la anterior y repite hasta escribir un punto. «Predecir, elegir y añadir» es un proceso de generación autorregresiva: cada elección usa lo ya escrito. Esta lección estudia ese método. Otras tareas de los modelos de lenguaje, como completar una palabra oculta utilizando el texto de ambos lados, no tienen por qué generar en ese orden.
Contar tiene dos problemas graves. Primero, no sabe nada de las combinaciones nunca vistas. Si el corpus solo contiene «se sentó» después de «gatito», el modelo considera imposible «el gatito comió pescado», aunque sea una oración normal. Segundo, solo mira una palabra hacia atrás. En «Vivió diez años en París, así que habla con fluidez…», la continuación más adecuada, «francés», depende de «París». Mirar solo la palabra anterior no revela qué idioma es. Podemos contar secuencias más largas, pero entonces casi todas serán nuevas y la mayoría de los recuentos serán cero.
Necesitamos dos cosas. Primero, representar que unas palabras se parecen a otras, para que «hueso» pueda aprovechar lo aprendido sobre «pescado», ya que ambos pueden comerse. Segundo, permitir que cada palabra use información de cualquier posición anterior. Construiremos ambas herramientas en las próximas secciones: vectores para representar semejanzas y atención para consultar lo anterior.
En el corpus hay 3 palabras después de «sobre», y «silla» aparece una vez. ¿Qué probabilidad asigna el modelo de recuentos a «silla» después de «sobre»?
Dividir el texto en fragmentos
Antes de calcular, el modelo debe convertir el texto en números. Primero lo divide en fragmentos llamados tokens y asigna a cada uno un identificador de una lista fija: el vocabulario. ¿Por qué no usar palabras completas? Porque nunca podríamos enumerarlas todas: nombres, errores, palabras nuevas, números y otros idiomas. ¿Por qué no letras individuales? Porque producirían secuencias muy largas y cada letra aporta poco significado. Los tokenizadores reales adoptan una solución intermedia: las palabras frecuentes ocupan un token y las raras se componen de fragmentos frecuentes.
9 tokens · Las fichas grises son bytes individuales, con identificadores 0–255.
Escribe en el cuadro y observa los fragmentos. En el ejemplo chino correspondiente a «aprendizaje automático», nuestro pequeño vocabulario contiene precisamente los fragmentos «máquina» y «aprendizaje». El tokenizador elige en cada posición el fragmento conocido más largo y obtiene dos tokens. Cada ficha muestra el texto y su identificador, es decir, su número en el vocabulario.
Observa qué ocurre con un carácter ausente del vocabulario, como 咪 en 猫咪. Se divide en los bytes con los que el ordenador lo almacena. Un byte tiene 8 dígitos binarios y admite valores. La mayoría de los caracteres chinos ocupan tres bytes; aquí se escriben E5, 92 y AA en hexadecimal. Esta base usa 0–9 y A–F, por lo que cada byte se escribe con dos símbolos. Los identificadores 0–255 se reservan para esos 256 bytes: cualquier texto puede convertirse en tokens sin quedar «desconocido».
¿De dónde sale el vocabulario? También se aprende del texto. Un método habitual es la codificación de pares de bytes: empieza con caracteres individuales y fusiona repetidamente el par de fragmentos adyacentes más frecuente. Abajo lo mostramos paso a paso con un corpus de solo cuatro palabras, cada una con distinta frecuencia.
| Palabras | Frecuencia | Fragmentos actuales |
|---|---|---|
| low | 5 | low |
| lower | 2 | lower |
| newest | 6 | newest |
| widest | 3 | widest |
Primero, el par e seguido de s aparece 6 veces en newest y 3 en widest: 9 en total. El par s seguido de t también aparece 9 veces, y ninguno más. En caso de empate, el tokenizador elige el par encontrado antes en el corpus, así que «es» se convierte en un fragmento nuevo. Después, «es» seguido de «t» también aparece 9 veces y produce «est». Tras varias fusiones, el sufijo frecuente «est» y la palabra frecuente «low» forman un fragmento cada uno, mientras que las combinaciones raras siguen separadas. Un tokenizador real continúa hasta reunir decenas o cientos de miles de fragmentos. Aproximadamente, un token inglés equivale a tres cuartos de palabra.
Convertir los fragmentos en listas de números
Cada token ya tiene un identificador, pero este es solo un nombre: que el 257, «gato», y el 258, «perro», sean consecutivos no significa nada, ni el 300 tiene «más» que el 200. Queremos números con significado, parecidos para palabras parecidas. La solución es asignar a cada token una lista de números, en lugar de uno solo.
Una lista de números en un orden fijo se llama vector. Con solo dos, como , podemos dibujar una flecha desde el origen: 3 unidades a la derecha y 2 hacia arriba. Tres números permiten dibujar una flecha en el espacio. El modelo guarda los vectores en una tabla de representaciones vectoriales, o tabla de embeddings: la fila 257 contiene el vector de «gato». Convertir un token en vector consiste en consultar su fila.
Abajo hay 19 palabras con 8 números cada una. Los he diseñado manualmente y he dado un significado a cada posición para facilitar su lectura. El primero indica cuánto se parece la palabra a un animal; el segundo, a un vehículo, y así sucesivamente. Elige una palabra para ver sus 8 números. Solo podemos dibujar tres direcciones a la vez, así que el gráfico muestra tres de las ocho posiciones. Puedes elegir cuáles y arrastrar para girar la escena.
Cuando los ejes son animal, vehículo y alimento, las palabras forman tres grupos, cada uno junto a un eje. Las palabras relacionadas con personas —hombre, mujer, rey, reina, niño y niña— se superponen en el centro. No se parecen en todos los aspectos: esta vista no muestra las direcciones en que difieren. Cambia un eje a «persona» y otro a «femenino» y se separarán.
Este es el hábito más importante para entender vectores: un gráfico solo muestra tres direcciones a la vez, pero el vector conserva todas. Dos palabras pueden parecer cercanas en una vista y estar muy separadas si consideramos toda la lista de números.
Los modelos reales funcionan así, pero con muchos más números: el Transformer original usaba 512 por token; los grandes modelos actuales usan miles y GPT-3 utilizaba 12288. Hay una diferencia esencial con mi tabla: en un modelo real nadie decide el significado de cada posición. Los números empiezan aleatoriamente y se ajustan mediante entrenamiento, en la sección 10. Las palabras de usos parecidos acaban con vectores parecidos, pero una posición aislada rara vez significa algo tan claro como «animal». Aquí ponemos etiquetas para que los números sean comprensibles.
¿Cuánto se parecen dos vectores?
Dijimos que palabras parecidas deberían tener vectores parecidos. ¿Cómo convertimos esa semejanza en un cálculo? Empecemos en dos dimensiones, donde podemos dibujarlo todo. Tomemos y : los subíndices 1 y 2 solo indican el primer y el segundo número. Su producto escalar consiste en multiplicar los números de las mismas posiciones y sumar los resultados:
Con más números hacemos lo mismo: multiplicamos posición por posición y sumamos todo. Por ejemplo, ; ; .
¿Por qué mide semejanza? Arrastra las puntas de las flechas y observa las lecturas. Cuando apuntan aproximadamente al mismo lado, los números correspondientes suelen tener igual signo, sus productos son positivos y la suma es grande. Cuando son perpendiculares, los productos positivos y negativos se cancelan y el producto escalar es . Si una flecha es un múltiplo negativo de la otra, cada producto no nulo es negativo y también lo es la suma. Pero hay un problema: duplicar la longitud de una flecha duplica todos sus números y el producto escalar, aunque su dirección no cambie.
- Producto escalar
- Longitud
- Similitud coseno
- Ángulo
Para comparar direcciones sin incluir la longitud, debemos calcular la longitud de cada flecha. La flecha es la hipotenusa de un triángulo rectángulo, con catetos de longitudes y . Por Pitágoras, su longitud es . También equivale a , porque . Con más números, añadimos sus cuadrados dentro de la raíz. Para vectores no nulos, dividir el producto escalar entre ambas longitudes da la similitud coseno. El vector cero no tiene dirección y no permite esa división. A continuación desarrollaremos la fórmula de longitud y por qué sirve para comparar direcciones:
De dónde sale la fórmula de la longitud
Una flecha avanza a a la derecha y b hacia arriba. Necesitamos su longitud directa c, del inicio al final, para distinguir «misma dirección, pero mayor longitud». La horizontal y la vertical son perpendiculares y forman con la flecha un triángulo rectángulo. Tomemos primero a y b positivos y coloquemos cuatro triángulos iguales dentro del cuadrado grande de abajo.
El verde muestra los cuatro triángulos y el dorado, el cuadrado central. Cada lado del cuadrado grande consta de a seguido de b. Cada lado central es una hipotenusa c; los lados adyacentes forman un ángulo recto porque los dos ángulos agudos contiguos suman noventa grados. El área de un triángulo es : al unirlo con una copia volteada, forma un rectángulo de lados a y b.
Calculamos el área dorada como «área grande menos cuatro pequeñas». Esa misma área es el cuadrado del lado c, así que ambos cálculos deben coincidir.
Una longitud no es negativa, así que tomamos la raíz cuadrada no negativa. Si las coordenadas son negativas, usamos sus valores absolutos como lados; al elevarlos al cuadrado obtenemos la misma fórmula. Si un lado vale cero, la flecha coincide con el otro; si ambos valen cero, la longitud es cero. El vector cero no tiene dirección y no podemos dividir por su longitud en el paso siguiente.
Dividir un vector entre su longitud lo acorta o alarga hasta longitud sin cambiar su dirección; por tanto, el resultado solo depende de las direcciones. Sean cuales sean las longitudes, vale si apuntan igual, si son perpendiculares y si apuntan en sentidos opuestos. La lectura también muestra que equivale al coseno del ángulo entre las flechas. Derivaremos por qué, siempre suponiendo vectores no nulos.
Derivación: por qué la similitud coseno es el coseno del ángulo
Empecemos por un hecho geométrico. En una circunferencia centrada en el origen y de radio , tomemos dos puntos cuyos ángulos con el eje horizontal son y . Sus coordenadas son y : ese es el significado de coseno y seno en la circunferencia unidad. Por Pitágoras, la distancia al cuadrado es . Al desarrollar y usar para cada punto, obtenemos .
Ahora giramos toda la circunferencia hacia atrás un ángulo . La distancia no cambia, pero un punto queda en el ángulo , es decir, en , y el otro en . El mismo cálculo da la distancia al cuadrado . Ambos resultados describen la misma distancia, de modo que .
Por último, escribimos como y como . Así, , donde es el ángulo entre las flechas. Dividimos entre y obtenemos su coseno. En tres dimensiones, ambas flechas están en un plano que pasa por el origen y el mismo argumento funciona dentro de él. En más de tres dimensiones no podemos dibujar ese ángulo, así que lo definimos con esta fórmula; donde sí podemos dibujarlo, coincide con el ángulo geométrico.
Apliquémoslo a nuestros vectores de 8 números por palabra. Elige una palabra: la lista ordena todas las demás por similitud coseno, calculada con los 8 números, no solo con los tres dibujados. «Gato» y «perro» apuntan casi en la misma dirección; «gato» y «camión», no.
- perro
- león
- caballo
- cachorro
- gatito
También podemos hacer operaciones aritméticas con vectores. Tomamos «rey», restamos «hombre» y sumamos «mujer»: . Restar «hombre» elimina lo que rey y hombre comparten, como ser persona y su tamaño, y deja principalmente la realeza. Sumar «mujer» recupera persona y tamaño y añade femenino. El resultado se aproxima más a «reina». Los vectores aprendidos muestran un fenómeno parecido, aunque aproximado: buscamos la palabra más cercana, no una exactamente igual.
¿Qué pareja de vectores tiene producto escalar 0?
Atención: dejar que los fragmentos se consulten
Cada token tiene un vector, pero el que obtenemos de la tabla siempre es el mismo, aparezca donde aparezca. Considera «El gato se sentó porque él estaba cansado». La tabla asigna siempre el mismo vector a «él», pero aquí se refiere al gato. Para entender la oración, su vector debe incorporar información de «gato». En el ejemplo «El camino estaba cerrado porque él estaba inundado», ese mismo pronombre necesita información de «camino». Cada token debe poder consultar otros tokens y decidir cuáles le importan. Eso hace la atención.
La atención se parece a una búsqueda. Cada token calcula tres vectores nuevos a partir de sus números:
- **Consulta, query**: describe qué busca el token.
- **Clave, key**: describe qué puede ofrecer a quien lo busca.
- **Valor, value**: la información que transmite cuando otro token le presta atención.
Para «él», la consulta dice aproximadamente «busco algo a lo que pueda referirme», mientras que la clave de «gato» dice «soy una cosa». Cuanto mejor coincidan consulta y clave, mayor será su producto escalar, la medida de semejanza anterior. La idea es comparar la consulta de «él» con la clave de cada token visible: cuanto mejor coincidan, más información se transferirá.
¿Cómo calcula esos vectores? En nuestro ejemplo, cada token tiene 4 números en el orden [cosa, pronombre, acción, descripción]. Consulta y clave tienen 2 números cada una para poder dibujarlas como flechas. Para pasar de 4 a 2, el modelo guarda una tabla numérica llamada matriz; la de consultas es . Tiene una fila por cada uno de los 4 rasgos, con 2 números que indican lo que ese rasgo añade a la consulta. Multiplicamos cada fila por el valor del rasgo del token y sumamos los cuatro resultados. Los 4 números de «él» son , así que multiplicamos las filas por , , y :
Del mismo modo, una segunda matriz calcula la clave y una tercera , el valor. Los 4 números de «gato» son y su clave es , que expresa principalmente «soy una cosa». Cada número de salida es el producto escalar de los 4 números del token con una columna de la matriz; por eso llamamos a esta operación «multiplicar un vector por una matriz».
La puntuación entre «él» y «gato» es el producto escalar de la consulta de «él» y la clave de «gato», dividido entre , donde es el número de componentes de cada consulta y clave. Más adelante explicaremos la división.
Las puntuaciones pueden ser positivas o negativas. Queremos pesos que sean positivos y sumen , para indicar qué proporción de atención recibe cada token. La función softmax convierte puntuaciones en pesos en dos pasos. Primero, eleva a cada puntuación. Aquí es una constante. Con exponentes enteros, una potencia es multiplicación repetida; por ejemplo, . Para exponentes no enteros se completa suavemente entre esos valores. Una calculadora permite obtener, por ejemplo, . Importan dos propiedades: para cualquier puntuación , es positivo y cuanto mayor es la puntuación, mayor es , de modo que se conserva el orden de las puntuaciones.
Segundo, dividimos cada resultado entre la suma de todos. Al dividir cada parte entre el mismo total, las proporciones suman , igual que al dividir recuentos entre el total en la sección 3. Si las puntuaciones de los tokens visibles son , el peso del token es
«Él» puede ver los tokens «el», «gato», «se sentó», «porque» y él mismo, cuyas puntuaciones son , , , y . El primer paso da aproximadamente , , , y , con suma aproximada . En el segundo, «gato» recibe de la atención de «él», y «él» recibe aproximadamente .
Una propiedad útil: sumar el mismo número a todas las puntuaciones no cambia los pesos. Cada potencia pasa a ser ; el factor común aparece en cada término y en la suma, y se cancela al dividir.
Por último, la salida de cada token es una media ponderada de los vectores de valor: multiplicamos el valor de cada token visible por su peso y sumamos. Para «él», del resultado procede del valor de «gato», por lo que su nuevo vector contiene principalmente información de «gato». En el modelo, las flechas de valor se acortan según su peso y se colocan consecutivamente; la punta final indica la salida.
Hay otra regla: al escribir, un token solo puede ver los anteriores y a sí mismo, porque los posteriores aún no existen. Sus puntuaciones se excluyen, como si fueran y su potencia de fuera . Esto se llama máscara causal. Desactívala para ver cómo actúa un codificador, una estructura que lee de una vez un texto completo ya escrito.
Elige un token que consulte a los demás. A la izquierda están su consulta, dorada, y las claves visibles, grises. Las barras muestran puntuaciones y pesos softmax. A la derecha, los valores acortados según sus pesos se encadenan para producir la salida dorada. La cuadrícula inferior muestra todos los pesos: las filas son los tokens que consultan y las columnas, los consultados.
¿Por qué dividir entre ? El producto escalar suma productos. En modelos reales, las consultas y claves tienen 64 o 128 números, y sumar tantos productos suele dar puntuaciones muy grandes. Con diferencias grandes, softmax asigna casi todo el peso a un solo token. El aprendizaje se estanca: un token con peso cercano a apenas influye y recibe muy poca corrección, como veremos en la sección 10. Si los números se comportan como valores aleatorios de tamaño típico , la suma de productos tiene tamaño típico aproximado . Dividir entre devuelve las puntuaciones a un tamaño típico cercano a . Desactiva la división: el peso que «él» asigna a «gato» aumenta de a y los demás disminuyen.
Derivación: por qué el tamaño típico del producto escalar es
Sea el producto escalar , donde cada número es aleatorio e independiente, con media y media de su cuadrado . Para medir el tamaño típico de , calculamos la media de y extraemos su raíz cuadrada.
Al desarrollar obtenemos términos cuadrados y muchos términos cruzados con . Como y son independientes, la media de cada cuadrado es . Cada término cruzado contiene un factor como , independiente de los demás y de media ; por ello, la media del término completo es .
Por tanto, la media de es y el tamaño típico de es . Tras dividir entre , la media del cuadrado de la puntuación es , sea cual sea . Las consultas y claves aprendidas no son exactamente estos números aleatorios: esto justifica la elección del factor de escala, pero no es una ley exacta.
Una cabeza de atención calcula en cada posición una combinación ponderada de valores; no tiene por qué representar una única relación fija que podamos nombrar cotidianamente. El Transformer hace trabajar varias cabezas en paralelo, cada una con sus tres matrices, y concatena las salidas. Cambia a la cabeza B: con otras matrices, los mismos tokens buscan ahora la acción reciente, en lugar de aquello a lo que se refiere el pronombre. El Transformer original tenía 8 cabezas por capa; los modelos grandes tienen decenas. Nadie le dice a una cabeza qué buscar: sus matrices se aprenden, como los vectores de palabras, y solo algunas acaban teniendo un significado claro.
Si sumamos a todas las puntuaciones de atención de una fila, ¿qué ocurre con los pesos softmax?
Construir un Transformer
La atención intercambia información entre tokens. Una capa del Transformer añade pasos más sencillos antes y después; el modelo completo apila muchas capas, cada una con sus propios números aprendidos. Selecciona cada parte del diagrama para ver qué hace y por qué hace falta.
Varias cabezas de atención, como en la sección 7, permiten a cada token recoger información de los tokens visibles.
Calcular una normalización siguiendo dos números
Los valores sumados pueden estar desplazados hacia números grandes o muy dispersos. Restar un desplazamiento común los centra alrededor de cero; ajustar la dispersión evita diferencias excesivas. Usaremos solo dos números y conservaremos los resultados anteriores en cada paso para ver de dónde proceden los nuevos. Por ahora fijamos la escala final aprendible en 1 y el desplazamiento en 0.
La capa real también puede multiplicar cada resultado por un coeficiente aprendido y añadir un desplazamiento aprendido. Después, la media y la varianza ya no tienen por qué ser 0 y 1. Desglosamos la aritmética de este paso, sin afirmar que normalizar garantice que todo el modelo aprenda bien.
¿Por qué hace falta la posición? La atención combina tokens mediante productos escalares y medias ponderadas, operaciones que no consideran dónde están los tokens. Si cambiamos el orden de la oración, las salidas solo cambian de orden. En la demostración, ambas oraciones usan «perro», «muerde» y «persona». Aplicamos a los tres tokens la cabeza A de la sección 7, sin máscara. Compara las salidas de «perro» en ambas oraciones.
Sin posiciones, ambas salidas son idénticas y el modelo no distingue quién muerde a quién. Al añadir vectores de posición, con un patrón fijo para cada lugar de la oración, las salidas difieren y las capas posteriores pueden usar esa diferencia.
El artículo original construía posiciones con ondas seno y coseno de distintas longitudes de onda. Muchos modelos actuales giran cada consulta y clave un ángulo según la posición del token: es la codificación posicional rotatoria, que hace depender el producto escalar de la distancia entre tokens.
En 2017, el Transformer se diseñó para traducir, por ejemplo del inglés al alemán. Tenía dos mitades. El codificador leía de una vez la oración inglesa, sin máscara. El decodificador escribía la alemana token a token con máscara causal. Cada capa también atendía a la salida del codificador para consultar el original inglés: la atención cruzada. La versión básica tenía 6 capas por mitad, 512 números por token, 8 cabezas y unos 65 millones de números aprendidos; se entrenó con 8 GPU durante unas 12 horas. La versión grande estableció nuevos récords en traducción inglés-alemán e inglés-francés. Los modelos de la familia GPT conservan solo la mitad decodificadora, sin atención cruzada: leen el texto existente y escriben el siguiente token.
Lectura opcional: aquella línea de fórmula del artículo
El artículo resume la sección 7 en una línea: . Aquí es una tabla con la consulta de cada token en una fila; y son las tablas de claves y valores. se lee «transpuesta de »: convierte las filas de en columnas.
Al multiplicar la tabla por , la fila y columna contienen el producto escalar de la consulta con la clave : obtenemos todas las puntuaciones a la vez. Softmax aplicado a cada fila produce nuestra cuadrícula de pesos. Multiplicarla por da en cada fila la suma ponderada de valores: todas las salidas a la vez. La fórmula no añade nada nuevo; agrupa los cálculos de todos los tokens, justo lo que las GPU hacen más rápido.
Elegir el siguiente fragmento
Volvamos a «El gato se sentó sobre…». Después de la última capa, queda un vector para el último token. Para puntuar cada continuación, el modelo calcula el producto escalar de con el vector de ese candidato. Una puntuación alta indica que y el candidato apuntan en direcciones parecidas. Estas puntuaciones brutas se llaman logits. En nuestro ejemplo, los vectores tienen 4 números: [objeto para sentarse, interior, blando, alimento], , y el vector de «esterilla» es . Por tanto, el logit de «esterilla» es .
Softmax, la función que usamos en atención, convierte los logits en probabilidades. Luego hay que elegir. Escoger siempre el token más probable parece razonable, pero produce textos repetitivos y respuestas idénticas a la misma pregunta. Por eso suele usarse muestreo: se elige al azar según las probabilidades. Pulsa varias veces «Extraer uno» y después «Extraer 100»; compara las frecuencias de cada palabra con sus probabilidades.
El gato se sentó en ____
0 extracciones. Barras verdes: probabilidad. Barras doradas finas: proporción realmente extraída.
La temperatura divide cada logit antes de softmax. Con no cambia nada. Para entender , comparemos dos candidatos con logits y . La razón entre sus probabilidades es , porque el denominador común de softmax se cancela; equivale a . Los logits de «esterilla» y «sofá» son y . Con , la razón es ; con , es . Una temperatura inferior a amplía las diferencias y favorece más a los tokens probables. Cuando se acerca a , casi siempre gana el primero. Una temperatura superior a reduce las diferencias y aumenta la aparición de palabras menos habituales.
Otros dos controles descartan muchos tokens poco probables antes del muestreo. top- conserva solo los más probables. top- los conserva desde el más probable hasta que su suma alcanza al menos ; guarda pocos cuando el modelo está seguro y más cuando duda. En ambos casos, dividimos las probabilidades conservadas entre su nueva suma para que vuelvan a sumar .
Después de elegir un token, el modelo lo añade al texto y vuelve a ejecutarse para elegir el siguiente. Es el mismo ciclo del modelo de recuentos de la sección 3, pero con probabilidades mucho mejores. Una respuesta larga requiere miles de pasos, cada uno pasando por todas las capas.
¿Qué ocurre con el muestreo cuando la temperatura está muy cerca de ?
¿De dónde salen estos números?
Todos los números que hemos visto —la tabla de representaciones, las matrices de cada cabeza y las de las redes de propagación hacia delante— se llaman parámetros. GPT-3 tiene 175 mil millones. ¿De dónde salen sus valores? Empiezan como números aleatorios pequeños y el entrenamiento los ajusta con una tarea sencilla: tomar texto real, ocultar el siguiente token y pedir al modelo que lo prediga. Después se modifica ligeramente cada parámetro para hacer más probable el token correcto.
Para ajustar en la dirección adecuada, necesitamos medir cuánto se equivoca la predicción. Si la probabilidad del token correcto es , usamos la pérdida . Aquí es el logaritmo natural, la operación inversa de elevar a una potencia: es el exponente al que debemos elevar para obtener . Con , la pérdida es ; con , aproximadamente ; con , aproximadamente . Cuando el modelo está seguro y acierta, la pérdida es pequeña. Cuanto más se acerca la probabilidad correcta a , más crece la pérdida, sin límite.
¿Por qué el logaritmo? La probabilidad del texto completo es el producto sucesivo de las probabilidades de sus tokens. El logaritmo de un producto es la suma de sus logaritmos. Si y , entonces y, por tanto, . La pérdida total es así la suma de las pérdidas de cada token, que puede tratarse como un pequeño ejemplo individual.
Ahora ajustamos. Para cada parámetro, el cálculo proporciona una pendiente: cuánto cambia la pérdida al aumentar ligeramente el parámetro, su derivada. Si la pérdida es diferenciable y el gradiente no es cero, un paso suficientemente pequeño en sentido contrario reduce la pérdida local; un paso grande arbitrario no ofrece esa garantía. Esto es el descenso del gradiente y el tamaño del paso lo determina la tasa de aprendizaje , llamada eta. Para mostrar la aritmética, el experimento ajusta directamente tres logits de salida, no toda la red. Sus pendientes son muy sencillas: para el token correcto y su propia probabilidad para los demás. Si al correcto le asignamos y a los otros , un paso es
Cada paso aumenta el logit correcto en y reduce cada logit incorrecto en . Entrena paso a paso abajo; la respuesta correcta es «esterilla». Al principio, los logits son , y ; por tanto, y la pérdida es aproximadamente . Tras un paso con , el logit de «esterilla» aumenta hasta ; los de «sofá» y «luna» disminuyen sus probabilidades respectivas, y . Cada paso hace más probable la respuesta correcta, y cuanto más se acerca a , menor es el aumento. Una tasa mayor avanza más deprisa, pero en modelos reales con miles de millones de parámetros, un paso excesivo puede sobrepasar el mínimo y hacer oscilar la pérdida; hay que elegirla cuidadosamente.
| Palabra siguiente | logit | cambio | ||
|---|---|---|---|---|
| alfombra · Respuesta correcta | 0.50 | −0.68 | +0.68 | |
| sofá | 0.80 | 0.44 | −0.44 | |
| luna | 0.20 | 0.24 | −0.24 |
- Paso
- 0 / 12
- Pérdida
Derivación: de dónde sale la pendiente
Llamemos a los logits y a la suma de sus potencias de . Si el token es el correcto, , por lo que la pérdida es . Aquí usamos y .
Ahora cambiamos solo un logit . Si , el término cambia a ritmo ; en caso contrario, no cambia. Su tasa de variación es, por tanto, . Aplicamos la regla de la cadena a : la derivada de es y, al variar , cambia a ritmo , porque la derivada de es . Así, la tasa de variación de es . Sumando ambas partes, la pendiente de la pérdida respecto a es .
Los parámetros de las capas anteriores influyen en la pérdida mediante cálculos intermedios. La retropropagación utiliza la regla de la cadena para combinar ordenadamente esas tasas locales de cambio y calcular eficientemente cómo ajustar cada parámetro; no es otra forma de proporcionar respuestas correctas. Abajo multiplicaremos dos tasas locales para entender el ajuste recibido por un parámetro anterior. Predecir el siguiente token es solo un objetivo de entrenamiento; después pueden añadirse ejemplos de instrucciones, preferencias y otros objetivos. Por tanto, no podemos concluir que todo el comportamiento de un asistente proceda únicamente de ese entrenamiento.
Cómo se ajustan los parámetros anteriores
Empecemos con una cadena que podemos calcular completa: la entrada es 2, el parámetro es w, la predicción es y queremos obtener 3. Llamamos al error. Para evitar que errores positivos y negativos se cancelen, usamos su cuadrado como pérdida . Cambiaremos solo w y seguiremos su efecto hasta la pérdida.
Si w aumenta h, el error aumenta 2h. Sustituimos el error nuevo en el cuadrado y restamos el cuadrado original para obtener el cambio de pérdida. Para h distinto de cero dividimos ese cambio entre h; al acercar h a cero, el cociente tiende a la pendiente que necesitamos.
También podemos separarlo en dos tramos: cada pequeño aumento de w cambia el error al doble de ritmo; la tasa local de cambio del cuadrado respecto del error es 2a, porque . Multiplicar los dos tramos da . La retropropagación combina ordenadamente relaciones locales de este tipo; esta cadena sencilla deja ver de dónde sale la multiplicación.
η es el tamaño de paso que eliges. Ajusta con 0,1, restaura el parámetro y prueba 0,3 para comparar: seguimos avanzando contra la pendiente, pero un paso grande rebasa la posición adecuada y aumenta la pérdida. Por tanto, debemos juzgar «más pequeño» según esta función; no cualquier paso funciona. La pérdida mínima está en , porque anula el error. Las lecturas inferiores muestran tres decimales y usan ≈; los ajustes siguen usando valores sin redondear. No calcules con los números aproximados como si fueran exactos.
De dónde surgió el Transformer
Antes de 2017, la herramienta habitual para procesar lenguaje era la red neuronal recurrente, RNN. Leía un token cada vez, como alguien que sigue con el dedo las líneas de un texto, llevando consigo un vector de memoria. En cada paso combinaba esa memoria con el vector del nuevo token para obtener una memoria nueva. Al terminar, esa memoria debía contener toda la oración.
Este diseño tiene dos debilidades. La información de los primeros tokens debe atravesar todos los pasos siguientes para utilizarse al final y puede desvanecerse, como una frase transmitida entre una fila de personas. LSTM, de 1997, añadió «puertas», interruptores aprendidos que deciden qué conservar, olvidar y añadir, para prolongar la memoria, pero no eliminó el problema. La segunda debilidad es la velocidad: el paso 50 necesita la memoria del 49, por lo que no pueden calcularse simultáneamente. Las GPU, precisamente, son más rápidas cuando hacen miles de cálculos a la vez.
En 2014, un sistema de traducción llamado «secuencia a secuencia» usó una RNN para convertir una oración inglesa en un vector de memoria y otra para escribir una oración francesa a partir de él. Comprimir toda la oración en un vector era un cuello de botella y perjudicaba las traducciones largas. Ese mismo año, Bahdanau, Cho y Bengio permitieron que la RNN escritora consultara, en cada paso, todas las memorias de la lectora y asignara pesos según su adecuación a la necesidad actual. Era la atención, entonces solo una ayuda para la RNN.
Los autores del Transformer preguntaron: ¿qué ocurre si la atención hace todo el trabajo y eliminamos la memoria transmitida paso a paso? Ese es el sentido de «Attention Is All You Need». Cada token puede acceder en un paso a cualquiera anterior. Durante el entrenamiento, con toda la secuencia disponible, muchas posiciones pueden calcularse en paralelo y una máscara oculta las respuestas posteriores. Sin embargo, la generación autorregresiva habitual debe elegir un token antes de decidir el siguiente: la elección sigue siendo secuencial. Compara ambos diseños abajo: elige la longitud del texto y observa cuántos pasos necesita la información del primer token para alcanzar el último.
- Pasos del primer token al último
- Pasos que deben completarse uno tras otro
- Comparaciones por cabeza
- —
La atención también tiene un coste. Con máscara causal, el token se compara con tokens; por tanto, un texto de tokens requiere comparaciones por cabeza y por capa.
Para calcular la suma, la escribimos dos veces, una en orden directo y otra inverso, y sumamos término a término: , … Cada pareja suma . Hay parejas, así que el doble de la suma es y la suma es . Con 1000 tokens necesitamos comparaciones; duplicar la longitud casi cuadruplica el trabajo. Por eso los textos largos son costosos y muchas investigaciones posteriores buscan abaratar la atención. La lección Complejidad temporal estudia este crecimiento.
Del Transformer a los grandes modelos actuales
En menos de un año aparecieron dos usos del Transformer. GPT, OpenAI, 2018, conservó el decodificador y lo entrenó con muchos libros para predecir el siguiente token: el preentrenamiento. Después, los investigadores continuaron con pequeños conjuntos etiquetados para tareas concretas: el ajuste fino. BERT, Google, 2018, conservó el codificador y aprendió a completar palabras ocultas usando el texto de ambos lados, adecuado para búsqueda y clasificación. Ambos mostraron que entrenar con mucho texto sin procesar permite aprender regularidades lingüísticas útiles para varias tareas.
Después aumentó la escala. GPT-2, de 2019, tenía 1,5 mil millones de parámetros; GPT-3, de 2020, tenía 175 mil millones y se entrenó con unos 300 mil millones de tokens. GPT-3 mostró que podía realizar una tarea sin entrenamiento adicional, con solo unos ejemplos en la instrucción, como varias parejas de oraciones inglesas y francesas seguidas de una nueva oración inglesa. En 2020 se observó que, al aumentar conjuntamente parámetros, datos y cómputo, la pérdida descendía de forma suave y predecible: las leyes de escala. En 2022, Chinchilla encontró que muchos modelos eran demasiado grandes para el texto leído. Una proporción mejor era aproximadamente 20 tokens de entrenamiento por parámetro. Chinchilla tenía 70 mil millones de parámetros y usó , es decir, 1,4 billones de tokens de entrenamiento.
El gráfico muestra tamaños publicados de modelos. Cada línea horizontal representa 10 veces la inferior. Hace falta esta escala porque los tamaños van de 65 millones a 671 mil millones, aproximadamente cuatro saltos por diez; una escala ordinaria aplastaría todos los modelos anteriores a 2020 en la parte baja. Selecciona un punto para ver sus detalles. Algunos de los modelos más potentes no han publicado su tamaño; los omitimos en lugar de adivinarlo.
GPT-3 · 2020 · Parámetros: 1750 × 100 millones
Un modelo que solo sabe continuar texto todavía no es un asistente: una pregunta podría llevarlo a escribir más preguntas. Dos etapas adicionales lo convierten en uno. En el ajuste con instrucciones se entrena con ejemplos humanos de «petición y buena respuesta». En el aprendizaje por refuerzo con retroalimentación humana, RLHF, las personas comparan dos respuestas y un segundo modelo aprende a predecir cuál prefieren. Después se ajusta el modelo de lenguaje para producir respuestas bien puntuadas por ese segundo modelo. InstructGPT, de 2022, mostró que las personas preferían las respuestas de un modelo así entrenado de solo 1,3 mil millones de parámetros a las del GPT-3 original de 175 mil millones. ChatGPT, publicado en noviembre de 2022, acercó ese resultado al público. Anthropic, creadora de Claude, propuso un método relacionado, «IA constitucional», Constitutional AI, donde el modelo también evalúa y revisa sus respuestas siguiendo una lista escrita de principios.
Desde entonces, la base ha seguido siendo el Transformer, aunque muchas de sus partes han mejorado.
La red de propagación hacia delante se divide en redes pequeñas llamadas «expertos», y un enrutador envía cada token solo a unas pocas. Así puede haber muchos parámetros, pero usar solo una parte por token: DeepSeek-V3, de 2024, tiene 671 mil millones, pero utiliza 37 mil millones por token.
La cantidad de texto que el modelo puede atender a la vez ha pasado de los 2048 tokens de GPT-3 a cientos de miles; algunos alcanzan un millón o más. Lo permiten algoritmos de atención más económicos y mejores codificaciones de posición.
Imágenes, sonido y vídeo se dividen en fragmentos y se convierten en vectores, de modo que la misma atención puede procesarlos junto con el texto.
Desde 2024, algunos modelos aprenden mediante refuerzo sobre problemas con respuestas verificables a producir largas secuencias de pasos intermedios antes de responder. Esto ha mejorado mucho su rendimiento en matemáticas y programación.
Los modelos se entrenan para consultar buscadores, ejecutar código y manejar programas, completando tareas que requieren muchos pasos.
Entre las familias más conocidas están GPT, de OpenAI; Claude, de Anthropic; Gemini, de Google; Llama, de Meta; DeepSeek; y Qwen, de Alibaba. Algunas publican sus parámetros para descargarlos; otras ni siquiera revelan su tamaño.
Conviene aclarar lo que no ha cambiado. El modelo sigue produciendo un token cada vez a partir de probabilidades aprendidas del texto. Puede expresar falsedades con fluidez: una «alucinación», porque una continuación probable no tiene por qué ser verdadera. Sin herramientas como búsqueda, su conocimiento llega hasta los datos de entrenamiento. En qué medida sus cálculos constituyen «pensamiento» sigue siendo la pregunta de Turing, todavía sin respuesta definitiva.
Modelos de difusión: dibujar eliminando ruido
El generador de texto anterior elegía un token cada vez. Ahora estudiaremos otro método, la difusión, para generar imágenes. Primero debemos saber qué es una imagen en una computadora: una cuadrícula de píxeles, cada uno con un número de brillo, o tres números, rojo, verde y azul, en imágenes de color. Una pequeña imagen gris de contiene números.
Añadamos ruido: a cada píxel le sumamos un número aleatorio de una distribución normal, con forma de campana. La mayoría están cerca de y unos pocos son mayores. Lo añadimos poco a poco, mientras multiplicamos en cada paso los valores de brillo originales por un coeficiente menor. Disminuye su contribución numérica, no el ancho ni el alto de la imagen. La imagen se convierte gradualmente en puro ruido. Después del paso , los píxeles son
Aquí es la imagen original; , épsilon, es el ruido; y , «alfa barra t», es la fracción conservada de la imagen original: empieza en y termina casi en . Mezclamos dos componentes: la imagen con peso y el ruido con peso . Arrastra el control y sigue un píxel a través de la fórmula. ¿Por qué raíces cuadradas? Porque sus cuadrados suman exactamente : . Esto mantiene la varianza en 1 solo bajo condiciones precisas: tanto la variable aleatoria de los datos limpios como el ruido independiente deben tener varianza 1. No significa que el contraste visible de cualquier fotografía fija permanezca igual. Para un píxel original fijo, solo el ruido es aleatorio y su varianza es 1 menos alfa barra. La derivación inferior distinguirá ambos casos y explicará por qué aparecen cuadrados.
- Fracción conservada
- Un píxel:
Añadir ruido es fácil y no requiere aprendizaje. La idea ingeniosa es invertirlo. Entrenamos una red con millones de imágenes: recibe una imagen ruidosa y el paso , y debe estimar el ruido añadido . Es fácil preparar la tarea porque nosotros generamos el ruido y conocemos la respuesta. Cuando la red puede estimarlo, despejamos la fórmula anterior para estimar la imagen limpia:
El acento circunflejo sobre una letra indica una estimación. Para derivar la fórmula, restamos en ambos lados de la ecuación del ruido, dejando a la derecha, y dividimos ambos lados entre .
Para dibujar una imagen nueva, partimos de puro ruido y recorremos los pasos al revés. En cada paso estimamos la imagen limpia y calculamos el ruido correspondiente. Después los recombinamos con un nivel de ruido algo menor, usando la fórmula de adición de ruido y sustituyendo por . Al principio obtenemos una media borrosa; al disminuir el ruido, las estimaciones se aclaran. En el último paso, , el resultado es la propia estimación final. Este recorrido se llama DDIM; el método original, DDPM, añade también un poco de ruido nuevo en cada paso.
Una imagen completa contiene demasiados números para dibujarla como un punto, así que usamos la «imagen» mínima: un punto de solo 2 números. Los datos de entrenamiento son 240 puntos dispuestos en forma de corazón. En la pestaña izquierda, añade ruido y observa cómo se convierte en una nube redonda. En la derecha, genera: 500 puntos de puro ruido regresan paso a paso al corazón. Selecciona uno para seguir su trayectoria y sus estimaciones.
- Fracción conservada
Nuestro modelo pequeño no necesita entrenar una red porque conoce exactamente los 240 puntos. La estimación del punto limpio es su media ponderada; como en atención, softmax calcula los pesos a partir de puntuaciones. La puntuación del punto mide lo bien que explica el punto ruidoso . ¿Cómo se calcula? El proceso reduce a : es donde estaría el punto limpio antes de añadir ruido. Medimos la distancia al cuadrado desde hasta allí: cuanto menor la distancia, mejor la explicación. Dividimos por el doble de la fracción de ruido, , y cambiamos el signo; los puntos más cercanos reciben puntuaciones mayores:
¿Por qué dividir por la fracción de ruido? Al empezar, la fracción es grande: incluso puntos lejanos obtienen puntuaciones próximas a la mejor. Muchos comparten peso y la estimación es una media borrosa. Cerca del final, la fracción de ruido es muy pequeña; el punto más cercano recibe casi todo el peso y la estimación se define. Es la misma media ponderada con softmax de la atención: el punto ruidoso actúa como consulta y los puntos de entrenamiento como claves y valores. La lectura opcional deriva la puntuación.
Derivación: por qué aparecen cuadrados y de dónde sale la puntuación
La dispersión de una variable aleatoria se mide con la varianza: la media del cuadrado de su distancia a su propia media. Tomemos , con y independientes y ambos de media . La media de es . La independencia y la media hacen que la media de sea , por lo que la varianza de es . Si escalamos los píxeles a varianza , el ruido también tiene varianza y elegimos y , la varianza en cada paso es .
Veamos la puntuación. Si el punto limpio es , entonces y el ruido debe ser . Suponemos ruido independiente por coordenada y con distribución normal estándar. Su densidad es proporcional a , donde la longitud al cuadrado suma los cuadrados de las coordenadas del ruido. La densidad compara probabilidades en vecindades igualmente pequeñas; no asigna probabilidad positiva a un número real exacto. Sustituyendo el ruido calculado, la verosimilitud de «proceder de » es proporcional a , es decir, elevado a la puntuación.
Antes de observar , todos los puntos de entrenamiento son igual de probables. Por la fórmula de Bayes, la probabilidad de que provenga de es su verosimilitud dividida entre la suma de todas: exactamente softmax sobre las puntuaciones. La estimación que minimiza el error cuadrático medio es la media de los posibles puntos limpios ponderada por esas probabilidades, la fórmula del modelo.
Por qué calculamos una media ponderada de los posibles puntos sin ruido
El modelo de puntos anterior supone primero que todos los puntos limpios almacenados son igualmente probables. Fijada la posición actual con ruido, cuanto mayor sea la densidad con que un punto limpio puede producir esa observación, mayor peso recibe. La probabilidad previa común y la constante de la densidad gaussiana se cancelan entre numerador y denominador; quedan los valores exponenciales divididos entre su suma.
Estos pesos aún no dicen qué número debemos producir. Necesitamos fijar el objetivo: si evaluamos una estimación con error cuadrático, ¿cómo minimizamos la pérdida media? Consideremos primero una coordenada. Llamamos a los valores limpios candidatos, a sus pesos, a su media ponderada y u a nuestra estimación.
Descomponemos la diferencia entre estimación y candidato en la diferencia entre estimación y media y la diferencia entre media y candidato. Al desarrollar el cuadrado desaparece el término cruzado: la definición de media garantiza que las desviaciones ponderadas sumen cero.
El segundo término de la derecha no cambia con la estimación u; el primero es un cuadrado no negativo que se anula cuando . Por tanto, la mejor estimación bajo error cuadrático es la media ponderada. En dos dimensiones sumamos los errores cuadrados de ambas coordenadas y repetimos el razonamiento para cada una. En general, esto difiere de «elegir el punto más probable»: hemos elegido explícitamente evaluar mediante error cuadrático.
Este modelo guarda explícitamente los 240 puntos limpios y calcula cada estimación a partir de ellos. Con poco ruido, los pesos se concentran en puntos almacenados próximos y las salidas tienden a ese conjunto finito. Una red de difusión real aprende una función a partir de ejemplos: puede combinar resultados nuevos, pero también memorizar o reproducir material de entrenamiento. Un tamaño de red finito no impide memorizar. Este modelo de puntos demuestra la distribución empírica elegida; no garantiza originalidad ni representa todo el mecanismo de cualquier modelo de imágenes.
¿Cómo controla la imagen una instrucción como «un gato sobre una esterilla, estilo óleo»? Un Transformer convierte el texto en vectores. La red de eliminación de ruido los consulta en cada paso mediante atención cruzada, igual que el Transformer de traducción, orientando su estimación hacia imágenes compatibles con el texto. Para ahorrar cálculo, Stable Diffusion, de 2022, trabaja sobre una versión comprimida de la imagen en lugar de píxel a píxel: la difusión latente. Muchos modelos de imágenes y vídeo más recientes usan directamente un Transformer para eliminar ruido. Aquí se unen las dos mitades de la página: atención y difusión trabajan juntas.
Al comenzar la adición de ruido, con , ¿cuánto vale ?
Volver a la pregunta de Turing
Volvamos a Turing. En 1950 propuso una prueba basada solo en la conversación y una máquina que aprendiera en lugar de seguir reglas escritas una a una. Los modelos de lenguaje actuales son máquinas de ese tipo. Tienen una tabla de vectores, atención para que los tokens se consulten y pequeñas redes dentro de cada token. Sus miles de millones de parámetros se han ajustado para predecir el siguiente token en enormes cantidades de texto.
Sigue abierto si eso constituye pensamiento. En el generador simplificado que estudiamos, elegir el siguiente token depende de los números aprendidos y del contexto proporcionado. Un asistente completo también puede combinar instrucciones escritas, recuperación de información y herramientas de software. Entender este cálculo aprendido nos ayuda a verificar hechos, distinguir fluidez de pruebas fiables y formular preguntas más útiles.
