Трансформери — відносно новий тип нейромереж, спрямований на розв’язування послідовностей із легким опрацюванням далекодіючих залежностей. На сьогодні це найпросунутіша техніка в галузі обробки природної мови (NLP).
З їхньою допомогою можна перекладати текст, писати вірші та статті і навіть генерувати комп’ютерний код. На відміну від рекурентних нейронних мереж (RNN), трансформери не обробляють послідовності по порядку. Наприклад, якщо вихідні дані — текст, то їм не потрібно обробляти кінець речення після обробки початку. Завдяки цьому таку нейромережу можна розпаралелити і навчити значно швидше.
Коли вони з’явилися?
Трансформери вперше описали інженери з Google Brain у роботі "Attention Is All You Need" у 2017 році.
Одна з основних відмінностей від наявних методів обробки даних полягає в тому, що вхідна послідовність може передаватися паралельно, щоб можна було ефективно використовувати графічний процесор, а також збільшувати швидкість навчання.
Навіщо потрібні трансформери?
До 2017 року інженери використовували глибоке навчання для розуміння тексту за допомогою рекурентних нейронних мереж.
Припустимо, під час перекладу речення з англійської на російську RNN прийматиме як вхідні дані англійське речення, оброблятиме слова по одному, а потім послідовно видаватиме їхні російські аналоги. Ключове слово тут — "послідовний". У мові важливий порядок слів, і їх не можна просто перемішати.
Тут RNN стикаються з низкою проблем. По-перше, вони намагаються обробляти великі послідовності тексту. До моменту просування до кінця абзацу вони "забувають" зміст початку. Наприклад, модель перекладу на основі RNN може мати проблеми із запам’ятовуванням статі об’єкта довгого тексту.
По-друге, RNN складно тренувати. Як відомо, вони схильні до так званої проблеми градієнта, що зникає/вибухає.
По-третє, вони обробляють слова послідовно, рекурентну нейромережу важко розпаралелити. Це означає, що прискорити навчання, використовуючи більше графічних процесорів неможливо. Отже, що її не можна навчити на великій кількості даних.
Як працюють трансформери?
Основними компонентами трансформерів є енкодер і декодер.
Енкодер перетворює вхідну інформацію (наприклад, текст) і конвертує її у вектор (набір чисел). Декодер, зі свого боку, розшифровує її у вигляді нової послідовності (наприклад, відповідь на запитання) слів іншою мовою — зважаючи на те, для яких цілей створювалася нейромережа.
Інші інновації, що лежать в основі трансформерів, зводяться до трьох основних концепцій:
- позиційні енкодери (Positional Encodings);
- увага (Attention);
- самоуважність (Self-Attention).
Почнемо з першого — позиційних енкодерів. Припустимо, необхідно перекласти текст з англійської на російську. Стандартні моделі RNN "розуміють" порядок слів і обробляють їх послідовно. Однак це ускладнює розпаралелювання процесу.
Позиційні кодувальники дають змогу подолати цей бар’єр. Ідея полягає в тому, щоб узяти всі слова у вхідній послідовності — у даному випадку англійське речення — і додати до кожного номер у його порядку. Отже, ви "згодовуєте" мережі таку послідовність:
[("Red", 1), ("fox", 2), ("jumps", 3), ("over", 4), ("lazy", 5), ("dog", 6)].
Концептуально це можна розглядати як перенесення тягаря розуміння порядку слів зі структури нейронної мережі на самі дані.
Спочатку, перш ніж трансформери навчаться на будь-якій інформації, вони не знають, як інтерпретувати ці позиційні кодування. Але в міру того як модель бачить дедалі більше й більше прикладів речень та їхніх кодувань, вона вчиться ефективно їх використовувати.
Представлена вище структура наведена в надмірно спрощеному вигляді — автори оригінального дослідження використовували синусоїдальні функції, щоб придумати позиційні кодування, а не прості цілі числа 1, 2, 3, 4, але суть та сама. Зберігаючи порядок слів у вигляді даних, а не структури, нейронну мережу легше навчати.
Увага — це структура нейронної мережі, введена в контекст машинного перекладу у 2015 році. Щоб зрозуміти цю концепцію, звернемося до оригінальної статті.
Уявімо, що нам потрібно перекласти французькою мовою фразу:
"Угоду про Європейський економічний простір було підписано в серпні 1992 року".
Французький еквівалент виразу звучить наступним чином:
"L’accord sur la zone économique européenne a été signé en août 1992".
Найгіршим варіантом перекладу є прямий пошук аналогів слів з англійської мови у французькій, одного за іншим. Цього не вийде зробити з кількох причин.
По-перше, деякі слова у французькому перекладі перевернуті:
"Європейський економічний простір" проти "la zone économique européenne" .
По-друге, французька мова багата на гендерні слова. Щоб відповідати жіночому об’єкту "la zone" прикметники "économique" та "européenne" також необхідно поставити в жіночий рід.
Увага допомагає уникати таких ситуацій. Її механізм дає змогу текстовій моделі "дивитися" на кожне слово у вихідному реченні під час ухвалення рішення про те, як їх перекладати. Це демонструє візуалізація з оригінальної статті:
Це свого роду теплова карта, що показує, на що модель "звертає увагу", коли перекладає кожне слово у французькому реченні. Як і слід було очікувати, коли модель виводить слово "européenne" , вона значною мірою враховує обидва вхідні слова — "European" та "Economic" .
Дізнатися моделі, на які слова "звертати увагу" на кожному кроці, допомагають тренувальні дані. Спостерігаючи за тисячами англійських і французьких речень, алгоритм дізнається взаємозалежні типи слів. Він вчиться враховувати стать, множинність та інші правила граматики.
Механізм уваги був надзвичайно корисним інструментом для обробки природної мови з моменту його відкриття у 2015 році, але у своїй первісній формі його використовували разом із рекурентними нейронними мережами. Таким чином, нововведення статті 2017 року про трансформери було частково спрямоване на те, щоб повністю відмовитися від RNN. Ось чому робота 2017 року називається "Увага — це все, що вам потрібно".
Остання частина трансформерів — це поворот уваги, званий "самоуважністю".
Якщо увага допомагає вирівнювати слова під час перекладу з однієї мови на іншу, то самоусвідомлення дає змогу моделі розуміти сенс і закономірності мови.
Наприклад, розглянемо ці два речення:
"Микола загубив ключ від машини"
"Журавлиний ключ попрямував на південь"
Слово "ключ" тут означає дві дуже різні речі, які ми, люди, знаючи ситуацію, можемо запросто відрізняти їхні значення. Самоусвідомлення дозволяє нейронній мережі розуміти слово в контексті слів навколо нього.
Тож коли модель опрацьовує слово "ключ" у першому реченні, вона може звернути увагу на "машини" і зрозуміти, що йдеться про металевий стрижень особливої форми для замка, а не щось інше.
У другому реченні модель може звернути увагу на слова "журавлиний" і "південь" щоб віднести "ключ" до зграї птахів. Самоусвідомлення допомагає нейронним мережам усувати неоднозначність слів, робити частковості розмітку, вивчати семантичні ролі та багато іншого.
Де вони використовуються?
Трансформери спочатку позиціонувалися як нейромережа для обробки і розуміння природної мови. За чотири роки з моменту їхньої появи вони стали популярними і з’явилися в безлічі сервісів, якими щодня користуються мільйони людей.
Одним із найпростіших прикладів є мовна модель BERT компанії Google, розроблена 2018 року.
25 жовтня 2019 року техногігант оголосив про початок використання алгоритму в англомовній версії пошуковика на території США. За півтора місяця компанія розширила список підтримуваних мов до 70, включно з російською, українською, казахською та білоруською.
Оригінальну англомовну модель навчали на датасеті BooksCorpus із 800 млн слів і статтях із "Вікіпедії". Базова BERT містила 110 млн параметрів, а розширена — 340 млн.
Інший приклад популярної мовної моделі на базі трансформерів — це GPT (Generative Pre-trained Transformer) компанії OpenAI.
На сьогодні найактуальніша версія моделі — це GPT-3. Її навчили на датасеті розміром 570 Гб, а кількість параметрів склала 175 млрд, що робить її однією з найбільших мовних моделей.
GPT-3 може генерувати статті, відповідати на запитання, використовуватися як основа для чат-ботів, здійснювати семантичний пошук і створювати короткі витяги з текстів.
Також на базі GPT-3 був розроблений ШІ-помічник для автоматичного написання коду GitHub Copilot. У його основі лежить спеціальна версія GPT-3 Codex AI, навчена на наборі даних із рядків коду. Дослідники вже порахували, що з моменту релізу в серпні 2021 року 30% нового коду на GitHub написано за допомогою Copilot.
Крім цього, трансформи все частіше стали застосовувати в сервісах "Яндекса", наприклад, "Пошуку", "Новинах" і "Перекладачеві", продуктах Google, чат-ботах та інше. А компанія "Сбер" випустила власну модифікацію GPT, навчену на 600 Гб російськомовних текстів.
Які перспективи у трансформерів?
На сьогодні потенціал трансформерів усе ще не розкритий. Вони вже добре себе зарекомендували в опрацюванні текстів, проте останнім часом цей вид нейромереж розглядають і в інших завданнях, таких як комп’ютерний зір.
Наприкінці 2020 року CV-моделі продемонстрували хороші результати в деяких популярних бенчмарках, на кшталт детекції об’єктів на датасеті COGO або класифікації зображень на ImageNet.
У жовтні 2020 року дослідники з Facebook AI Research опублікували статтю, в якій описали модель Data-efficient Image Transformers (DeiT), засновану на трансформерах. За словами авторів, вони знайшли спосіб навчання алгоритму без величезного набору розмічених даних і отримали високу точність розпізнавання зображень — 85%.
У травні 2021 року фахівці з Facebook AI Research представили алгоритм комп’ютерного зору DINO з відкритим вихідним кодом, що автоматично сегментує об’єкти на фото і відео без ручного маркування. Він також заснований на трансформерах, а точність сегментування досягла 80%.
Таким чином, крім NLP, трансформери дедалі частіше знаходять застосування й в інших завданнях.
Які загрози несуть трансформери?
Крім очевидних переваг, трансформери у сфері NLP несуть низку загроз. Творці GPT-3 неодноразово заявляли, що нейромережа може бути використана для масових спам-атак, домагань або дезінформації.
Крім цього, мовна модель схильна до упередженості до певних груп людей. Незважаючи на те, що розробники зменшили токсичність GPT-3, вони все ще не готові надати доступ до інструменту широкому колу розробників.
У вересні 2020 року дослідники з коледжу в Міддлбері опублікували звіт про ризики радикалізації суспільства, пов’язаного з поширенням великих мовних моделей. Вони зазначили, що GPT-3 демонструє "значні поліпшення" у створенні екстремістських текстів порівняно зі своїм попередником GPT-2".
Розкритикував технологію й один із "батьків глибокого навчання" Ян ЛеКун. Він сказав, що багато очікувань щодо здібностей великих мовних моделей є нереалістичними.
"Намагатися побудувати інтелектуальні машини шляхом масштабування мовних моделей — все одно що будувати літаки для польоту на Місяць. Ви можете побити рекорди висоти, але політ на Місяць потребуватиме зовсім іншого підходу", — написав ЛеКун.