Трансфо́рмер () — це архітектура глибокого навчання, що ґрунтується на механізмі багатоголової уваги, запропонована в статті 2017 року «Увага — це все, що вам треба». Вона не має рекурентних вузлів, і відтак вимагає менше часу на тренування, ніж попередні рекурентні нейронні архітектури, як-от довга короткочасна пам'ять (ДКЧП), і її пізнішу видозміну широко використовують для тренування великих мовних моделей на великих (мовних) наборах даних, як-от корпусі Вікіпедії та . Вхідний текст розбивається на n-грами, закодовані як токени, й кожен токен перетворюється на вектор за допомогою пошуку таблицею вкладення слів. На кожному шарі кожен токен відтак узгоджується в межах контекстного вікна з контекстом інших (немаскованих) токенів за допомогою паралельного механізму багатоголової уваги, що дозволяє підсилювати сигнал для ключових токенів, і пригнічувати менш важливі токени. Стаття про трансформер, опублікована 2017 року, ґрунтується на механізмі уваги на основі softmax, запропонованому 2014 року Багдановим зі співавт. для машинного перекладу, а подібний до трансформера контролер швидких ваг () було запропоновано 1992 року.
Цю архітектуру тепер використовують не лише в обробці природної мови та комп'ютернім баченні, але й в обробці звуку та мультимодальній обробці. Вона також привела до розробки попередньо натренованих систем, таких як породжувальні попередньо натреновані трансформери () та BERT (, двоспрямовані кодувальні подання з трансформерів).
Хронологія
1990 року мережа Елмана, використовуючи рекурентну нейронну мережу, кодувала кожне слово в тренувальному наборі як вектор, званий вкладенням слова, і весь словник як векторну базу даних, дозволяючи виконувати такі завдання, як передбачування послідовностей, що виходять за межі можливостей простого багатошарового перцептрона. Недоліком цих статичних вкладень було те, що вони не робили розрізнення між декількома значеннями слів, які пишуться однаково. 1992 року Юрген Шмідхубер опублікував контролер швидких ваг (). Він навчається відповідати на запити, програмуючи ваги уваги іншої нейронної мережі через тензорні добутки векторів ключів і векторів значень, званих FROM і TO. Пізніше було показано, що контролер швидких ваг еквівалентний ненормованому лінійному трансформерові. Термінологію «навчання внутрішніх центрів уваги» () було введено 1993 року. 1993 року для статистичного машинного перекладу використовували . 1997 року було запропоновано предтечу великої мовної моделі, яка використовувала рекурентні нейронні мережі, як-от довгу короткочасну пам'ять. 2001 року для уоднозначнювання слів використовували зібраний з Інтернету великий текстовий корпус на один мільярд слів, який на той час називали «дуже-дуже великим». 2012 року AlexNet продемонструвала ефективність великих нейронних мереж для розпізнавання зображень, заохотивши підхід великих штучних нейронних мереж замість старіших, статистичних підходів. 2014 року Суцкевер зі співавт. запропонували 380М-параметрову модель seq2seq для машинного перекладу, яка використовувала дві мережі ДКЧП. Її архітектура складається з двох частин. Кодувальник () — це ДКЧП, яка бере послідовність токенів, і перетворює її на вектор. Декодувальник () — це інша ДКЧП, яка перетворює вектор назад на послідовність токенів. 2014 року показало себе корисним використання вентилів у 130М-параметровій моделі seq2seq, яка використовувала спрощені вентильні рекурентні вузли (ВРВ). Багданов зі співавт. показали, що ВРВ не кращі й не гірші за вентильну ДКЧП. 2014 року Багданов зі співавт. вдосконалили попередню модель seq2seq, використавши механізм уваги «адитивного» типу між двома мережами ДКЧП. Проте це ще не був розпаралелюваний (масштабований «скалярнодобутковий») тип уваги, який згодом запропоновали в статті про трансформери 2017 року. 2015 року Луонг зі співавт. оцінили відносну продуктивність архітектур моделей глобальної та локальної (віконної) уваги, змішана архітектура уваги виявилася здатною покращити переклади, пропоновані архітектурою Багданова, в той час як використання архітектури локальної уваги скоротило час перекладу. 2016 року в Перекладачі Google поступово замінили старіший підхід статистичного машинного перекладу новішим підходом на основі нейронних мереж, що містив модель seq2seq, поєднану з ДКЧП й механізмом уваги «адитивного» типу. Вони досягли вищого рівня продуктивності, ніж статистичний підхід, розробка якого тривала десять років, лише за дев'ять місяців. 2017 року в статті «Увага — це все, що вам треба» запропонували оригінальну (розміру 100М) кодувально-декодувальну трансформерну модель зі швидшим (розпаралелюваним або розкладаним) механізмом уваги. Оскільки ця модель мала труднощі зі збіжністю, запропоновали, що темп навчання повинен лінійно збільшуватися від 0 до максимального значення на першій частині тренування (тобто 2 % від загальної кількості кроків тренування). Метою трансформерної моделі було взяти модель seq2seq й усунути її рекурентні нейронні мережі, але зберегти її механізм адитивної уваги. 2018 року в статті про ELMo обробляли все речення перед тим, як призначувати вектор вкладення кожному слову. Для обчислення таких глибоких контекстних вкладень для кожного зі слів використали двоспрямовану ДКЧП, покращивши цей напрямок досліджень відносно моделі «торба слів» та word2vec. 2018 року трансформер з лише кодувальником використали в моделі BERT (розміром понад 1 мільярд), покращивши результати ELMo. 2020 року зоровий трансформер () та підсилений згорткою трансформер для обробки мовлення перевершили рекурентні нейронні мережі, які використовували раніше для бачення й мовлення. 2020 року Сюн зі співавт. розв'язали труднощі оригінального трансформера зі збіжністю шляхом нормування шарів перед багатоголовою увагою (а не після неї). Це називають трансформером перед-ШН (). 2023 року односпрямовані («авторегресійні») трансформери використовували в GPT-3 (розміром понад 100 мільярдів) та інших моделях GPT OpenAI.
Попередники
Перед трансформерами попередників механізму уваги додали до вентильних рекурентних нейронних мереж, як-от ДКЧП та вентильних рекурентних вузлів (ВРВ), які обробляли набори даних послідовно. Залежність від обчислень попередніх токенів перешкоджала їхній здатності розпаралелювати механізм уваги. 1992 року як альтернативу рекурентним нейронним мережам запропонували контролер швидких ваг, який може навчатися «внутрішніх центрів уваги» (). Теоретично, інформація від одного токену може поширюватися довільно далеко вниз за послідовністю, але на практиці проблема зникання градієнту лишає стан моделі наприкінці довгого речення без точної, добутної інформації про попередні токени.
Продуктивність старих моделей покращили доданням механізму уваги, який дозволив моделі мати доступ до будь-якої попередньої точки вздовж послідовності. Шар уваги зважує всі попередні стани відповідно до навченої міри доречності, надаючи доречну інформацію про віддалені токени. Це виявилося особливо корисним у мовному перекладі, де для значення слова в реченні може бути важливим віддалений контекст. Вектор стану був доступним лише після обробки останнього англійського слова, наприклад, під час перекладу його з французької моделлю ДКЧП. Хоча теоретично такий вектор зберігає інформацію про все оригінальне речення, на практиці ця інформація зберігається погано. Якщо додано механізм уваги, декодувальник отримує доступ до векторів стану кожного вхідного слова, а не лише останнього, й може навчитися ваг уваги, які вказують, скільки уваги приділяти кожному вхідному вектору стану. Розширення моделей seq2seq механізмом уваги вперше втілили в контексті машинного перекладу Багданов, Чо та Бенжіо 2014 року.
Розкладна увага
2016 року високорозпаралелювану розкладну увагу () успішно поєднали з мережею прямого поширення. Це вказувало на те, що механізми уваги були потужними самі по собі, й що послідовна рекурентна обробка даних не була необхідною для досягнення приросту якості рекурентних нейронних мереж з увагою. 2017 року Васвані зі співавт. також запропонували замінити рекурентні нейронні мережі самоувагою й розпочали зусилля щодо оцінки цієї ідеї. Трансформери, використовуючи механізм уваги, обробляючи всі токени одночасно, розраховували «м'які» ваги між ними на послідовних шарах. Оскільки механізм уваги використовує інформацію лише про інші токени з нижчих шарів, його можливо обчислювати для всіх токенів паралельно, що призводить до покращення швидкості тренування.
Тренування
Методи стабілізування тренування
Архітектура звичайного трансформера мала труднощі зі збіжністю. У первинній статті автори радили використовувати прогрівання темпу навчання. Тобто, темп навчання повинен лінійно збільшуватися від 0 до максимального значення на першій частині тренування (зазвичай радять 2 % від загальної кількості кроків тренування), перш ніж знову зменшуватися.
Праця 2020 виявила, що використання перед (а не після) багатоголової уваги та шарів прямого поширення стабілізує тренування, не вимагаючи прогрівання темпу навчання.
Модель GT3 поєднує CWTE, SWTE та TTE за допомогою самопристосовного вентильного шару, уможливлюючи ефективне й дієве злиття трьох типів ознак для наскрізного керованого текстом передбачування ринку акцій.
Попереднє тренування — тонке настроювання
Трансформери, як правило, підлягають самокерованому навчанню, що складається з некерованого попереднього тренування, з наступним керованим тонким настроюванням. Попереднє тренування, як правило, виконують на більшому наборі даних, ніж тонке настроювання, через обмежену доступність тренувальних даних. До задач попереднього тренування та тонкого настроювання зазвичай належать:
моделювання мов передбачування наступного речення відповідання на питання розуміння прочитаного аналіз тональності перефразовування
У статті про трансформер T5 задокументовано велику кількість завдань для попереднього тренування. Деякі приклади:
відновлення пошкодженого тексту: 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 sentence: The course is jumping well. → not acceptable.
Застосування
Трансформер досяг великого успіху в обробці природної мови (ОПМ), наприклад, у задачах машинного перекладу та передбачування часових рядів. Багато великих мовних моделей, як-от GPT-2, GPT-3, GPT-4, Claude, BERT, XLNet, RoBERTa та ChatGPT, демонструють здатність трансформерів виконувати широкий спектр пов'язаних з ОПМ завдань, і мають потенціал знаходити застосування в реальному світі. До них можуть належати:
машинний переклад реферування документів породжування документів розпізнавання іменованих сутностей (РІС)
написання комп'ютерного коду на основі вимог, висловлених природною мовою розуміння відео.
Окрім застосувань в ОПМ, він також досяг успіху в інших галузях, серед яких комп'ютерне бачення та застосування у згортанні білків (як-от AlphaFold).
Як ілюстративний приклад, Ithaca — це трансформер з лише кодувальником із трьома головами виходу. Він бере на вході давньогрецькі написи як послідовності символів, але з нерозбірливими символами, заміненими на «-». Його три голови виходу відповідно виводять розподіли ймовірностей над грецькими символами, місцезнаходженням напису, та його датою.
Втілення
Трансформерову модель було втілено в стандартних системах глибокого навчання, як-от TensorFlow та PyTorch.
Transformers — бібліотека, яку надає Hugging Face, і яка пропонує архітектури на основі трансформерів та попередньо натреновані моделі.
Архітектура
Всі трансформери мають однакові основні складові:
Токенувальники, які перетворюють текст на токени. Єдиний шар вкладення, який перетворює токени та положення токенів на векторні подання.