Как работает нейросеть трансформер

0
18

Как работает нейросеть трансформер

Какие существуют модели трансформеров?

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

Векторы можно визуализировать в виде серии координат в n-мерном пространстве. В качестве простого примера представьте себе двухмерный график, где x представляет собой буквенно-цифровое значение первой буквы слова, а y – его категории. Слово banana имеет значение (2,2), потому что оно начинается с буквы b и относится к категории фруктов. Слово mango имеет значение (13,2), потому что оно начинается с буквы m и также относится к категории фруктов. Таким образом, вектор (x, y) сообщает нейронной сети, что слова banana и mango относятся к одной категории.

Трансформеры полностью обрабатывают длинные последовательности с помощью параллельных вычислений, что значительно сокращает время обучения и обработки. Это позволило обучать очень большие языковые модели (LLM), такие как GPT и BERT, которые могут изучать сложные языковые представления. Они используют миллиарды параметров, отражающих широкий спектр человеческого языка и знаний, и стимулируют исследования в сфере создания более обобщенных систем искусственного интеллекта.

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

Трансформер (англ. transformer) — архитектура глубоких нейронных сетей, основанная на механизме внимания без использования рекуррентных нейронных сетей (сокр. RNN). Самое большое преимущество трансформеров по сравнению с RNN заключается в их высокой эффективности в условиях параллелизации. Впервые модель трансформера была предложена в статье Attention is All You Need [1] от разработчиков Google в 2017 году.

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

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

Трансформеры, напротив, обрабатывают целые последовательности одновременно. Распараллеливание позволяет обучать трансформер гораздо быстрее и обрабатывать с его помощью более длинные последовательности, чем применяя RNN. Механизм самовнимания также позволяет трансформерам одновременно рассматривать всю последовательность данных без повторений и скрытых векторов. Вместо этого позиционное кодирование сохраняет информацию о положении каждого элемента в последовательности.

Трансформеры и RNN

Трансформеры в значительной степени заменили RNN во многих приложениях, особенно в NLP, поскольку могут лучше справляться с длинными зависимостями. Они также более масштабируемы и эффективны, чем RNN. RNN по-прежнему полезны в определенных случаях, особенно когда размер модели и вычислительная эффективность важнее, чем регистрация взаимодействий на протяжении долгого времени.

ЧИТАТЬ ТАКЖЕ:  Как нейросеть оживляет фотографии

На этом этапе входная последовательность преобразуется в математический домен, понятный программным алгоритмам. Сначала она разбивается на отдельные компоненты или серию токенов. Например, если входными данными является предложение, то токены – это слова. Затем встраивание преобразует последовательность токенов в математическую векторную последовательность. Векторы содержат семантическую и синтаксическую информацию в виде чисел, а их атрибуты изучаются в процессе обучения.

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

Двунаправленный и авторегрессивный трансформер (BART) сочетает в себе свойства кодировщика BERT и декодера GPT. Как и BERT, он считывает слева направо и справа налево всю входную последовательность одновременно, однако генерирует выходную по одному токену за раз в зависимости от слов, выданных ранее, и информации, предоставленной кодировщиком.

Таким образом, новое представление элемента [math]x_i[/math] считаем как взвешенную сумму векторов значения: [math]z_i = \mathrm(Q x_i, K X, V X) = \sum_^n w_ v_p[/math] , где [math]X = (x_1, x_2, . x_n)[/math] — входные векторы. По факту self-attention — это soft-arg-max с температурой [math]\sqrt[/math] . Мы перемешиваем все входные векторы, чтобы получить новые векторы всех элементов, где каждый элемент зависит от всех входных элементов.

В конечном итоге модель должна сделать конкретный прогноз, например выбрать следующее слово в последовательности. Для этого нужен линейный блок. Это еще один полностью подключенный уровень, также известный как интенсивный уровень, перед заключительным этапом. Он выполняет изученное линейное отображение векторного пространства в исходную входную область. Это важнейший уровень, где часть модели, принимающая решения, берет сложные внутренние представления и превращает их в конкретные прогнозы, которые можно интерпретировать и использовать. Выходные данные этого слоя представляют собой набор баллов (часто называемых логитами) для каждого возможного токена.

2. Добавляются позиционные векторы [math]p_i[/math] : [math]h_i = x_i + p_i[/math] , [math]H = (h_1. h_n)[/math] . Это необходимо для того, чтобы отобразить информацию о позиции элемента в исходной последовательности. Основное свойство позиционного кодирования — чем дальше два вектора будут стоять друг от друга в последовательности, тем больше между ними будет расстояние. Более подробное устройство позиционного кодирования будет рассмотрено ниже.

С трансформируемыми моделями можно использовать разные методы, в том числе обучение с переносом и генерацию с дополнительной выборкой (RAG). Эти методы позволяют настраивать существующие модели для их использования в приложениях, созданных под конкретную организацию. Модели можно предварительно обучать на больших, а затем настраивать на меньших наборах данных уже под определенные задачи. Этот подход позволил повсеместно использовать сложные модели и устранил ограничения, вызванные нехваткой ресурсов для обучения с нуля больших моделей. Модели отлично работают в различных доменах и выполняют множество различных задач.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь