ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Механизм внимания: как нейросеть решает, на что смотреть

«Внимание» (attention) — главное изобретение, на котором держатся все современные ИИ. Звучит загадочно, но идея до смешного человеческая: чтобы понять слово, надо посмотреть на нужные соседние слова. Разбираем без формул.

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

Проблема, которую надо было решить

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

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

Запрос, ключ и значение

Внутри механизма у каждого слова есть три роли. Их обычно называют запрос, ключ и значение (query, key, value). Самая понятная аналогия — поиск в библиотеке.

  • Запрос — это то, что вам нужно. «Я слово "она", мне нужно найти, к кому я отношусь».
  • Ключ — это «этикетка» на каждом другом слове. «Я слово "кошка", вот моя визитка».
  • Значение — это полезное содержимое, которое слово отдаёт, если оно подошло. «Раз я тебе подхожу, забирай мой смысл».

Слово «она» сравнивает свой запрос с ключами всех слов. Где совпадение сильнее (у «кошки»), туда уходит больше «внимания», и оттуда слово забирает больше значения. Где совпадения нет — вес почти ноль.

Откуда берутся веса

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

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

Много голов лучше одной

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

Аналогия: редактор отдаёт один и тот же текст нескольким корректорам. Один ловит пунктуацию, другой — стиль, третий — факты. Каждый смотрит под своим углом, а итог собирается из всех замечаний. Так модель улавливает сразу много разных типов связей между словами.

Почему это перевернуло всё

Главный бонус внимания — независимость от расстояния. Слову всё равно, стоит важный сосед рядом или за двести слов: связь устанавливается напрямую, без длинной цепочки пересказов. Плюс все слова обрабатываются параллельно, а не строго по очереди, — это позволило обучать модели на гигантских объёмах текста на тысячах видеокарт.

ПодходКак связывает далёкие слова
Чтение по очередиЧерез длинную цепочку, память размывается
ВниманиеНапрямую, любое слово с любым

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

#attention#внимание#ИИ#нейросети#трансформер