заглушки Що таке трансформаторні нейронні мережі? - Об'єднуйтесь.AI
Зв'язатися з нами
Майстер-клас ШІ:

AI 101

Що таке трансформаторні нейронні мережі?

mm
оновлений on

Описано трансформаторні нейронні мережі

трансформери це тип моделі машинного навчання, який спеціалізується на обробці та інтерпретації послідовних даних, що робить їх оптимальними для завдань обробки природної мови. Щоб краще зрозуміти, що таке трансформатор з машинним навчанням і як він працює, давайте детальніше розглянемо моделі трансформаторів і механізми, які ними керують.

Ця стаття охоплюватиме:

  • Моделі «послідовність до послідовності».
  • Архітектура нейронної мережі Transformer
  • Механізм уваги
  • Відмінності між трансформаторами та RNN/LSTM

Моделі «послідовність до послідовності».

Моделі «послідовність до послідовності» — це тип моделі НЛП, який використовується для перетворення послідовностей одного типу в послідовність іншого типу. Існують різні типи моделей послідовності до послідовності, наприклад Рекурентна нейронна мережа моделі і Довга короткочасна пам'ять (LSTM) моделі

Традиційні моделі послідовності в послідовність, такі як RNN і LSTMS, не є предметом цієї статті, але їхнє розуміння необхідно, щоб оцінити, як працюють моделі трансформаторів і чому вони кращі за традиційні моделі послідовності в послідовність.

Коротше кажучи, моделі RNN і моделі LSTM складаються з мереж кодера та декодера, які аналізують вхідні дані на різних етапах часу. Модель кодера відповідає за формування закодованого представлення слів у вхідних даних. На кожному кроці часу мережа кодера приймає послідовність введення та прихований стан із попереднього кроку часу в серії. Значення прихованого стану оновлюються в міру проходження даних через мережу до останнього кроку, де генерується «вектор контексту». Потім вектор контексту передається в мережу декодера, яка використовується для генерації цільової послідовності шляхом прогнозування найбільш ймовірного слова, яке з’єднується з вхідним словом для відповідних часових кроків.

Ці моделі можна доповнити за допомогою “механізм уваги”. Механізм уваги визначає, на яких частинах вхідного вектора мережа повинна зосередитися, щоб створити належний вихід. Іншими словами, механізм уваги дозволяє моделі трансформатора обробляти одне вхідне слово, одночасно звертаючи увагу на відповідну інформацію, що міститься в інших вхідних словах. Механізми уваги також маскують слова, які не містять релевантної інформації.

Архітектура трансформаторної нейронної мережі

Пізніше ми зупинимося на механізмі уваги більш детально, а поки давайте розглянемо архітектура трансформаторної нейронної мережі на більш високому рівні.

У загальному вигляді трансформаторна нейронна мережа виглядає приблизно так:

Хоча ця загальна структура може змінюватися між мережами, основні елементи залишаться незмінними: позиційне кодування, вектори слів, механізм уваги, нейронна мережа прямого зв’язку.

Позиційні кодування та вектори слів

Працює трансформаторна нейронна мережа взявши послідовність вхідних даних і перетворивши ці вхідні дані в дві інші послідовності. Трансформатор виробляє послідовність вбудованих векторів слів і позиційних кодувань.

Вбудовування вектора Word це лише текст, представлений у числовому форматі, який може обробити нейронна мережа. Між тим, позиційне кодування є векторизованим представленням, що містить інформацію про позицію поточного слова у вхідному реченні по відношенню до інших слів.

Інші моделі нейронних мереж на основі тексту, такі як RNN і LSTM, використовують вектори для представлення слів у вхідних даних. Ці векторні вбудовування відображають слова в постійні значення, але це обмежує, оскільки слова можна використовувати в різних контекстах. Трансформаторна мережа вирішує цю проблему, роблячи значення слів більш гнучкими, використовуючи синусоїдальні функції, щоб дозволити векторам слів приймати різні значення залежно від позиції слова в реченні.

Це дозволяє моделі нейронної мережі зберігати інформацію щодо відносної позиції вхідних слів навіть після того, як вектори переміщуються через шари трансформаторної мережі.

Позиційне кодування та вбудовування вектора слів підсумовуються, а потім передаються в мережі кодера та декодера. Хоча трансформаторні нейронні мережі використовують схеми кодера/декодера так само, як RNN і LSTM, одна головна відмінність між ними полягає в тому, що всі вхідні дані подаються в мережу одночасно, тоді як у RNN/LSTM дані передаються послідовно.

Мережі кодувальників відповідають за перетворення вхідних даних у представлення, з яких мережа може навчатися, тоді як мережі декодувальників роблять протилежне й перетворюють кодування у розподіл ймовірностей, який використовується для створення найбільш імовірних слів у вихідному реченні. Важливо те, що і кодер, і декодер мають механізм уваги.

