Writing a Decoder-Only Transformer for LLM from Scratch in Python
Google/DeepMind
OpenAI
Meta
The author of a series of articles describes in detail the implementation of a transformer block for a small decoder-only LLM using the PyTorch framework. Components covered include: Multi-Head Attention with masking, Feed Forward Network with GELU, normalization layer, and residual connections. The article explains the difference from the original architecture: pre-normalization (Pre-LN) is used instead of post-normalization for training stability.
Автор Владимир на примере задачи по ватермаркированию лицензионного текста реализует блок трансформера для decoder-only LLM. Он объясняет, что трансформер — это архитектура из статьи Google "Attention Is All You Need", где последовательность обрабатывается параллельно с помощью механизма внимания. В основе Multi-Head Attention лежат три матрицы проекций Q, K, V. На первом этапе вычисляется сходство токенов (матрица внимания), на втором — смешивается содержимое токенов по найденным весам. Для эффективности все головы внимания реализованы через одну большую линейную проекцию. После attention применяется Feed Forward Network с GELU-активацией и dropout. Сборка трансформера включает нормализацию (Pre-LN) и остаточные связи. Также добавляется маска будущего (causal mask) для decoder. В целом блок готов к использованию в сборке LLM, обучении и генерации текста.
Nguồn: Habr — хаб NLP —
bản gốc
