Трансформер (модель машинного обучения): различия между версиями
w>Leg-ch |
In.wiki (комментарии | вклад) м (44 версии импортировано: Импорт из Википедии) |
||
(не показано 29 промежуточных версий 21 участника) | |||
Строка 1: | Строка 1: | ||
− | '''Трансфо́рмер''' ({{lang-en|Transformer}}) — архитектура [[Глубокое обучение|глубоких]] [[Нейронная сеть|нейронных сетей]], представленная в 2017 году исследователями из [[Google Brain]] | + | {{Значения|Трансформер}} |
+ | '''Трансфо́рмер''' ({{lang-en|Transformer}}) — архитектура [[Глубокое обучение|глубоких]] [[Нейронная сеть|нейронных сетей]], представленная в 2017 году исследователями из [[Google Brain]]<ref name="paper">{{source|Q30249683}}</ref>. | ||
− | По аналогии с [[Рекуррентная нейронная сеть|рекуррентными нейронными сетями]] (РНС) трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как [[машинный перевод]] и [[автоматическое реферирование]]. В отличие от РНС, трансформеры не требуют обработки последовательностей по порядку. | + | По аналогии с [[Рекуррентная нейронная сеть|рекуррентными нейронными сетями]] (РНС) трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как [[машинный перевод]] и [[автоматическое реферирование]]. В отличие от РНС, трансформеры не требуют обработки последовательностей по порядку. Например, если входные данные — это текст, то трансформеру не требуется обрабатывать конец текста после обработки его начала. Благодаря этому трансформеры [[Параллельные вычисления|распараллеливаются]] легче чем РНС и могут быть быстрее [[Машинное обучение|обучены]]<ref name="paper" />. |
+ | |||
+ | == Архитектура сети == | ||
+ | |||
+ | Архитектура трансформера состоит из кодировщика и декодировщика. Кодировщик получает на вход [[Векторное представление слов|векторизованую последовательность]] с позиционной информацией. Декодировщик получает на вход часть этой последовательности и выход кодировщика. Кодировщик и декодировщик состоят из слоев. Слои кодировщика последовательно передают результат следующему слою в качестве его входа. Слои декодировщика последовательно передают результат следующему слою вместе с результатом кодировщика в качестве его входа. | ||
+ | |||
+ | Каждый кодировщик состоит из механизма самовнимания (вход из предыдущего слоя) и [[Нейронная сеть с прямой связью|нейронной сети с прямой связью]] (вход из механизма самовнимания). Каждый декодировщик состоит из механизма самовнимания (вход из предыдущего слоя), механизма внимания к результатам кодирования (вход из механизма самовнимания и кодировщика) и [[Нейронная сеть с прямой связью|нейронной сети с прямой связью]] (вход из механизма внимания). | ||
+ | |||
+ | <gallery> | ||
+ | Файл:MLTransformerOverview.svg|Трансформер | ||
+ | Файл:MLTransformer-Encoder.svg|Кодирующий слой | ||
+ | Файл:MLTransformer-Decoder.svg|Декодирующий слой | ||
+ | </gallery> | ||
+ | |||
+ | == Внимание на основе скалярного произведения == | ||
+ | |||
+ | Каждый механизм внимания параметризован матрицами весов запросов <math>W_Q</math>, весов ключей <math>W_K</math>, весов значений <math>W_V</math>. Для вычисления внимания входного вектора <math>X</math> к вектору <math>Y</math>, вычисляются вектора <math>Q=W_Q X</math>, <math>K=W_K X</math>, <math>V=W_V Y</math>. Эти вектора используются для вычисления результата внимания по формуле: | ||
+ | |||
+ | <math>\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\mathrm{T}}{\sqrt{d_k}}\right)V</math> | ||
+ | |||
+ | == Использование == | ||
Трансформеры используются в [[Яндекс.Переводчик]]е<ref>{{cite web | Трансформеры используются в [[Яндекс.Переводчик]]е<ref>{{cite web | ||
− | |author | + | |author = Семен Козлов |
− | |url | + | |url = https://habr.com/ru/post/341240/ |
− | |title | + | |title = Transformer — новая архитектура нейросетей для работы с последовательностями |
− | |lang | + | |lang = ru |
− | |website | + | |website = |
− | |publisher | + | |publisher = [[Хабр]] |
− | |date | + | |date = 2017-10-30 |
− | |accessdate | + | |accessdate = 2020-11-03 |
+ | |archive-date = 2020-09-13 | ||
+ | |archive-url = https://web.archive.org/web/20200913212109/https://habr.com/ru/post/341240/ | ||
+ | |url-status = live | ||
}}</ref>, [[Яндекс.Новости|Яндекс.Новостях]]<ref>{{cite web | }}</ref>, [[Яндекс.Новости|Яндекс.Новостях]]<ref>{{cite web | ||
− | |author | + | |author = Тимур Гаскаров |
− | |url | + | |url = https://habr.com/ru/company/yandex/blog/479662/ |
− | |title | + | |title = Как Яндекс научил искусственный интеллект находить ошибки в новостях |
− | |lang | + | |lang = ru |
− | |website | + | |website = |
− | |publisher | + | |publisher = [[Хабр]] |
− | |date | + | |date = 2019-12-12 |
− | |accessdate | + | |accessdate = 2020-11-03 |
+ | |archive-date = 2020-12-01 | ||
+ | |archive-url = https://web.archive.org/web/20201201120648/https://habr.com/ru/company/yandex/blog/479662/ | ||
+ | |url-status = live | ||
}}</ref>, [[Google Переводчик]]е<ref>{{cite web | }}</ref>, [[Google Переводчик]]е<ref>{{cite web | ||
− | |author | + | |author = Isaac Caswell, Bowen Liang |
− | |url | + | |url = https://ai.googleblog.com/2020/06/recent-advances-in-google-translate.html |
− | |title | + | |title = Recent Advances in Google Translate |
− | |lang | + | |lang = en |
− | |website | + | |website = |
− | |publisher | + | |publisher = Google AI Blog |
− | |date | + | |date = 2020-06-08 |
− | |accessdate = 2020-11- | + | |accessdate = 2020-11-03 |
− | }}</ref>, [[GPT | + | |archive-date = 2020-11-02 |
+ | |archive-url = https://web.archive.org/web/20201102113452/https://ai.googleblog.com/2020/06/recent-advances-in-google-translate.html | ||
+ | |url-status = live | ||
+ | }}</ref>. | ||
+ | |||
+ | На основе архитектурной модели трансформер была создана ''модель только с декодировщиком'' (Decoder-only model), из которой, в результате пред-обучения на больших объемах языковых данных создана серия моделей '''''г'''енеративных '''п'''редобученных '''т'''рансформеров'', известных как [[GPT]]. В частности, на основе GPT версии 3.5, модифицированной с использованием усиления модели GPT способности следовать предложенных пользователем командам (модель InstructGPT) был создан специальный генеративный ИИ чатбот (Generative AI chatbot) [[ChatGPT]]. | ||
== Примечания == | == Примечания == | ||
{{примечания}} | {{примечания}} | ||
− | [[Категория: | + | |
+ | {{вс}} | ||
+ | {{Генеративный ИИ}} | ||
+ | |||
+ | [[Категория:Нейронные сети]] |
Текущая версия от 23:44, 10 августа 2025
Трансфо́рмер (англ. Transformer) — архитектура глубоких нейронных сетей, представленная в 2017 году исследователями из Google Brain[1].
По аналогии с рекуррентными нейронными сетями (РНС) трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как машинный перевод и автоматическое реферирование. В отличие от РНС, трансформеры не требуют обработки последовательностей по порядку. Например, если входные данные — это текст, то трансформеру не требуется обрабатывать конец текста после обработки его начала. Благодаря этому трансформеры распараллеливаются легче чем РНС и могут быть быстрее обучены[1].
Архитектура сетиПравить
Архитектура трансформера состоит из кодировщика и декодировщика. Кодировщик получает на вход векторизованую последовательность с позиционной информацией. Декодировщик получает на вход часть этой последовательности и выход кодировщика. Кодировщик и декодировщик состоят из слоев. Слои кодировщика последовательно передают результат следующему слою в качестве его входа. Слои декодировщика последовательно передают результат следующему слою вместе с результатом кодировщика в качестве его входа.
Каждый кодировщик состоит из механизма самовнимания (вход из предыдущего слоя) и нейронной сети с прямой связью (вход из механизма самовнимания). Каждый декодировщик состоит из механизма самовнимания (вход из предыдущего слоя), механизма внимания к результатам кодирования (вход из механизма самовнимания и кодировщика) и нейронной сети с прямой связью (вход из механизма внимания).
Внимание на основе скалярного произведенияПравить
Каждый механизм внимания параметризован матрицами весов запросов , весов ключей , весов значений . Для вычисления внимания входного вектора к вектору , вычисляются вектора , , . Эти вектора используются для вычисления результата внимания по формуле:
ИспользованиеПравить
Трансформеры используются в Яндекс.Переводчике[2], Яндекс.Новостях[3], Google Переводчике[4].
На основе архитектурной модели трансформер была создана модель только с декодировщиком (Decoder-only model), из которой, в результате пред-обучения на больших объемах языковых данных создана серия моделей генеративных предобученных трансформеров, известных как GPT. В частности, на основе GPT версии 3.5, модифицированной с использованием усиления модели GPT способности следовать предложенных пользователем командам (модель InstructGPT) был создан специальный генеративный ИИ чатбот (Generative AI chatbot) ChatGPT.
ПримечанияПравить
- ↑ 1,0 1,1 Ошибка Lua в Модуль:Sources на строке 1705: attempt to index field 'wikibase' (a nil value).
- ↑ Семен Козлов. Transformer — новая архитектура нейросетей для работы с последовательностями . Хабр (30 октября 2017). Дата обращения: 3 ноября 2020. Архивировано 13 сентября 2020 года.
- ↑ Тимур Гаскаров. Как Яндекс научил искусственный интеллект находить ошибки в новостях . Хабр (12 декабря 2019). Дата обращения: 3 ноября 2020. Архивировано 1 декабря 2020 года.
- ↑ Isaac Caswell, Bowen Liang. Recent Advances in Google Translate (англ.). Google AI Blog (8 июня 2020). Дата обращения: 3 ноября 2020. Архивировано 2 ноября 2020 года.
Ошибка Lua в Модуль:External_links на строке 409: attempt to index field 'wikibase' (a nil value). Ошибка Lua в Модуль:Navbox на строке 353: attempt to index local 'listText' (a nil value).