Трансформер (модель машинного обучения): различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
(орфография)
м (44 версии импортировано: Импорт из Википедии)
 
(не показано 19 промежуточных версий 17 участников)
Строка 1: Строка 1:
 
{{Значения|Трансформер}}
 
{{Значения|Трансформер}}
'''Трансфо́рмер''' ({{lang-en|Transformer}}) — архитектура [[Глубокое обучение|глубоких]] [[Нейронная сеть|нейронных сетей]], представленная в 2017 году исследователями из [[Google Brain]].<ref name="paper">{{source|Q30249683}}</ref>
+
'''Трансфо́рмер''' ({{lang-en|Transformer}}) — архитектура [[Глубокое обучение|глубоких]] [[Нейронная сеть|нейронных сетей]], представленная в 2017 году исследователями из [[Google Brain]]<ref name="paper">{{source|Q30249683}}</ref>.
  
По аналогии с [[Рекуррентная нейронная сеть|рекуррентными нейронными сетями]] (РНС) трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как [[машинный перевод]] и [[автоматическое реферирование]]. В отличие от РНС, трансформеры не требуют обработки последовательностей по порядку. Например, если входные данные — это текст, то трансформеру не требуется обрабатывать конец текста после обработки его начала. Благодаря этому трансформеры [[Параллельные вычисления|распараллеливаются]] легче чем РНС и могут быть быстрее обучены.<ref name="paper" />
+
По аналогии с [[Рекуррентная нейронная сеть|рекуррентными нейронными сетями]] (РНС) трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как [[машинный перевод]] и [[автоматическое реферирование]]. В отличие от РНС, трансформеры не требуют обработки последовательностей по порядку. Например, если входные данные — это текст, то трансформеру не требуется обрабатывать конец текста после обработки его начала. Благодаря этому трансформеры [[Параллельные вычисления|распараллеливаются]] легче чем РНС и могут быть быстрее [[Машинное обучение|обучены]]<ref name="paper" />.
  
 
== Архитектура сети ==
 
== Архитектура сети ==
  
Архитектура трансформер состоит из кодировщика и декодировщика. Кодировщик получает на вход [[Векторное представление слов|векторизованую последовательность]] с позиционной информацией. Декодировщик получает на вход часть этой последовательности и выход кодировщика. Кодировщик и декодировщик состоят из слоев. Слои кодировщика последовательно передают результат следующему слою в качестве его входа. Слои декодировщика последовательно передают результат следующему слою вместе с результатом кодировщика в качестве его входа.  
+
Архитектура трансформера состоит из кодировщика и декодировщика. Кодировщик получает на вход [[Векторное представление слов|векторизованую последовательность]] с позиционной информацией. Декодировщик получает на вход часть этой последовательности и выход кодировщика. Кодировщик и декодировщик состоят из слоев. Слои кодировщика последовательно передают результат следующему слою в качестве его входа. Слои декодировщика последовательно передают результат следующему слою вместе с результатом кодировщика в качестве его входа.
  
 
Каждый кодировщик состоит из механизма самовнимания (вход из предыдущего слоя) и [[Нейронная сеть с прямой связью|нейронной сети с прямой связью]] (вход из механизма самовнимания). Каждый декодировщик состоит из механизма самовнимания (вход из предыдущего слоя), механизма внимания к результатам кодирования (вход из механизма самовнимания и кодировщика) и [[Нейронная сеть с прямой связью|нейронной сети с прямой связью]] (вход из механизма внимания).
 
Каждый кодировщик состоит из механизма самовнимания (вход из предыдущего слоя) и [[Нейронная сеть с прямой связью|нейронной сети с прямой связью]] (вход из механизма самовнимания). Каждый декодировщик состоит из механизма самовнимания (вход из предыдущего слоя), механизма внимания к результатам кодирования (вход из механизма самовнимания и кодировщика) и [[Нейронная сеть с прямой связью|нейронной сети с прямой связью]] (вход из механизма внимания).
  
 
<gallery>
 
<gallery>
Файл:MLTransformerOverview.svg|Трасформер
+
Файл:MLTransformerOverview.svg|Трансформер
 
Файл:MLTransformer-Encoder.svg|Кодирующий слой
 
Файл:MLTransformer-Encoder.svg|Кодирующий слой
 
Файл:MLTransformer-Decoder.svg|Декодирующий слой
 
Файл:MLTransformer-Decoder.svg|Декодирующий слой
Строка 25: Строка 25:
  
 
Трансформеры используются в [[Яндекс.Переводчик]]е<ref>{{cite web
 
Трансформеры используются в [[Яндекс.Переводчик]]е<ref>{{cite web
  |author     = Семен Козлов
+
  |author       = Семен Козлов
  |url         = https://habr.com/ru/post/341240/
+
  |url         = https://habr.com/ru/post/341240/
  |title       = Transformer — новая архитектура нейросетей для работы с последовательностями
+
  |title       = Transformer — новая архитектура нейросетей для работы с последовательностями
  |lang       = ru
+
  |lang         = ru
  |website     =  
+
  |website     =  
  |publisher   = [[Хабр]]
+
  |publisher   = [[Хабр]]
  |date       = 2017-10-30
+
  |date         = 2017-10-30
  |accessdate = 2020-11-03
+
  |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         = https://habr.com/ru/company/yandex/blog/479662/
+
  |url         = https://habr.com/ru/company/yandex/blog/479662/
  |title       = Как Яндекс научил искусственный интеллект находить ошибки в новостях
+
  |title       = Как Яндекс научил искусственный интеллект находить ошибки в новостях
  |lang       = ru
+
  |lang         = ru
  |website     =  
+
  |website     =  
  |publisher   = [[Хабр]]
+
  |publisher   = [[Хабр]]
  |date       = 2019-12-12
+
  |date         = 2019-12-12
  |accessdate = 2020-11-03
+
  |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     = Isaac Caswell, Bowen Liang
+
  |author       = Isaac Caswell, Bowen Liang
  |url         = https://ai.googleblog.com/2020/06/recent-advances-in-google-translate.html
+
  |url         = https://ai.googleblog.com/2020/06/recent-advances-in-google-translate.html
  |title       = Recent Advances in Google Translate
+
  |title       = Recent Advances in Google Translate
  |lang       = en
+
  |lang         = en
  |website     =  
+
  |website     =  
  |publisher   = Google AI Blog
+
  |publisher   = Google AI Blog
  |date       = 2020-06-08
+
  |date         = 2020-06-08
  |accessdate  = 2020-11-03
+
  |accessdate   = 2020-11-03
}}</ref>, [[GPT-3]].
+
  |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].

Архитектура сети[править | править код]

Архитектура трансформера состоит из кодировщика и декодировщика. Кодировщик получает на вход векторизованую последовательность с позиционной информацией. Декодировщик получает на вход часть этой последовательности и выход кодировщика. Кодировщик и декодировщик состоят из слоев. Слои кодировщика последовательно передают результат следующему слою в качестве его входа. Слои декодировщика последовательно передают результат следующему слою вместе с результатом кодировщика в качестве его входа.

Каждый кодировщик состоит из механизма самовнимания (вход из предыдущего слоя) и нейронной сети с прямой связью (вход из механизма самовнимания). Каждый декодировщик состоит из механизма самовнимания (вход из предыдущего слоя), механизма внимания к результатам кодирования (вход из механизма самовнимания и кодировщика) и нейронной сети с прямой связью (вход из механизма внимания).

Внимание на основе скалярного произведения[править | править код]

Каждый механизм внимания параметризован матрицами весов запросов W Q W_Q , весов ключей W K W_K , весов значений W V W_V . Для вычисления внимания входного вектора X X к вектору Y Y , вычисляются вектора Q = W Q X Q=W_Q X , K = W K X K=W_K X , V = W V Y V=W_V Y . Эти вектора используются для вычисления результата внимания по формуле:

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\mathrm{T}}{\sqrt{d_k}}\right)V

Использование[править | править код]

Трансформеры используются в Яндекс.Переводчике[2], Яндекс.Новостях[3], Google Переводчике[4].

На основе архитектурной модели трансформер была создана модель только с декодировщиком (Decoder-only model), из которой, в результате пред-обучения на больших объемах языковых данных создана серия моделей генеративных предобученных трансформеров, известных как GPT. В частности, на основе GPT версии 3.5, модифицированной с использованием усиления модели GPT способности следовать предложенных пользователем командам (модель InstructGPT) был создан специальный генеративный ИИ чатбот (Generative AI chatbot) ChatGPT.

Примечания[править | править код]

  1. 1,0 1,1 Ошибка Lua в Модуль:Sources на строке 1705: attempt to index field 'wikibase' (a nil value).
  2. Семен Козлов. Transformer — новая архитектура нейросетей для работы с последовательностями. Хабр (30 октября 2017). Дата обращения: 3 ноября 2020. Архивировано 13 сентября 2020 года.
  3. Тимур Гаскаров. Как Яндекс научил искусственный интеллект находить ошибки в новостях. Хабр (12 декабря 2019). Дата обращения: 3 ноября 2020. Архивировано 1 декабря 2020 года.
  4. 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).