tariel.ge › Полезное: бесплатные книги › ИИ изнутри: от нейрона до своей моделиБесплатно · автор Тариел Бежанидзе
← ИИ изнутри ЛИСТ 08Смысл в числахРЕВ. 1
Глава 08 · Смысл в числах

Внимание: как сеть решает, на что смотреть

Одна идея, опубликованная в 2017 году, стоит за всеми современными моделями — текстовыми, графическими, звуковыми. Разберём её без формул.

Задача, которую не удавалось решить

Предложение: «Ключ на тринадцать лежал рядом с платой, и он был нужен, чтобы открутить радиатор». Что такое «он»?

Чтобы понять, сеть должна связать «он» с «ключ» через восемь слов. Старые архитектуры читали последовательно, слово за словом, и к концу предложения начало уже размывалось. Чем дальше связь, тем хуже.

Идея внимания

А что если не читать подряд, а дать каждому слову возможность посмотреть сразу на все остальные и самому решить, какие из них для него важны? Расстояние перестаёт иметь значение: первое слово и сотое равно доступны.

Три роли каждого слова

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

РольЧто означаетАналогия
ЗапросЧто это слово ищет вокруг себяПоисковая строка
КлючЧем это слово может быть полезно другимЗаголовок в каталоге
ЗначениеЧто оно передаст, если его выберутСодержимое карточки

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

Как это работает по шагам

слово «он» ищет, к чему относится
1. Берём ЗАПРОС слова «он»

2. Сравниваем его с КЛЮЧОМ каждого слова предложения
   (скалярное произведение — мера совпадения направлений)

   ключ       ████████████  0.82
   плата      ████          0.21
   радиатор   ███           0.15
   лежал      █             0.04
   ...

3. Пропускаем оценки через softmax → веса внимания,
   в сумме дающие единицу

4. Складываем ЗНАЧЕНИЯ всех слов с этими весами

5. Результат: новый вектор «он», в который
   в основном подмешано слово «ключ»
Вот и контекстный вектор

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

Несколько голов

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

ГоловаЧто может отслеживать
1К чему относится местоимение
2Кто выполняет действие
3Согласование по роду и числу
4Ближайший предлог
...Десятки других, многие без человеческого названия
Оговорка

Такие аккуратные роли — упрощение. Исследователи действительно находят головы с понятными функциями, но большинство занимается чем-то, что не сводится к named-понятию. Не ждите, что каждая голова окажется объяснимой.

Порядок слов

Обратите внимание на неприятность: механизм смотрит на все слова одинаково, без учёта позиции. «Собака укусила человека» и «человека укусила собака» для него неразличимы.

Решение: к вектору каждого слова прибавляется информация о его позиции. Есть разные способы кодировать позицию, и в современных моделях используется довольно хитрый — но смысл один: сеть должна знать, где слово стоит.

Почему это дало взрывной рост

СвойствоСледствие
Все слова обрабатываются одновременноЗадача раскладывается на тысячи видеоядер. Обучение в сотни раз быстрее
Расстояние не мешаетСвязь между первым и тысячным словом такая же прямая
Механизм универсаленРаботает не только со словами — с кусками изображений, звука, чего угодно
Хорошо масштабируетсяБольше данных и параметров — стабильно лучше результат
Возможность распараллелить — главное

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

Цена

Квадратичный рост

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

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

Проверьте, что поняли

Что дальше

Соберём из внимания и всего предыдущего полную архитектуру — ту самую, на которой работает всё, что вы запускаете.

Глава08 — Внимание: как сеть решает, на что смотреть
БлокСмысл в числах
Далее09 — Трансформер: собираем целиком
Ревизия1
↑ Оглавление Предыдущая глава← 07 · Эмбеддинги на практике: поиск по своим книгам Следующая глава09 · Трансформер: собираем целиком →

Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.