Comprensión de los transformadores: un ejemplo matemático paso a paso – Parte 1

 Fareed Khan. MEDIUM Septiembre 2023

Entiendo que la arquitectura del transformador puede parecer aterradora y es posible que hayas encontrado varias explicaciones en YouTube o en blogs. Sin embargo, en mi blog haré un esfuerzo por aclararlo proporcionando un ejemplo numérico completo. Al hacerlo, espero simplificar la comprensión de la arquitectura del transformador.

¡Un agradecimiento a HeduAI por brindar explicaciones claras que me han ayudado a aclarar mis propios conceptos!

¡Empecemos!

Entradas y codificación posicional

Resolvamos la parte inicial donde determinaremos nuestras entradas y calcularemos la codificación posicional para ellas.

Paso 1 (Definir los datos)

El paso inicial es definir nuestro conjunto de datos (corpus) .

En nuestro conjunto de datos, hay 3 frases (diálogos) tomadas del programa de televisión Juego de Tronos. Aunque este conjunto de datos puede parecer pequeño, su tamaño en realidad nos ayuda a encontrar los resultados utilizando las próximas ecuaciones matemáticas.

Paso 2 (Encontrar el tamaño del vocabulario)

Para determinar el tamaño del vocabulario, necesitamos identificar la cantidad total de palabras únicas en nuestro conjunto de datos. Esto es crucial para la codificación (es decir, convertir los datos en números).

donde N es una lista de todas las palabras y cada palabra es un único token. Dividiremos nuestro conjunto de datos en una lista de tokens, es decir, encontraremos N.

Después de obtener la lista de tokens, denominada N, podemos aplicar una fórmula para calcular el tamaño del vocabulario.

usar una operación de conjunto ayuda a eliminar duplicados y luego podemos contar las palabras únicas para determinar el tamaño del vocabulario. Por lo tanto, el tamaño del vocabulario es 23, ya que hay 23 palabras únicas en la lista dada.

Paso 3 (Codificación e incrustación)

Bien asignamos un número entero a cada palabra única de nuestro conjunto de datos.

Después de codificar todo nuestro conjunto de datos, es hora de seleccionar nuestra entrada. Elegiremos una frase de nuestro corpus para empezar:

“Cuando juegas juego de tronos”

Cada palabra pasada como entrada se representará como un número entero codificado, y cada valor entero correspondiente tendrá una incrustación asociada.

  • Estas incrustaciones se pueden encontrar usando Google Word2vec (representación vectorial de la palabra). En nuestro ejemplo numérico, supondremos un vector incrustado para cada palabra llena de valores aleatorios entre (0 y 1).
  • Además, el artículo original utiliza 512 dimensiones del vector de incrustación, consideraremos una dimensión muy pequeña, es decir, 5 por ejemplo numérico.

Cada incrustación de palabras ahora está representada por un vector de incrustación de dimensión 5 , y los valores se completan con números aleatorios usando la función de Excel RAND() .

Paso 4 (Incrustación posicional)

Consideremos la primera palabra, es decir, «Cuándo» y calculemos el vector de incrustación posicional para ella.

Hay dos fórmulas para la incrustación posicional:

El valor POS para la primera palabra, «Cuando», será cero ya que corresponde al índice inicial de la secuencia. Además, el valor de i , ya sea par o impar, determina qué fórmula utilizar para calcular los valores de PE. El valor de dimensión representa la dimensionalidad de los vectores de incrustación y, en este caso, es 5.

Continuando con el cálculo de incrustaciones posicionales, asignaremos un valor pos de 1 para la siguiente palabra, «usted» , y continuaremos incrementando el valor pos para cada palabra posterior en la secuencia.

Después de encontrar la incrustación posicional, podemos concatenarla con la palabra incrustada original.

El vector resultante que obtenemos es la suma de e1+p1, e2+p2, e3+p3, etc.

La salida de la parte inicial de nuestra arquitectura de transformador sirve como entrada al codificador.

Codificador

En el codificador, realizamos operaciones complejas que involucran matrices de consultas, claves y valores. Estas operaciones son cruciales para transformar los datos de entrada y extraer representaciones significativas.

