Implementación de un Transformer Solo Decodificador para LLM desde Cero en Python
Google/DeepMind
OpenAI
Meta
El autor de una serie de artículos describe en detalle la implementación de un bloque transformer para un LLM pequeño solo decodificador usando el framework PyTorch. Los componentes cubiertos incluyen: Atención Multi-Cabeza con enmascaramiento, Red Feed Forward con GELU, capa de normalización y conexiones residuales. El artículo explica la diferencia respecto a la arquitectura original: se usa pre-normalización (Pre-LN) en lugar de post-normalización para estabilidad en el entrenamiento.
Vladimir, usando como ejemplo una tarea de marcado de agua para texto con licencia, implementa un bloque transformador para una LLM solo-decoder. Explica que el transformador es una arquitectura del artículo de Google "Attention Is All You Need", donde la secuencia se procesa en paralelo mediante el mecanismo de atención. La base de la atención de múltiples cabezas son tres matrices de proyección Q, K, V. En la primera etapa se calcula la similitud entre tokens (matriz de atención), y en la segunda, se mezcla el contenido de los tokens según los pesos encontrados. Para mayor eficiencia, todas las cabezas de atención se implementan mediante una única proyección lineal grande. Después de la atención, se aplica una red de avance (Feed Forward Network) con activación GELU y dropout. El ensamblaje del transformador incluye normalización (Pre-LN) y conexiones residuales. También se añade una máscara causal para el decodificador. En conjunto, el bloque está listo para su uso en el ensamblaje de una LLM, entrenamiento y generación de texto.
Fuente: Habr — хаб NLP —
original
