- BrainTools - https://www.braintools.ru -

Как работает Трансформер: очень простое описание

Вот очень простое объяснение для тех, кто не хочет вдаваться в сложную математику [1], но и не готов принимать эту ключевую технологию как магию, которая просто работает. Конечно, никакого волшебства тут и нет — идея на самом деле довольно проста.

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

Например, если LLM видит: «The dog sits on the …», она продолжит: «… floor».

Но если подумать: последнее слово в этом предложении — «the». Как модель догадалась, что следующее слово должно быть «floor», только по слову «the»?

Очень просто. Вы тоже это делаете постоянно. Вот пример:

Как работает Трансформер: очень простое описание - 1

Это всего лишь один кадр из фильма. На первый взгляд — просто изображение 800×600 пикселей. На нём — человек в чёрном и другой, висящий на балке. Ничего особенного.

Но если вы знаете, что это за фильм, то в одном этом кадре для вас уже содержится весь смысл и весь сюжет фильма, не так ли?

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

То же самое и с LLM: в слове «the» уже содержится весь необходимый смысл предыдущего текста, закодированный во внутреннем векторном представлении (или, говоря технически, — это полный контекст, сформированный через механизм внимания [3]).

Именно это является ключом к пониманию архитектуры трансформеров. До появления трансформеров нейронные сети обрабатывали слова последовательно, одно за другим, забывая то, что было раньше в предложении. Это как пытаться понять фильм, запоминая только текущую сцену, или читать книгу, забывая предыдущую страницу. Рекуррентные нейронные сети (RNN) пытались это исправить, передавая информацию вперёд, но их память [4] была как у золотой рыбки — при слишком длинных предложениях всё рушилось. 

Итак, трансформер имеет несколько последовательных слоев логики:

Векторное кодирование

Представьте себе: слова поступают на вход трансформеру, но они из разных языков.

Первый, кого они встречают, — это слой входных эмбеддингов.

Слой эмбеддингов говорит: «Без проблем! Я переведу всё в универсальный язык — векторы».

Вектор — это массив чисел, получается что-то вроде:

«Hello» → [0.2, -0.6, 0.1, 0.8...]

Позиционное кодирование

Но тут возникает проблема. Наши слова теперь в виде векторов, но они потеряли своё положение в предложении!

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

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

Он добавляет информацию о позиции слова в предложении к его вектору, и вектор становится, например:

«Hello» → [0.21, -0.62, 0.13, 0.81…]

Как именно он добавляет позицию — можете посмотреть сами, по сути это просто базовая математика с использованием синусов и косинусов (а вы-то думали, что тригонометрия после школы вам больше никогда не пригодится?).

Механизм внимания (Attention)

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

А может, речь о том, как вы только что неудачно попытались подкатить к девушке у бара?

Теперь понятно, что значение слова «это» может быть очень разным в зависимости от контекста и нести в себе очень много контекста.

Вот этим и занимается механизм внимания — он создаёт связи между словами в предложении, превращая их не просто в набор слов, а в слова со смыслом, как то самое «the» из предыдущего примера.

В трансформере реализованоо Многоголовое внимание (Multi-head attention) — это как будто у вас несколько голов. Каждая «голова» обращает внимание на разные аспекты отношений между словами:

  • Голова 1 может отслеживать связи между подлежащими и сказуемыми

  • Голова 2 может следить за местоимениями и тем, к чему они относятся

  • Голова 3 может сосредоточиться на парах прилагательное + существительное

А затем все головы объединяют свои находки, чтобы получить общее, глубокое понимание смысла.

Вот тут сложная схема, иллюстрирующая всё вышесказанное, которую, честно говоря, не обязательно понимать.

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

Как работает Трансформер: очень простое описание - 2

Feed forward

После всего этого внимания наш трансформер должен обработать полученную информацию. Следующим этапом являются полносвязные нейронные сети (feed-forward networks). Они похожи на глубоких мыслителей, которые обрабатывают информацию после того, как собрали все сплетни.

«А зачем нам этот этап?» — можете спросить вы. Дело в том, что механизм внимания отлично собирает информацию, но не так хорош в её преобразовании в смысл. Нейронные сети дают модели возможность анализировать полученную информацию и извлекать закономерности.

Здесь все найденные аспекты смысла сохраняются в эмбеддинге токена:

«Hello» → [0.2145, -0.6239, 0.1314, 0.8169…]

По сути, получаются координаты в векторном пространстве для данной концепции, которая представляет полный смысл слова в его контексте, включая все найденные аспекты (цвет, форма и тд). Можно подумать, что если аспектов много, то пространство должно иметь очень много измерений. И вы окажетесь правы: обычно оно содержит порядка 12 тысяч измерений (кстати, пытаться представить это зрительно — тщетная затея, наш мозг [5] не приспособлен для работы с более чем тремя измерениями).

Layer Normalization — плагин Winamp для ИИ

Дальше происходит нормализация. Нормализация слоев подобна нормализации громкости в вашем плейлисте Spotify: разные песни могут иметь разный уровень громкости, а вы хотите, чтобы они были примерно на одном уровне. Она стандартизирует выходные значения, чтобы ни один нейрон [6] в сети не «кричал» слишком громко и не доминировал в разговоре.

Почему трансформер — это революция?

До появления трансформеров обучение нейросетей для языковых задач было примерно как пытаться научить собаку читать — медленно, мучительно и с весьма ограниченными результатами.

Трансформеры полностью изменили правила игры по нескольким причинам:

Параллелизация:

В отличие от рекуррентных нейросетей (RNN), которые обрабатывают слова по одному, трансформеры способны обрабатывать всё предложение сразу.

Дальние зависимости:

Благодаря механизму внимания трансформеры могут устанавливать связи между словами, даже если они находятся далеко друг от друга в предложении.

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

Трансформер легко поймёт связь между словами «мужчина» и «счастлив», несмотря на длинную портянку между ними.

Предобучение:

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

Оригинальный трансформер был довольно скромным по размеру, но модели вроде GPT-4 уже содержат миллиарды параметров. Это как если бы маленький семейный бизнес за пару лет превратился в международную корпорацию.

Мантра последних лет: «Чем больше модель — тем лучше она работает», хотя это и вызывает вопросы по поводу затрат вычислительных ресурсов и влияния на экологию. Обучение таких гигантов требует столько электроэнергии, сколько нужно для питания небольшого города. Из-за этого некоторые исследователи в шутку расшифровывают AI как «Always Inefficient».

Дополнительное чтение: Attention Is All You Need [7] — оригинальная статья об архитектуре трансформера.


Я из Рафт [8]. Мой телеграм-канал [9].

Пишете ваши вопросы в комментариях.

Всем добра!

Автор: Squirrelfm

Источник [10]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/14027

URLs in this post:

[1] математику: http://www.braintools.ru/article/7620

[2] обучения: http://www.braintools.ru/article/5125

[3] внимания: http://www.braintools.ru/article/7595

[4] память: http://www.braintools.ru/article/4140

[5] мозг: http://www.braintools.ru/parts-of-the-brain

[6] нейрон: http://www.braintools.ru/article/9161

[7] Attention Is All You Need: https://arxiv.org/abs/1706.03762

[8] Рафт: https://ai.raftds.ru&utm_source=habr&utm_medium=igor/

[9] телеграм-канал: https://t.me/church_of_ai

[10] Источник: https://habr.com/ru/companies/raft/articles/898854/?utm_source=habrahabr&utm_medium=rss&utm_campaign=898854

www.BrainTools.ru

Рейтинг@Mail.ru
Rambler's Top100