Трансформатор (архитектура глубокого обучения)
Часть серии о |
Машинное обучение и интеллектуальный анализ данных |
---|
Трансформатор , — это архитектура глубокого обучения разработанная Google и основанная на механизме многоголового внимания , предложенном в статье 2017 года « Внимание — это все, что вам нужно ». [1] Текст преобразуется в числовые представления, называемые токенами , и каждый токен преобразуется в вектор путем поиска в таблице встраивания слов . [1] На каждом уровне каждый токен затем контекстуализируется в пределах контекстного окна с другими (немаскированными) токенами с помощью параллельного с несколькими головками механизма внимания , позволяющего усиливать сигнал для ключевых токенов и уменьшать менее важные токены. Статья-трансформер, опубликованная в 2017 году, основана на механизме внимания на основе softmax, предложенном Богданау и др. ал. в 2014 году по машинному переводу , [2] [3] и быстрый контроллер веса, похожий на трансформатор, предложенный в 1992 году. [4] [5] [6]
Преимущество трансформаторов состоит в том, что они не имеют повторяющихся единиц и, следовательно, требуют меньше времени на обучение, чем предыдущие рекуррентные нейронные архитектуры , такие как длинная кратковременная память (LSTM), [7] и его более поздняя вариация была широко принята для обучения больших языковых моделей (LLM) на больших (языковых) наборах данных, таких как Википедии корпус и Common Crawl . [8]
Эта архитектура сейчас используется не только в обработке естественного языка и компьютерном зрении , [9] но и в аудио [10] и мультимодальная обработка. Это также привело к разработке предварительно обученных систем , таких как генеративные предварительно обученные преобразователи (GPT). [11] и БЕРТ [12] (Представления двунаправленного кодера от трансформаторов).
Хронология [ править ]
- В 1990 году сеть Элмана , используя рекуррентную нейронную сеть , закодировала каждое слово в обучающем наборе как вектор, называемый встраиванием слов , и весь словарь как векторную базу данных , что позволило ей выполнять такие задачи, как прогнозирование последовательности, которые не по силам простому многослойному перцептрону . Недостатком статических вложений было то, что они не различали несколько значений слов с одинаковым написанием. [13]
- опубликовал книгу «Быстрый контроллер веса» В 1992 году Юрген Шмидхубер . [4] Он учится отвечать на запросы, программируя веса внимания другой нейронной сети через внешние произведения ключевых векторов и векторов значений, называемых ОТ и ТО. Позже было показано, что быстрый контроллер веса эквивалентен ненормализованному линейному трансформатору. [6] [5] [14] [15] Терминология «обучение внутренним фокусам внимания» была введена в 1993 году. [16]
- В 1993 году модели выравнивания IBM использовались для статистического машинного перевода . [17]
- В 1997 году был предложен предшественник большой языковой модели, использующий рекуррентные нейронные сети , такие как долгосрочная кратковременная память .
- слов был использован большой текстовый корпус объемом в один миллиард слов, взятый из Интернета, который в то время назывался «очень-очень большим» В 2001 году для устранения неоднозначности . [18]
- В 2012 году AlexNet продемонстрировала эффективность больших нейронных сетей для распознавания изображений, поощряя использование больших искусственных нейронных сетей вместо старых статистических подходов.
- с 380 млн параметров модель seq2seq для машинного перевода с использованием двух сетей с длинной краткосрочной памятью ( LSTM ). В 2014 году Суцкевер и др. предложили [19] Архитектура состоит из двух частей. Кодер — это LSTM, который принимает последовательность токенов и превращает ее в вектор. Декодер — это еще один LSTM, который преобразует вектор в последовательность токенов.
- В 2014 году стробирование оказалось полезным в модели seq2seq со 130 млн параметров , в которой использовались упрощенные вентилируемые рекуррентные единицы (GRU). Богданау и др. [20] показали, что GRU не лучше и не хуже закрытых LSTM. [21] [22]
- В 2014 году Богданов и др. [23] улучшил предыдущую модель seq2seq, используя «аддитивный» механизм внимания между двумя сетями LSTM. Однако это еще не был тот тип внимания, который можно распараллелить (масштабируемое «скалярное произведение»), позже предложенный в статье о трансформаторе 2017 года.
- В 2015 году относительная производительность архитектур моделей глобального и локального (оконного) внимания была оценена Луонгом и др.: было обнаружено, что архитектура смешанного внимания улучшает переводы, предлагаемые архитектурой Богданау, в то время как использование архитектуры локального внимания сокращает время перевода. [24]
- В 2016 году Google Translate постепенно заменил старый подход статистического машинного перевода новым подходом, основанным на нейронных сетях , который включал модель seq2seq в сочетании с LSTM и «аддитивным» механизмом внимания. Они достигли более высокого уровня производительности, чем статистический подход, на разработку которого ушло десять лет, всего за девять месяцев. [25] [26]
- В 2017 году оригинальная (размером 100 М) модель преобразователя кодер-декодер с более быстрым (распараллеливаемым или разложимым) механизмом внимания была предложена в статье « Внимание — это все, что вам нужно ». Поскольку у модели были трудности со сходимостью, было предложено линейно масштабировать скорость обучения от 0 до максимального значения для первой части обучения (т. е. 2% от общего количества шагов обучения). Цель модели-трансформера состоит в том, чтобы взять модель seq2seq и удалить ее рекуррентные нейронные сети, но сохранить ее механизм аддитивного внимания. [1]
- В 2018 году в статье ELMo все предложение было обработано, прежде чем каждому слову в предложении был присвоен вектор внедрения. Для расчета таких глубоко контекстуализированных вложений для каждого слова использовался двунаправленный LSTM, что улучшило направление исследований, проведенное на основе Bag of Words и word2vec .
- (размером более 1B) использовался преобразователь только для энкодера В 2018 году в модели BERT , что усовершенствовало ELMo. [27]
- В 2020 году трансформер зрения [28] и преобразователь с расширенной сверткой для обработки речи [29] превзошли рекуррентные нейронные сети , ранее использовавшиеся для зрения и речи.
- В 2020 году трудности с конвергенцией исходного преобразователя были решены за счет нормализации слоев до (а не после) многоголового внимания Сюн и др. Это называется предварительным трансформатором LN. [30]
- В 2023 году однонаправленные («авторегрессивные») трансформаторы использовались в GPT-3 (размером более 100B) и других моделях OpenAI GPT . [31] [32]
Предшественники [ править ]
До трансформаторов в закрытые рекуррентные нейронные сети были добавлены предшественники механизма внимания , такие как LSTM и закрытые рекуррентные единицы (GRU), которые обрабатывали наборы данных последовательно. Зависимость от предыдущих вычислений токенов не позволила им распараллелить механизм внимания. В 1992 году быстрый контроллер веса был предложен в качестве альтернативы рекуррентным нейронным сетям, способным обучаться «внутренним прожекторам внимания». [16] [4] Теоретически информация от одного токена может распространяться сколь угодно далеко вниз по последовательности, но на практике проблема исчезающего градиента оставляет состояние модели в конце длинного предложения без точной, извлекаемой информации о предыдущих токенах.
Производительность старых моделей была улучшена за счет добавления механизма внимания, который позволял модели получать доступ к любой предыдущей точке последовательности. Уровень внимания взвешивает все предыдущие состояния в соответствии с изученной мерой релевантности, предоставляя соответствующую информацию об удаленных токенах. Это оказалось особенно полезным при языковом переводе , где отдаленный контекст может иметь решающее значение для значения слова в предложении. Вектор состояния стал доступен только после того, как было обработано последнее английское слово во время, например, перевода его с французского с помощью модели LSTM. Хотя теоретически такой вектор сохраняет информацию обо всем исходном предложении, на практике информация сохраняется плохо. Если добавляется механизм внимания, декодеру предоставляется доступ к векторам состояния каждого входного слова, а не только последнего, и он может узнать веса внимания, которые определяют, сколько внимания уделять каждому входному вектору состояния. Дополнение моделей seq2seq механизмом внимания было впервые реализовано в контексте машинного перевода Богданау, Чо и Бенджио в 2014 году. [2] [3]
Разложимое внимание [ править ]
В 2016 году высокораспараллеливаемое разлагаемое внимание было успешно объединено с сетью прямой связи . [33] Это указывало на то, что механизмы внимания сами по себе мощные и что последовательная рекуррентная обработка данных не является необходимой для достижения повышения качества рекуррентных нейронных сетей с вниманием. В 2017 году Васвани и др. также предложил заменить рекуррентные нейронные сети самообслуживанием и начал попытки оценить эту идею. [1] Трансформаторы, используя механизм внимания, обрабатывая все токены одновременно, вычисляли «мягкие» веса между ними в последовательных слоях. Поскольку механизм внимания использует информацию только о других токенах из нижних уровней, ее можно вычислять для всех токенов параллельно, что приводит к повышению скорости обучения.
Обучение [ править ]
Методы стабилизации тренировок [ править ]
Простая архитектура трансформатора с трудом сходилась. В оригинальной статье [1] авторы рекомендовали использовать прогрев скорости обучения. То есть скорость обучения должна линейно увеличиваться от 0 до максимального значения для первой части обучения (обычно рекомендуется составлять 2% от общего количества шагов обучения), а затем снова снижаться.
В статье 2020 года было обнаружено, что использование нормализации слоев до (а не после) слоев многоголового внимания и прямой связи стабилизирует обучение, не требуя повышения скорости обучения. [30]
Предварительная настройка [ править ]
Трансформаторы обычно проходят самостоятельное обучение , включающее предварительную подготовку без присмотра с последующей контролируемой точной настройкой . Предварительное обучение обычно выполняется на большем наборе данных, чем точная настройка, из-за ограниченной доступности помеченных обучающих данных. Задачи по предварительному обучению и тонкой настройке обычно включают в себя:
- языковое моделирование [12]
- предсказание следующего предложения [12]
- ответ на вопрос [8]
- понимание прочитанного
- анализ настроений [1]
- перефразируя [1]
Бумага-трансформер Т5. [34] документирует большое количество предтренировочных задач. Некоторые примеры:
- восстановление поврежденного текста:
Thank you <X> me to your party <Y> week.
-><X> for inviting <Y> last <Z>
где<Z>
означает «конец вывода». - перевод:
translate English to German: That is good.
->Das ist gut.
. - оценка грамматической приемлемости предложения ( предложение CoLA ):
The course is jumping well.
->not acceptable
.
Приложения [ править ]
Трансформатор добился больших успехов в обработке естественного языка (НЛП), например, в задачах машинного перевода и прогнозирования временных рядов . Многие большие языковые модели, такие как GPT-2 , GPT-3 , GPT-4 , Claude , BERT , XLNet, RoBERTa и ChatGPT, демонстрируют способность преобразователей выполнять широкий спектр таких задач, связанных с НЛП, и имеют потенциал для поиска реальные приложения. Они могут включать в себя:
- машинный перевод
- обобщение документов
- создание документов
- распознавание названного объекта (NER) [35]
- анализ биологической последовательности
- написание компьютерного кода на основе требований, выраженных на естественном языке.
- видео понимание .
Помимо приложений НЛП, он также добился успеха в других областях, таких как компьютерное зрение или приложения для сворачивания белков (например, AlphaFold ).
В качестве наглядного примера можно привести Ithaca — преобразователь только для энкодера с тремя выходными головками. В качестве входных данных принимается древнегреческая надпись в виде последовательности символов, но с заменой неразборчивых символов на «-». Его три выходные головки соответственно выводят распределения вероятностей по греческим символам, местоположению надписи и дате надписи. [36]
Реализации [ править ]
Модель преобразователя реализована в стандартных средах глубокого обучения, таких как TensorFlow и PyTorch .
Transformers — это библиотека, созданная Hugging Face , которая предоставляет архитектуры на основе трансформаторов и предварительно обученные модели. [11]
Архитектура [ править ]
Все трансформаторы имеют одинаковые первичные компоненты:
- Токенизаторы, которые преобразуют текст в токены.
- Один слой внедрения, который преобразует токены и позиции токенов в векторные представления.
- Слои преобразователей, которые выполняют повторяющиеся преобразования векторных представлений, извлекая все больше и больше лингвистической информации. Они состоят из чередующихся слоев внимания и прямой связи.
- (необязательно) Слой отмены внедрения, который преобразует окончательные векторные представления обратно в распределение вероятностей по токенам.
Слои трансформатора могут быть одного из двух типов: кодировщика и декодера . В оригинальной статье использовались оба они, тогда как более поздние модели включали только один из них. BERT — пример модели только для кодировщика; GPT — это модели только для декодера.
Ввод [ править ]
Входной текст анализируется на токены с помощью токенизатора, чаще всего кодирующего пару байтов токенизатора, , и каждый токен преобразуется в вектор посредством поиска в таблице встраивания слов . Затем к встраиванию слова добавляется позиционная информация токена.
Архитектура кодировщика-декодера [ править ]
Как и более ранние модели seq2seq , исходная модель трансформатора использовала архитектуру кодер-декодер . Кодер состоит из слоев кодирования, которые итеративно обрабатывают входные токены один уровень за другим, а декодер состоит из слоев декодирования, которые итеративно обрабатывают выходные данные кодера, а также выходные токены декодера.
Функция каждого уровня кодера заключается в создании контекстуализированных представлений токенов, где каждое представление соответствует токену, который «смешивает» информацию из других входных токенов через механизм самообслуживания. Каждый уровень декодера содержит два подуровня внимания: (1) перекрестное внимание для включения выходных данных кодера (контекстуализированные входные представления токенов) и (2) самовнимание для «смешивания» информации между входными токенами в декодер (т. е. токены, сгенерированные на данный момент во время вывода). [37] [38]
И уровни кодера, и декодера имеют нейронную сеть прямого распространения для дополнительной обработки выходных данных и содержат остаточные соединения и этапы нормализации слоев. [38]
к точечному Масштабированное произведению внимание
Строительные блоки трансформатора представляют собой масштабированные со скалярным произведением единицы внимания . Для каждой единицы внимания модель преобразователя изучает три весовые матрицы: веса запроса , ключевые веса и веса значений . За каждый токен , представление входного токена умножается на каждую из трех весовых матриц для получения вектора запроса , ключевой вектор и вектор значений . Веса внимания рассчитываются с использованием запроса и ключевых векторов: вес внимания из токена жетон является скалярным произведением между и . Веса внимания делятся на квадратный корень из размерности ключевых векторов: , который стабилизирует градиенты во время тренировки, и прошел через softmax , который нормализует веса. Тот факт, что и разные матрицы, позволяет вниманию быть несимметричным: если лексема занимается жетоном (т.е. велик), это не обязательно означает, что токен займусь жетоном (т.е. может быть небольшим). Выход блока внимания для токена представляет собой взвешенную сумму векторов значений всех токенов, взвешенных по , внимание от токена к каждому токену.
Вычисление внимания для всех токенов можно выразить как одно большое матричное вычисление с использованием функции softmax , которая полезна для обучения благодаря оптимизации вычислительных матричных операций, позволяющей быстро вычислять матричные операции. Матрицы , и определяются как матрицы, в которых эти строки являются векторами , , и соответственно. Тогда мы можем представить внимание как
где softmax отсчитывается по горизонтальной оси.
Многоголовое внимание [ править ]
Один набор матрицы называются « головой внимания» , и каждый слой модели преобразователя имеет несколько голов внимания. В то время как каждая голова внимания обслуживает токены, которые имеют отношение к каждому токену, несколько голов внимания позволяют модели делать это для разных определений «релевантности». Кроме того, поле влияния, представляющее релевантность, может постепенно расширяться на последующих уровнях. Многие преобразователи внимания кодируют отношения релевантности, значимые для людей. Например, некоторые головы внимания могут сосредоточиться в основном на следующем слове, тогда как другие в основном переключаются с глаголов на их прямые объекты. [39] Вычисления для каждой головы внимания могут выполняться параллельно , что обеспечивает быструю обработку. Выходные данные слоя внимания объединяются для передачи в слои нейронной сети прямой связи .
Конкретно, пусть множественные головы внимания индексируются , тогда мы имеем
Замаскированное внимание [ править ]
Возможно, потребуется вырезать связи внимания между некоторыми парами слов. Например, декодер позиции токена не должен иметь доступа к позиции токена . Это можно сделать до этапа softmax, добавив матрицу маски. то есть в записях, где необходимо отключить ссылку внимания, и в других местах:
Кодер [ править ]
Каждый кодер состоит из двух основных компонентов: механизма самообслуживания и нейронной сети прямой связи. Механизм самообслуживания принимает входные кодировки от предыдущего кодировщика и взвешивает их соответствие друг другу для создания выходных кодировок. Нейронная сеть с прямой связью дополнительно обрабатывает каждую выходную кодировку индивидуально. Эти выходные кодировки затем передаются следующему кодировщику в качестве входных данных, а также декодерам.
Первый кодер принимает в качестве входных данных позиционную информацию и вложения входной последовательности, а не кодировки. Информация о положении необходима преобразователю для использования порядка последовательности, поскольку никакая другая часть преобразователя не использует ее. [1]
Кодер является двунаправленным. Внимание может быть обращено на токены до и после текущего токена. Токены используются вместо слов для учета многозначности .
Позиционное кодирование [ править ]
Позиционное кодирование — это векторное представление фиксированного размера, которое инкапсулирует относительные позиции токенов в целевой последовательности: оно предоставляет модели преобразователя информацию о том, где находятся слова во входной последовательности.
Позиционное кодирование определяется как функция типа , где является положительным четным целым числом . Полное позиционное кодирование, определенное в оригинальной статье, задается уравнением:
Здесь, это свободный параметр, который должен быть значительно больше самого большого это будет введено в функцию позиционного кодирования. В оригинальной статье [1] авторы выбрали .
Функция имеет более простую форму, если ее записать как сложную функцию типа
Основная причина, по которой авторы выбрали ее в качестве функции позиционного кодирования, заключается в том, что она позволяет выполнять сдвиги как линейные преобразования:
Взяв линейную сумму, любую свертку также можно реализовать как линейные преобразования:
В типичных реализациях все операции выполняются над действительными числами, а не над комплексными числами, но поскольку комплексное умножение можно реализовать как умножение реальной матрицы 2 на 2 , это всего лишь разница в обозначениях.
Декодер [ править ]
Каждый декодер состоит из трех основных компонентов: механизма самоконтроля, механизма внимания к кодировкам и нейронной сети прямой связи. Декодер функционирует аналогично кодировщику, но в него вставлен дополнительный механизм внимания, который вместо этого извлекает соответствующую информацию из кодировок, сгенерированных кодировщиками. Этот механизм также можно назвать вниманием кодера-декодера . [1] [38]
Как и первый кодер, первый декодер принимает в качестве входных данных позиционную информацию и внедрения выходной последовательности, а не кодировки. Преобразователь не должен использовать текущий или будущий выходной сигнал для прогнозирования выходного сигнала, поэтому выходная последовательность должна быть частично замаскирована, чтобы предотвратить обратный поток информации. [1] Это позволяет генерировать авторегрессионный текст. Для всех голов внимания внимание не может быть сосредоточено на следующих токенах. За последним декодером следует окончательное линейное преобразование и слой softmax для получения выходных вероятностей по словарю.
Все члены серии OpenAI GPT имеют архитектуру только для декодера.
Терминология [ править ]
В больших языковых моделях терминология несколько отличается от терминологии, использованной в оригинальной статье Transformer: [40]
- «только кодер»: полный кодер, полный декодер.
- «кодер-декодер»: полный кодер, авторегрессионный декодер.
- «только декодер»: авторегрессионный кодер, авторегрессионный декодер.
Здесь «авторегрессия» означает, что в головку внимания вставляется маска, чтобы обнулить все внимание от одного токена до всех следующих за ним токенов, как описано в разделе «Маскированное внимание».
Обычно языковые модели на основе Transformer делятся на два типа: причинные (или «авторегрессивные») и маскированные. Серия GPT предназначена только для причинной связи и декодера. BERT маскируется и используется только кодировщиком. [41] [42] Серия T5 представляет собой кодер-декодер с полным кодером и авторегрессионным декодером. [34]
Последующая работа [ править ]
Альтернативные функции активации [ править ]
Оригинальный трансформатор использует ReLU функцию активации . Были разработаны и другие функции активации, такие как SwiGLU. [43]
Альтернативные позиционные кодировки [ править ]
Трансформаторы могут использовать другие методы позиционного кодирования, кроме синусоидального. [44]
РОПЭ [ править ]
RoPE (поворотно-позиционное встраивание), [45] лучше всего объяснить, рассматривая список двумерных векторов . Теперь выберите угол . Тогда кодировка RoPE
Преимущество RoPE заключается в том, что скалярное произведение между двумя векторами зависит только от их относительного местоположения:
АлиБи [ править ]
ALiBi (Внимание с линейными смещениями) [46] не является заменой позиционного энкодера оригинального трансформатора. Вместо этого это дополнительный позиционный энкодер, который напрямую подключается к механизму внимания. В частности, механизм внимания ALiBi
ALiBi позволяет выполнять предварительное обучение в коротких контекстных окнах, а затем выполнять точную настройку в более длинных контекстных окнах. Поскольку он напрямую подключается к механизму внимания, его можно комбинировать с любым позиционным энкодером, который подключается в «низ» всей сети (именно там находится синусоидальный энкодер на оригинальном трансформаторе, а также RoPE и многие другие, находятся).
Кодировки относительного положения [ править ]
Кодирование относительного положения [47] похож на ALiBi, но более общий:
Эффективная реализация [ править ]
FlashAttention [ править ]
FlashAttention [48] — это алгоритм, который эффективно реализует механизм внимания трансформатора на графическом процессоре. Он выполняет умножение матриц в блоках , так что каждый блок помещается в кэш графического процессора, и за счет тщательного управления блоками минимизирует копирование данных между кэшами графического процессора (поскольку перемещение данных происходит медленно).
Улучшенная версия FlashAttention-2. [49] [50] [51] был разработан для удовлетворения растущего спроса на языковые модели, способные обрабатывать контексты большей длины. Он предлагает усовершенствования в разделении работы и параллелизме, что позволяет ему достигать производительности до 230 терафлопс/с на графических процессорах A100 ( FP16 / BF16 ), что в 2 раза превышает скорость исходного FlashAttention.
Ключевые достижения в FlashAttention-2 включают сокращение количества FLOP, не относящихся к Matmul, улучшенный параллелизм по размеру длины последовательности, лучшее разделение работы между деформациями графического процессора, а также добавленную поддержку размеров головы до 256, а также внимания к нескольким запросам (MQA) и группировки. запрос внимания (GQA).
Тесты показали, что FlashAttention-2 работает до 2 раз быстрее, чем FlashAttention, и до 9 раз быстрее, чем стандартная реализация внимания в PyTorch. Будущие разработки включают оптимизацию для нового оборудования, такого как графические процессоры H100 , и новых типов данных, таких как FP8.
Внимание к множественным запросам [ править ]
Многозапросное внимание изменяет механизм многоголового внимания. [52] В то время как обычно,
Это нейтрально влияет на качество модели и скорость обучения, но увеличивает скорость вывода.
Спекулятивное декодирование [ править ]
Трансформаторы используются в больших языковых моделях для генерации авторегрессионных последовательностей: генерации потока текста по одному токену за раз. Однако в большинстве случаев декодирование языковых моделей ограничено памятью, а это означает, что у нас есть свободная вычислительная мощность. Спекулятивное декодирование [53] [54] использует эту свободную вычислительную мощность, параллельно вычисляя несколько токенов. Подобно спекулятивному выполнению в процессорах, будущие токены вычисляются одновременно, предполагая значение предыдущих токенов, а затем отбрасываются, если оказывается, что предположение было неверным.
В частности, рассмотрим модель преобразователя, такую как GPT-3, с размером контекстного окна 512. Чтобы сгенерировать все контекстное окно авторегрессионно с жадным декодированием, его необходимо запустить 512 раз, каждый раз генерируя токен. . Однако, если бы у нас было какое-то обоснованное предположение о значениях этих токенов, мы могли бы проверить их все параллельно, за один прогон модели, проверив, что каждый действительно является токеном с наибольшей логарифмической вероятностью в -ый вывод.
При спекулятивном декодировании меньшая модель или какая-либо другая простая эвристика используется для генерации нескольких спекулятивных токенов, которые впоследствии проверяются более крупной моделью. Например, предположим, что небольшая модель сгенерировала четыре спекулятивных токена: . Эти токены проходят через более крупную модель, и только и принимаются. Тот же запуск большой модели уже сгенерировал новый токен. заменить , и полностью отбрасывается. Затем процесс повторяется (начиная с 4-го токена), пока не будут сгенерированы все токены.
Для нежадного декодирования применяются аналогичные идеи, за исключением того, что спекулятивные токены принимаются или отклоняются стохастически, таким образом, чтобы гарантировать, что окончательное распределение выходных данных будет таким же, как если бы спекулятивное декодирование не использовалось. [53] [55]
Субквадратичные преобразователи [ править ]
Обучение архитектуры на основе трансформатора может быть дорогостоящим, особенно для длинных входных сигналов. [56] Альтернативные архитектуры включают Reformer (который снижает вычислительную нагрузку от к [56] ), или такие модели, как ETC/BigBird (которые могут свести его к ) [57] где длина последовательности. Это делается с использованием локально-зависимого хеширования и обратимых слоев. [58] [59]
Обычным преобразователям требуется объем памяти, квадратичный по размеру контекстного окна. Трансформаторы без внимания [60] свести это к линейной зависимости, сохранив при этом преимущества преобразователя, привязав ключ к значению.
Дальняя арена (2020) [61] является стандартным эталоном для сравнения поведения архитектур трансформаторов при длинных входных сигналах.
Случайное внимание (2021) [62] использует случайные функции Фурье :
Это приближение можно вычислить за линейное время, так как мы можем вычислить матрицу сначала, затем умножьте его на запрос. По сути, нам удалось получить более точную версию
Исполнитель (2022) [63] использует то же случайное внимание к функциям, но сначала независимо выбираются из нормального распределения , затем они обрабатываются по Граму-Шмидту .
Мультимодальность [ править ]
Трансформеры также можно использовать/адаптировать для модальностей (ввода или вывода), помимо текста, обычно путем поиска способа «токенизации» модальности.
Трансформаторы зрения [28] адаптируйте преобразователь к компьютерному зрению, разбивая входные изображения на ряд фрагментов, превращая их в векторы и обрабатывая их как токены в стандартном преобразователе.
Конформер [29] и позже Шепот [64] следуйте той же схеме для распознавания речи , сначала превращая речевой сигнал в спектрограмму , которая затем обрабатывается как изображение, т.е. разбивается на серию патчей, превращается в векторы и обрабатывается как токены в стандартном преобразователе.
Воспринимающие , Эндрю Джегл и др. (2021) [65] [66] могут учиться на больших объемах разнородных данных.
Что касается изображений вывода , Пиблс и др. представили диффузионный преобразователь (DiT), который облегчает использование архитектуры преобразователя для создания изображений на основе диффузии . [67] Кроме того, Google выпустила генератор изображений, ориентированный на трансформатор, под названием «Muse», основанный на технологии параллельного декодирования и генеративного преобразователя в масках. [68] (Трансформеры играли менее центральную роль в предшествующих технологиях создания изображений. [69] хотя и все равно значительный. [70] )
См. также [ править ]
- Perceiver - алгоритм машинного обучения для нетекстовых данных.
- BERT (языковая модель) – языковая модель, разработанная Google.
- GPT-3 — модель языка генерации текста 2020 года.
- GPT-4 – модель языка генерации текста 2023 г.
- ChatGPT — чат-бот и виртуальный помощник, разработанный OpenAI.
- У Дао - китайская мультимодальная программа искусственного интеллекта
- Трансформатор зрения — алгоритм машинного обучения для обработки изображений
- BLOOM (языковая модель) – многоязычная языковая модель открытого доступа.
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с д и ж г час я дж к Васвани, Ашиш ; Шазир, Ноам; Пармар, Ники; Ушкорейт, Якоб; Джонс, Лион; Гомес, Эйдан Н ; Кайзер, Лукаш; Полосухин, Илья (2017). «Внимание — это все, что вам нужно» (PDF) . Достижения в области нейронных систем обработки информации . 30 . Карран Ассошиэйтс, Инк.
- ^ Jump up to: Перейти обратно: а б Богданов; Чо, Кёнхён; Бенджио, Йошуа (1 сентября 2014 г.). «Нейронный машинный перевод путем совместного обучения выравниванию и переводу». arXiv : 1409.0473 [ cs.CL ].
- ^ Jump up to: Перейти обратно: а б Луонг, Минь-Танг; Фам, Хьеу; Мэннинг, Кристофер Д. (17 августа 2015 г.). «Эффективные подходы к нейронному машинному переводу, основанному на внимании». arXiv : 1508.04025 [ cs.CL ].
- ^ Jump up to: Перейти обратно: а б с Шмидхубер, Юрген (1992). «Научимся контролировать быстрые воспоминания: альтернатива повторяющимся сетям». Нейронные вычисления . 4 (1): 131–139. дои : 10.1162/neco.1992.4.1.131 . S2CID 16683347 .
- ^ Jump up to: Перейти обратно: а б Шлаг, Иманол; Ириэ, Кадзуки; Шмидхубер, Юрген (2021). «Линейные трансформаторы — тайно быстрые программисты веса». ICML 2021 . Спрингер. стр. 9355–9366.
- ^ Jump up to: Перейти обратно: а б Катаропулос, Ангелос; Вьяс, Апурв; Паппас, Николаос; Флере, Франсуа (2020). «Трансформеры — это RNN: быстрые авторегрессионные трансформаторы с линейным вниманием» . ИКМЛ 2020 . ПМЛР. стр. 5156–5165.
- ^ Хохрайтер, Зепп ; Шмидхубер, Юрген (1 ноября 1997 г.). «Долгая кратковременная память». Нейронные вычисления . 9 (8): 1735–1780. дои : 10.1162/neco.1997.9.8.1735 . ISSN 0899-7667 . ПМИД 9377276 . S2CID 1915014 .
- ^ Jump up to: Перейти обратно: а б «Лучшие языковые модели и их последствия» . ОпенАИ . 14 февраля 2019 г. Архивировано из оригинала 19 декабря 2020 г. Проверено 25 августа 2019 г.
- ^ Хэ, Ченг (31 декабря 2021 г.). «Трансформатор в резюме» . Трансформатор в ЦВ . На пути к науке о данных. Архивировано из оригинала 16 апреля 2023 года . Проверено 19 июня 2021 г.
- ^ Рэдфорд, Алек; Чон Ук Ким; Сюй, Тао; Брокман, Грег; МакЛиви, Кристина; Суцкевер, Илья (2022). «Надежное распознавание речи посредством крупномасштабного слабого контроля». arXiv : 2212.04356 [ eess.AS ].
- ^ Jump up to: Перейти обратно: а б Вольф, Томас; Дебют, Лисандра; Сан, Виктор; Шомон, Жюльен; Деланг, Клеман; Мой, Энтони; Систак, Пьеррик; Раулт, Тим; Луф, Реми; Фунтович, Морган; Дэвисон, Джо; Шлейфер, Сэм; фон Платен, Патрик; Ма, Клара; Джернит, Ясин; Плю, Жюльен; Сюй, Канвен; Ле Скао, Тевен; Гуггер, Сильвен; Драма, Мариама; Лоест, Квентин; Раш, Александр (2020). «Трансформеры: современная обработка естественного языка». Материалы конференции 2020 года по эмпирическим методам обработки естественного языка: системные демонстрации . стр. 38–45. doi : 10.18653/v1/2020.emnlp-demos.6 . S2CID 208117506 .
- ^ Jump up to: Перейти обратно: а б с «BERT с открытым исходным кодом: современная предварительная подготовка по обработке естественного языка» . Блог Google AI . 2 ноября 2018 г. Архивировано из оригинала 13 января 2021 г. Проверено 25 августа 2019 г.
- ^ Элман, Джеффри Л. (март 1990 г.). «Нахождение структуры во времени» . Когнитивная наука . 14 (2): 179–211. дои : 10.1207/s15516709cog1402_1 . S2CID 2763403 .
- ^ Хороманский, Кшиштоф; Лихошерстов Валерий; Дохан, Дэвид; Сун, Синъю; Гейн, Андреа; Сарлос, Тамас; Хокинс, Питер; Дэвис, Джаред; Мохиуддин, Афроз; Кайзер, Лукаш; Беланджер, Дэвид; Колвелл, Люси; Веллер, Адриан (2020). «Переосмысление внимания с исполнителями». arXiv : 2009.14794 [ cs.CL ].
- ^ Шмидхубер, Юрген (26 марта 2021 г.). «26 марта 1991 года: нейронные сети учатся программировать нейронные сети с быстрыми весами — первые варианты Трансформера. 2021-: Новинки!» . ИДСИА, Швейцария. Архивировано из оригинала 5 декабря 2023 года . Проверено 29 декабря 2023 г.
- ^ Jump up to: Перейти обратно: а б Шмидхубер, Юрген (1993). «Уменьшение соотношения между сложностью обучения и количеством изменяющихся во времени переменных в полностью рекуррентных сетях». ИКАНН, 1993 год . Спрингер. стр. 460–463.
- ^ Браун, Питер Ф. (1993). «Математика статистического машинного перевода: оценка параметров». Компьютерная лингвистика (19): 263–311.
- ^ Банко, Микеле; Брилл, Эрик (2001). «Масштабирование до очень-очень больших корпусов для устранения неоднозначности на естественном языке» . Материалы 39-го ежегодного собрания Ассоциации компьютерной лингвистики - ACL '01 . Морристаун, Нью-Джерси, США: Ассоциация компьютерной лингвистики: 26–33. дои : 10.3115/1073012.1073017 . S2CID 6645623 .
- ^ Суцкевер, Илья; Виньялс, Ориол; Ле, Куок V (2014). «Последовательное обучение с помощью нейронных сетей» . Достижения в области нейронных систем обработки информации . 27 . Curran Associates, Inc. arXiv : 1409.3215 .
- ^ Чо, Кёнхён; ван Мерриенбур, Барт; Богданов Дмитрий; Бенджио, Йошуа (2014). «О свойствах нейронного машинного перевода: подходы кодировщика-декодера» . Материалы SSST-8, Восьмого семинара по синтаксису, семантике и структуре статистического перевода . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 103–111. arXiv : 1409.1259 . дои : 10.3115/v1/w14-4012 . S2CID 11336213 .
- ^ Чунг, Джунён; Гульчере, Чаглар; Чо, КёнХён; Бенджио, Йошуа (2014). «Эмпирическая оценка вентилируемых рекуррентных нейронных сетей при моделировании последовательностей». arXiv : 1412.3555 [ cs.NE ].
- ^ Грубер, Н.; Йокиш, А. (2020), «Являются ли клетки GRU более специфичными, а клетки LSTM более чувствительными при классификации текста по мотивам?», Frontiers in Artificial Intelligence , 3 : 40, doi : 10.3389/frai.2020.00040 , PMC 7861254 , PMID 33733157 , S2CID 220252321
- ^ Богданов Дмитрий; Чо, Кёнхён; Бенджио, Йошуа (1 сентября 2014 г.). «Нейронный машинный перевод путем совместного обучения выравниванию и переводу». arXiv : 1409.0473 [ cs.CL ].
- ^ Луонг, Минь-Танг; Фам, Хьеу; Мэннинг, Кристофер Д. (2015). «Эффективные подходы к нейронному машинному переводу, основанному на внимании». arXiv : 1508.04025 [ cs.CL ].
{{cite arXiv}}
: Неизвестный параметр|website=
игнорируется ( помогите ) - ^ Льюис-Краус, Гидеон (14 декабря 2016 г.). «Великое пробуждение искусственного интеллекта» . Нью-Йорк Таймс . ISSN 0362-4331 . Архивировано из оригинала 24 мая 2023 года . Проверено 22 июня 2023 г.
- ^ Ву, Юнхуэй; и др. (01 сентября 2016 г.). «Система нейронного машинного перевода Google: преодоление разрыва между человеческим и машинным переводом». arXiv : 1609.08144 [ cs.CL ].
- ^ Девлин, Джейкоб; Чанг, Мин-Вэй; Ли, Кентон; Тутанова Кристина (11 октября 2018 г.). «БЕРТ: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка». arXiv : 1810.04805v2 [ cs.CL ].
- ^ Jump up to: Перейти обратно: а б Досовицкий, Алексей; Бейер, Лукас; Колесников, Александр; Вайссенборн, Дирк; Чжай, Сяохуа; Унтертинер, Томас; Дегани, Мостафа; Редуктор, Матиас; Хейголд, Джордж; Гелли, Сильвен; Ушкорейт, Якоб (3 июня 2021 г.). «Изображение стоит 16x16 слов: преобразователи для распознавания изображений в масштабе». arXiv : 2010.11929 [ cs.CV ].
- ^ Jump up to: Перейти обратно: а б Гулати, Анмол; Чиу, Чун-Чэн; Чжан, Юй; Ван, Шибо; У, Юнхуэй (2020). Conformer: преобразователь с расширенной сверткой для распознавания речи». arXiv : 2005.08100 [ eess.AS ].
- ^ Jump up to: Перейти обратно: а б с Сюн, Жуйбин; Хэ, Ди; Чжэн, Шусинь; Син, Чэнь, Хуэйшуай; Ван, Лю, Те-Янь (29 июня 2020 г.). Нормализация слоев в архитектуре трансформатора». arXiv : 2002.04745 [ cs.LG ].
- ^ «Улучшение понимания языка с помощью обучения без учителя» . openai.com . 11 июня 2018 г. Архивировано из оригинала 18 марта 2023 г. Проверено 18 марта 2023 г.
- ^ Finetune-transformer-lm , OpenAI, 11 июня 2018 г. , получено 1 мая 2023 г.
- ^ «Документы с кодом — разложимая модель внимания для вывода на естественном языке» . paperswithcode.com .
- ^ Jump up to: Перейти обратно: а б Раффель, Колин; Шазир, Ноам; Робертс, Адам; Ли, Кэтрин; Наранг, Шаран; Матена, Майкл; Чжоу, Яньци; Ли, Вэй; Лю, Питер Дж. (01 января 2020 г.). «Изучение границ трансферного обучения с помощью унифицированного преобразователя текста в текст» . Журнал исследований машинного обучения . 21 (1): 140:5485–140:5551. arXiv : 1910.10683 . ISSN 1532-4435 .
- ^ Кариампужа, Уильям; Алия, Джоконда; Цюй, Сью; Санджак, Джалеал; Мате, Эви; Сид, Эрик; Шатлен, Хейли; Ядо, Арджун; Сюй, Яньцзи; Чжу, Цянь (2023). «Точное извлечение информации для масштабной эпидемиологии редких заболеваний» . Журнал трансляционной медицины . 21 (1): 157. doi : 10.1186/s12967-023-04011-y . ПМЦ 9972634 . ПМИД 36855134 .
- ^ Ассаэль, Яннис; Соммершильд, Тея; Шиллингфорд, Брендан; Бордбар, Махьяр; Павлопулос, Джон; Хаципанагиоту, Марита; Андрутсопулос, Ион; Праг, Джонатан; де Фрейтас, Нандо (март 2022 г.). «Восстановление и атрибуция древних текстов с помощью глубоких нейронных сетей» . Природа . 603 (7900): 280–283. Бибкод : 2022Natur.603..280A . дои : 10.1038/s41586-022-04448-z . ISSN 1476-4687 . ПМК 8907065 . ПМИД 35264762 .
- ^ «Моделирование последовательностей с помощью нейронных сетей (Часть 2): Модели внимания» . Индико . 18 апреля 2016 г. Архивировано из оригинала 21 октября 2020 г. Проверено 15 октября 2019 г.
- ^ Jump up to: Перейти обратно: а б с Аламмар, Джей. «Иллюстрированный трансформер» . jalammar.github.io . Архивировано из оригинала 18 октября 2020 г. Проверено 15 октября 2019 г.
- ^ Кларк, Кевин; Хандельвал, Урваши; Леви, Омер; Мэннинг, Кристофер Д. (август 2019 г.). «На что смотрит BERT? Анализ внимания BERT» . Материалы семинара ACL Workshop BlackboxNLP 2019: анализ и интерпретация нейронных сетей для НЛП . Флоренция, Италия: Ассоциация компьютерной лингвистики: 276–286. arXiv : 1906.04341 . дои : 10.18653/v1/W19-4828 . Архивировано из оригинала 21 октября 2020 г. Проверено 20 мая 2020 г.
- ^ Лекун, Янн (28 апреля 2023 г.). «Обзор программ магистратуры с практическим руководством и древом эволюции» . Твиттер . Архивировано из оригинала 23 июня 2023 года . Проверено 23 июня 2023 г.
- ^ «Моделирование масочного языка» . Huggingface.co . Проверено 5 октября 2023 г.
- ^ «Причинно-языковое моделирование» . Huggingface.co . Проверено 5 октября 2023 г.
- ^ Шазир, Ноам (01 февраля 2020 г.). «Варианты GLU улучшают трансформатор». arXiv : 2002.05202 [ cs.LG ].
- ^ Дафтер, Филипп; Шмитт, Мартин; Шютце, Хинрих (6 июня 2022 г.). «Информация о положении в трансформаторах: обзор» . Компьютерная лингвистика . 48 (3): 733–763. arXiv : 2102.11090 . дои : 10.1162/coli_a_00445 . ISSN 0891-2017 . S2CID 231986066 .
- ^ Су, Цзяньлинь; Лу, Ю; Пан, Шэнфэн; Муртадха, Ахмед; Вэнь, Бо; Лю, Юньфэн (01 апреля 2021 г.). «RoFormer: усовершенствованный трансформатор с встраиванием поворотного положения». arXiv : 2104.09864 [ cs.CL ].
- ^ Пресс, Офир; Смит, Ной А.; Льюис, Майк (01 августа 2021 г.). «Короткое обучение, длинный тест: внимание с линейными смещениями позволяет экстраполяцию входной длины». arXiv : 2108.12409 [ cs.CL ].
- ^ Шоу, Питер; Ушкорейт, Якоб; Васвани, Ашиш (2018). «Самовнимание с представлением относительной позиции». arXiv : 1803.02155 [ cs.CL ].
- ^ Дао, Три; Фу, Дэн; Эрмон, Стефано; Рудра, Атри; Ре, Кристофер (06 декабря 2022 г.). «FlashAttention: быстрое и эффективное использование памяти точное внимание с учетом ввода-вывода» . Достижения в области нейронных систем обработки информации . 35 : 16344–16359. arXiv : 2205.14135 .
- ^ «Стэнфордский CRFM» . crfm.stanford.edu . Проверено 18 июля 2023 г.
- ^ «FlashAttention-2: более быстрое внимание с лучшим параллелизмом и разделением работы» . Принстон НЛП . 17 июня 2023 г. Проверено 18 июля 2023 г.
- ^ «Представляем вместе главного научного сотрудника по искусственному интеллекту Три Дао, который выпускает FlashAttention-2 для ускорения обучения моделей и получения выводов» . ВМЕСТЕ . Проверено 18 июля 2023 г.
- ^ Чоудери, Ааканша; Наранг, Шаран; Девлин, Джейкоб; Босма, Мартен; Мишра, Гаурав; Робертс, Адам; Бархам, Пол; Чунг, Хён Вон; Саттон, Чарльз; Германн, Себастьян; Шу, Паркер; Ши, Кенсен; Цвященко, Саша; Майнес, Джошуа; Рао, Абхишек (1 апреля 2022 г.). «PaLM: масштабирование языкового моделирования с помощью путей». arXiv : 2204.02311 [ cs.CL ].
- ^ Jump up to: Перейти обратно: а б Левиафан, Янив; Кальман, Матан; Матиас, Йосси (18 мая 2023 г.), Быстрый вывод на основе трансформаторов посредством спекулятивного декодирования , arXiv : 2211.17192
- ^ Фу, Яо (13 декабря 2023 г.). «На пути к 100-кратному ускорению: полная оптимизация вывода трансформатора» .
- ^ Чен, Чарли; Боржо, Себастьян; Ирвинг, Джеффри; Леспио, Жан-Батист; Сифре, Лоран; Джампер, Джон (2 февраля 2023 г.), Ускорение декодирования модели большого языка с помощью спекулятивной выборки , arXiv : 2302.01318
- ^ Jump up to: Перейти обратно: а б Китаев, Никита; Кайзер, Лукаш; Левская, Ансельм (2020). «Реформатор: эффективный преобразователь». arXiv : 2001.04451 [ cs.LG ].
- ^ «Построение преобразователей для более длинных последовательностей с помощью методов разреженного внимания» . Блог Google AI . 25 марта 2021 г. Архивировано из оригинала 18 сентября 2021 г. Проверено 28 мая 2021 г.
- ^ «Задачи с длинными последовательностями – Чат-бот» . Курсера . Архивировано из оригинала 26 октября 2020 г. Проверено 22 октября 2020 г.
- ^ «Реформатор: эффективный преобразователь» . Блог Google AI . 16 января 2020 г. Архивировано из оригинала 22 октября 2020 г. Проверено 22 октября 2020 г.
- ^ Чжай, Шуанфэй; Тэлботт, Уолтер; Шривастава, Нитиш; Хуанг, Чен; Гох, Хэнлин; Чжан, Жуйсян; Сасскинд, Джош (21 сентября 2021 г.). «Трансформатор, свободный от внимания». arXiv : 2105.14103 [ cs.LG ].
- ^ Тай, Йи; Дегани, Мостафа; Абнар, Самира; Шен, Икан; Бахри, Дара; Фам, Филип; Рао, Цзиньфэн; Ян, Лю; Рудер, Себастьян; Мецлер, Дональд (08 ноября 2020 г.). «Арена дальнего действия: эталон эффективных трансформаторов». arXiv : 2011.04006 [ cs.LG ].
- ^ Пэн, Хао; Паппас, Николаос; Йогатама, Дэни; Шварц, Рой; Смит, Ной А.; Конг, Линпэн (19 марта 2021 г.). «Случайное внимание к функциям». arXiv : 2103.02143 [ cs.CL ].
- ^ Хороманский, Кшиштоф; Лихошерстов Валерий; Дохан, Дэвид; Сун, Синъю; Гейн, Андреа; Сарлос, Тамас; Хокинс, Питер; Дэвис, Джаред; Беланджер, Дэвид; Колвелл, Люси; Веллер, Адриан (30 сентября 2020 г.). «Моделирование белков в маске с помощью линейно масштабируемых преобразователей с длинным контекстом». arXiv : 2006.03555 [ cs.LG ].
- ^ Рэдфорд, Алек; Ким, Чон Ук; Сюй, Тао; Брокман, Грег; МакЛиви, Кристина; Суцкевер, Илья (2022). «Надежное распознавание речи посредством крупномасштабного слабого контроля». arXiv : 2212.04356 [ eess.AS ].
- ^ Джегл, Эндрю; Гимено, Феликс; Брок, Эндрю; Зиссерман, Эндрю; Виньялс, Ориол; Каррейра, Жоау (22 июня 2021 г.). «Воспринимающий: общее восприятие с повторяющимся вниманием». arXiv : 2103.03206 [ cs.CV ].
- ^ Джегл, Эндрю; Боржо, Себастьян; Алайрак, Жан-Батист; Дорш, Карл; Ионеску, Каталин; Дин, Дэвид; Коппула, Сканда; Зоран, Дэниел; Брок, Эндрю; Шелхамер, Эван; Энафф, Оливье (2 августа 2021 г.). «Perceiver IO: общая архитектура структурированных входов и выходов». arXiv : 2107.14795 [ cs.LG ].
- ^ Пиблс, Уильям; Се, Сайнин (2 марта 2023 г.). «Масштабируемые модели диффузии с трансформаторами». arXiv : 2212.09748 [ cs.CV ].
- ^ «Google AI представляет Muse, новую модель преобразования текста в изображение» . ИнфоQ .
- ^ «Использование диффузионных моделей для создания превосходных аватаров NeRF» . 5 января 2023 г.
- ^ Ислам, Архам (14 ноября 2022 г.). «Как работают DALL·E 2, стабильная диффузия и Midjourney?» .
Дальнейшее чтение [ править ]
- Александр Раш, Трансформатор с аннотациями. Архивировано 22 сентября 2021 г. в Wayback Machine , Гарвардская группа НЛП, 3 апреля 2018 г.
- Фуонг, Мэри; Хаттер, Маркус (2022). «Формальные алгоритмы трансформаторов». arXiv : 2207.09238 [ cs.LG ].
- Феррандо, Хавьер; Сарти, Габриэле; Бисацца, Арианна; Коста-Хусса, Марта Р. (1 мая 2024 г.). «Букварь по внутренней работе языковых моделей на основе преобразователей». arXiv : 2405.00208 [ cs.CL ].
- Хуберт Рамзауэр и др. (2020), «Hopfield Networks — это все, что вам нужно». Архивировано 18 сентября 2021 г. в Wayback Machine , препринт представлен для ICLR 2021. arXiv : 2008.02217 ; авторов. см. также блог Архивировано 18 сентября 2021 г. на Wayback Machine.
- – Обсуждение эффекта слоя преобразователя как эквивалента обновления Хопфилда, приближающего входные данные к одной из фиксированных точек (представимых шаблонов) непрерывной сети Хопфилда.