Introducción del blog
- Esta es la octava entrada de una serie de blogs basada en el libro de Sebastian Raschka, "Build a Large Language Model (from Scratch)".
- En esta entrega se aborda cómo implementar "trainable self-attention".
Cómo funciona un LLM basado en un transformer tipo GPT solo con decodificador
- Divide una cadena en tokens y asigna cada token a una secuencia de vectores para crear embeddings de tokens.
- Genera embeddings posicionales para formar la secuencia de embeddings de entrada.
- Usa los embeddings de entrada para generar puntajes de atención para cada token.
- Normaliza los puntajes de atención para generar pesos de atención.
- Genera vectores de contexto para cada token.
Mecanismo de atención de producto punto escalado
- Calcula los puntajes de atención proyectando la secuencia de entrada en tres matrices (query, key y value).
- Normaliza los puntajes de atención para generar pesos de atención y los usa para calcular los vectores de contexto.
- Todo este proceso se realiza mediante multiplicación de matrices eficiente.
Proyección entre espacios usando matrices
- Las matrices se usan para proyectar vectores a espacios de otra dimensión.
- Proyecta los embeddings de entrada a los espacios de query, key y value para calcular los puntajes de atención.
Normalización de los puntajes de atención
- Se usa la función softmax para normalizar los puntajes de atención.
- Se normaliza dividiendo por la raíz cuadrada de la dimensión para resolver el problema de gradientes pequeños.
Generación de vectores de contexto
- Usa los pesos de atención para calcular el vector de contexto de cada token.
- Proyecta los embeddings de entrada al espacio de value y genera los vectores de contexto con una suma ponderada por los pesos de atención.
Siguientes pasos
- Se planea cubrir la self-attention causal y la atención multi-head.
- También se planea explorar el "por qué" del mecanismo de self-attention.
Conclusión
- Esta entrada del blog puede ayudar a entender el mecanismo de self-attention.
- Puedes dejar preguntas o comentarios adicionales en los comentarios.
Aún no hay comentarios.