🧠 AI: за кулисами "разума"🧠
Глава 3: Трансформер — механизм внимания 🚀
🧠 В основе почти всех современных LLM лежит архитектура трансформера, придуманная в 2017 году. Её главное изобретение — механизм внимания (attention): модель вычисляет, насколько каждый токен «обращает внимание» на каждый другой токен в тексте, и усиливает важные связи. Это позволяет понимать, о ком идёт речь, какие слова связаны и какой смысл у всей фразы. 🗞️
📍 При этом сам по себе механизм внимания не знает порядка слов. Для него «кот съел рыбу» и «рыба съела кота» — почти одинаковый набор токенов, если не добавить позиционную информацию. Поэтому в трансформеры добавляют positional encoding — специальные векторы, которые сообщают модели, где находится токен. Сегодня чаще применяют RoPE, относительные позиции или ALiBi. Без них внимание превращается в мешок слов, где все связи есть, а последовательности нет. 🗞️
🧮 Математически это проекции входа в Query (запрос), Key (ключ) и Value (значение), после чего считается scaled dot-product attention. Для каждого токена модель строит «веса внимания» — насколько он связан с каждым другим токеном. В терминах QA-инженера это похоже на приоритизацию проверок: модель решает, какие части текста важнее для понимания текущего токена, и выделяет им больший «вес». Это как на совещании: вы киваете всем, но реально слушаете только того, кто говорит про ваш проект.
📐 Формально внимание можно записать так: Attention(Q, K, V) = softmax(QKᵀ / √d_k) V. Скалярное произведение Query и Key даёт сырые оценки важности, деление на корень из размерности стабилизирует обучение, а softmax превращает оценки в вероятности. softmax применяется по строкам, а d_k — размерность ключей. Затем эти веса применяются к Value: токен получает смесь информации от тех, на кого он «посмотрел». Если один вес близок к единице, модель почти полностью опирается на один токен; если веса размазаны — она учитывает сразу несколько источников. Именно поэтому attention называют soft-поиском по контексту: он не выбирает один ответ жёстко, а взвешивает все доступные. 🗞️
👥 В современных моделях используют «многоголовое» внимание (multi-head attention): параллельно запускается несколько «экспертов», каждый из которых смотрит на текст под своим углом. Один может замечать синтаксис, другой — смысл, третий — стиль. Это как команда QA-инженеров, где каждый проверяет свой аспект: один — валидацию полей, другой — UX, третий — производительность. В современных моделях можно встретить 32, 64 и даже 128 голов параллельно. Для сравнения: у человека обычно одна голова, и иногда отвлекается на котиков 😅. Но с ростом числа голов растут вычисления и память, поэтому у этого есть предел. 🗞️
🚫👀 Causal masking — почему модель не подглядывает. Но у внимания есть ограничение: в декодерных моделях нельзя смотреть в будущее. Декодерные модели (как GPT) используют causal masking: каждый токен может «видеть» только себя и все предыдущие токены, но не будущие. Это треугольная маска: первый токен видит только себя, второй — себя и первый, третий — себя, первый и второй. Без маски модель могла бы «подглядывать» ответ и делать вид, что умеет предсказывать. С маской она честно предсказывает вслепую. Это как экзамен, где ответы закрыты листком — и листок сдвигается только после того, как вы написали свой вариант. 🗞️
⚙️ Именно из-за нагрузки на видеопамять инженеры придумали оптимизации: multi-query attention (MQA) и grouped-query attention (GQA), чтобы не хранить отдельную копию K и V для каждой головы. У внимания квадратичная сложность по длине последовательности: чем длиннее текст, тем дороже вычисления. Об этом — в следующей главе, где мы поговорим о том, как трансформер эволюционировал и какие альтернативы у него появились. 🗞️
😅 Механизм внимания — это офисный сотрудник, который должен прочитать все письма в папке «Входящие» и решить, какие важны. Если писем тысяча — сотрудник паникует и начинает отвечать наугад. Если писем десять — сотрудник справляется, но тратит час. А если писем миллион — Сотрудник увольняется и переходит в архитектуры, которые не тратят внимание на всё подряд. Но об этом позже. 🗞️