Алексей Маркин рабочий журнал

ищет по заголовкам и тексту записей и заметок

запись 9 сентября 2026 г. · 4 мин
Все статьи

Внимание и трансформер: что происходит внутри модели

Механизм внимания без формул: как модель решает, какие слова во входе связаны между собой, почему длинный контекст дорожает квадратично и что из этого следует на практике.

Короткий ответ: внимание — это механизм, которым модель на каждом шаге решает, какие части входа важны для текущего. Каждый токен сравнивается с каждым, из сравнений получаются веса, и представление токена пересобирается как взвешенная смесь остальных.

Всё остальное в трансформере — обвязка вокруг этой операции. И почти все практические ограничения — её прямые следствия.

Что делает внимание

Возьмём фразу «модель прочитала документ, и он ей не понравился». Чтобы понять «он», нужно связать местоимение с «документ», а не с «модель».

Механизм работает так: для каждого токена считаются три представления — условно «что я ищу», «что я предлагаю» и «что я несу». Дальше «что я ищу» у токена «он» сравнивается с «что я предлагаю» у всех остальных. Где совпадение сильнее — там больше вес. И новое представление «он» собирается в основном из «документа».

Никакого правила про местоимения в модели нет. Есть операция сравнения, которая на достаточном объёме обучения приводит к таким весам.

ВХОДмодельпрочиталадокументонвес высокийвес низкийСравнений на каждом слое: n × n, где n — число токенов во входе.Вдвое длиннее вход — вчетверо больше работы.
рис. 1 Каждый с каждым. Именно полнота этого сравнения даёт способность связывать далёкие слова — и она же определяет цену.

Откуда квадратичная цена

Отсюда же. Если во входе тысяча токенов, сравнений — миллион. Две тысячи токенов — четыре миллиона. Длина растёт вдвое, работа вчетверо.

Практические следствия, которые видит любой, кто платит за вызовы:

Длинный контекст дорожает быстрее, чем кажется. Не пропорционально длине, а быстрее — и на длинных документах это заметно.

Задержка растёт так же. Первый токен ответа на длинном входе ждать дольше, и это не сеть, а вычисление.

Окно ограничено не капризом. Предел контекста — инженерный компромисс между тем, что помещается, и тем, что успевает считаться.

Современные модели используют разреженные варианты внимания, где сравниваются не все пары. Это снижает рост, но не отменяет: платить за длину всё равно приходится больше, чем линейно.

Почему середина теряется

Ещё одно следствие, самое неочевидное.

Внимание распределяет ограниченный «бюджет» весов между всеми токенами. Чем их больше, тем меньше достаётся каждому. Плюс обучение: начало и конец входа систематически оказываются важнее — в текстах, на которых учили, там обычно и стоит существенное.

Отсюда практика класть главное в начало и в конец запроса, а не в середину — и отсюда же провал качества на длинных контекстах, о котором я писал в «Контекстное окно — это не память».

Что ещё есть в трансформере

Коротко, чтобы картина была полной.

Позиционная информация. Само внимание не знает порядка слов — для него вход это множество, а не последовательность. Порядок добавляется отдельно.

Несколько «голов» внимания. Одна и та же операция выполняется параллельно несколько раз с разными представлениями: одни головы ловят синтаксис, другие — смысловые связи.

Слои. Всё это повторяется десятки раз. На нижних слоях связи локальные, на верхних — далёкие и абстрактные.

Смесь экспертов. В больших моделях на каждый токен работает лишь часть параметров. Это снижает себестоимость вычисления — но, как я разбирал в статье про стоимость, не определяет цену для вас.

Условие несогласия

Знать механизм полезно для оценки, а не для настройки: ни одна ручка в API не управляет вниманием напрямую. Если ваш вопрос — «как улучшить ответ», ответ лежит в промпте и данных, а не здесь.

Механизм отвечает на другие вопросы: почему длинный контекст стоит непропорционально, почему середина теряется и почему модель связывает далёкие слова, но путает похожие.

Чего я делать не стал бы

Не стал бы объяснять внимание через «модель обращает внимание, как человек». Метафора подсказывает намерение там, где есть арифметика сравнений, и приводит к ожиданиям, которые не сбудутся.

Не стал бы набивать контекст «на всякий случай». Каждый лишний токен не только стоит денег, но и отнимает вес у нужных.

Открытый вопрос

Механизм описывается за страницу, а поведение из него не выводится. Почему сравнение каждого с каждым, повторённое достаточное число раз, начинает решать задачи, которых в обучении не было, — объяснения нет.

Это то же неуютное место, что и в «Как работает нейросеть»: инструмент работает лучше, чем объясняется. Отсюда практический вывод — полагаться на замеры, а не на рассуждения о том, что модель «должна» уметь по устройству.