Dentro del mecanismo de atención de múltiples cabezales, una única capa de atención consta de varios componentes clave. Estos componentes incluyen:

Tenga en cuenta que el cuadro amarillo representa un mecanismo de atención único. Lo que la convierte en una atención de múltiples cabezas es la presencia de múltiples cuadros amarillos. Para los propósitos de este ejemplo numérico, consideraremos sólo uno (es decir, atención de una sola cabeza) como se muestra en el diagrama anterior.

Paso 1 (Realizar la atención con una sola cabeza)

Hay tres entradas en la capa de atención:

  • Consulta
  • Llave
  • Valor

En el diagrama proporcionado anteriormente, las tres matrices de entrada (matrices rosas) representan la salida transpuesta obtenida del paso anterior de agregar las incrustaciones de posición a la matriz de incrustación de palabras.

Por otro lado, las matrices de pesos lineales (amarilla, azul y roja) representan el peso utilizado en el mecanismo de atención. Estas matrices pueden tener cualquier número de dimensiones con respecto a las columnas, pero el número de filas debe ser el mismo que el número de columnas en las matrices de entrada para la multiplicación.

En nuestro caso, asumiremos que las matrices lineales (amarilla, azul y roja) contienen pesos aleatorios. Estos pesos generalmente se inicializan aleatoriamente y luego se ajustan durante el proceso de entrenamiento mediante técnicas como la retropropagación y el descenso de gradiente.

Entonces, calculemos (métricas de consulta, clave y valor):

Una vez que tenemos las matrices de consulta, clave y valor en el mecanismo de atención, procedemos con multiplicaciones de matrices adicionales.

Ahora multiplicamos la matriz resultante por la matriz de valores que calculamos anteriormente:

Si tenemos varias atenciones principales, cada una de las cuales produce una matriz de dimensión (6×3), el siguiente paso consiste en concatenar estas matrices.

En el siguiente paso, volveremos a realizar una transformación lineal similar al proceso utilizado para obtener las matrices de consulta, clave y valor. Esta transformación lineal se aplica a la matriz concatenada obtenida de las múltiples atenciones principales.

Como el blog ya se está volviendo extenso, en la siguiente parte cambiaremos nuestro enfoque para discutir los pasos involucrados en la arquitectura del codificador.

Si tienes alguna consulta no dudes en preguntarme!

6.2K seguidores

·Escritor para  GoPenAI

Fareed Khan aquí

https://medium.com/@fareedkhandev?source=post_page—–a7809015150a——————————–

Comparte en tus perfiles

Facebook
Twitter
LinkedIn

Artículos Relacionados:

¿Para quién son las calles?

Más del 80% del espacio vial de Toronto está destinado de forma inequitativa a los vehículos motorizados. ¿Cómo se puede rediseñar esto de forma justa? Por Jeff Allen , Lanrick Bennett Jr. y Mia Wang ~ Septiembre de 2025 Jeff Allen dirigió el análisis y la visualización de datos para este proyecto, y apoyó la redacción; Lanrick Bennett Jr. dirigió la

Seguir leyendo »

AGROBIOTECNOLOGÍA

Argentina marca un récord histórico: 11 cultivos transgénicos aprobados en 2025 El agro argentino suma nuevas herramientas para ganar eficiencia y enfrentar plagas. La Secretaría de Agricultura, Ganadería y Pesca autorizó en los últimos días dos nuevos eventos biotecnológicos -uno de maíz y otro de soya que elevan a 11 el total de aprobaciones en

Seguir leyendo »

IA física: impulsando la nueva era de las operaciones industriales

Teresa Wolf yAndrea Willige. 9 de septiembre de 2025. WORLD ECONOMIC FORUM. Las operaciones industriales se encuentran en un momento crucial, condicionadas por la creciente complejidad y la escasez de mano de obra, y agravadas por la incertidumbre global. Este informe técnico, « IA física: Impulsando la nueva era de las operaciones industriales », explora cómo los

Seguir leyendo »