Оскільки графічні процесори здатні до паралельної обробки, декілька механізмів уваги використовуються паралельно, обчислюючи відповідну інформацію для всіх вхідних слів. Ця здатність одночасно звертати увагу на кілька слів, що називається «увагою кількох голов», допомагає нейронній мережі вивчати контекст слова в реченні, і це одна з головних переваг трансформаторних мереж перед RNN і LSTM.

Механізм уваги

Механізм уваги є найважливішою частиною трансформаторної мережі. Механізм уваги – це те, що дозволяє моделям трансформаторів вийти за межі уваги типової моделі RNN або LSTM. Традиційні моделі «Послідовність до послідовності» відкидають усі проміжні стани та використовують лише кінцевий вектор стану/контексту під час ініціалізації мережі декодера для створення прогнозів щодо вхідної послідовності.

Відкидання всього, крім кінцевого вектора контексту, працює добре, коли вхідні послідовності досить малі. Проте зі збільшенням довжини вхідної послідовності продуктивність моделі погіршуватиметься під час використання цього методу. Це пов’язано з тим, що стає досить важко узагальнити довгу вхідну послідовність як один вектор. Рішення полягає в тому, щоб підвищити «увагу» моделі та використовувати проміжні стани кодера для побудови векторів контексту для декодера.

Механізм звернення уваги визначає, наскільки важливі інші вхідні маркери для моделі під час створення кодувань для будь-якого даного маркера. Наприклад, «воно» — це загальний займенник, який часто використовують для позначення тварин, коли їхня стать невідома. Механізм уваги дозволить трансформаторній моделі визначити, що в поточному контексті «це» відноситься до білки, оскільки вона може перевірити всі відповідні слова у вхідному реченні.

Механізм уваги можна використовувати трьома різними способами: кодер-декодер, лише кодер, лише декодер.

Увага кодера-декодера дозволяє декодеру враховувати вхідні послідовності під час генерації виходу, тоді як механізми уваги лише кодера та лише декодера дозволяють мережам враховувати всі частини попередньої та поточної послідовностей відповідно.

Побудову механізму уваги можна розділити на п’ять етапів:

  1. Обчислення оцінки для всіх станів кодера.
  2. Розрахунок ваг уваги
  3. Обчислення векторів контексту
  4. Оновлення вектора контексту з попереднім виведенням кроку часу
  5. Генерація виводу за допомогою декодера

Перший крок полягає в тому, щоб декодер обчислив оцінку для всіх станів кодера. Це робиться шляхом навчання мережі декодера, яка є базовою нейронною мережею прямого зв’язку. Коли декодер навчається на першому слові вхідної послідовності, внутрішній/прихований стан ще не створено, тому останній стан кодера зазвичай використовується як попередній стан декодера.

Щоб обчислити вагові коефіцієнти уваги, використовується функція softmax для створення імовірнісного розподілу вагових коефіцієнтів уваги.

Після того, як ваги уваги обчислено, потрібно обчислити вектор контексту. Це робиться шляхом множення вагових коефіцієнтів уваги та прихованого стану для кожного тимчасового кроку.

Після обчислення вектора контексту він використовується поряд зі словом, згенерованим на попередньому часовому кроці, для створення наступного слова у вихідній послідовності. Оскільки декодер не має попереднього виводу, до якого можна було б звернутися на першому часовому кроці, замість нього часто використовується спеціальний маркер «початок».

Відмінності між трансформаторами та RNN/LSTM

Давайте швидко розглянемо деякі відмінності між RNN і LSTM.

RNN обробляють вхідні дані послідовно, тоді як прихований вектор стану підтримується та змінюється вхідними словами, коли вони переміщуються мережею. Приховані стани RNN зазвичай містять дуже мало відповідної інформації щодо попередніх вхідних даних. Нові вхідні дані часто перезаписують поточний стан, що спричиняє втрату інформації та погіршує продуктивність з часом.

Навпаки, трансформаторні моделі обробляють всю вхідну послідовність одночасно. Механізм уваги дозволяє кожному вихідному слову інформуватись про кожен вхідний і прихований стан, що робить мережу більш надійною для довгих фрагментів тексту.

LSTM є модифікованою версією RNN, налаштованою для роботи з довшими вхідними послідовностями. Архітектура LSTM використовує структуру під назвою «шлюзи» з «вхідними гейтами», «вихідними гейтами» та «забутими гейтами». Гейтований дизайн має справу з втратою інформації, типовою для моделей RNN. Дані все ще обробляються послідовно, а рекурентна конструкція архітектури ускладнює навчання моделей LSTM за допомогою паралельних обчислень, що робить загальний час навчання довшим.

Інженери LSTM часто додавали механізми уваги до мережі, які, як відомо, покращували продуктивність моделі. Однак згодом було виявлено, що сам по собі механізм уваги покращує точність. Це відкриття призвело до створення трансформаторних мереж, які використовували механізми уваги та паралельні обчислення завдяки графічним процесорам.