Transformers Models

Оновлено: 31.07.2023

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

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

  • Трансформери, які вперше були детально описані в дослідженні Google у 2017 році, є одним з найновіших і найпотужніших типів моделей, створених до цього часу. Вони сприяють стрімкому розвитку машинного навчання, яке дехто називає "трансформаторним ШІ".
.

У дослідженні, опублікованому в серпні 2021 року, дослідники зі Стенфорда назвали трансформатори "фундаментальними моделями", оскільки побачили, що вони спричиняють зміну парадигми в ШІ. Вони зазначили, що "величезний масштаб і широта фундаментальних моделей за останні роки розширили наше уявлення про те, що можна уявити".

Модельні комплекти трансформаторів

Трансформатор побудований на основі кодера-декодера, проте він не покладається на рекурсію та згортки для створення вихідного сигналу.

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

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

Кодер

Кодер побудовано зі стеку з 6 рівних шарів, кожен з яких складається з двох підшарів.

  • Перший підрівень надає метод самоконтролю з кількома головами. Техніка з декількома головками реалізує головки, які отримують версію лінійної проекції запитів, ключів і значень для паралельного створення виходів, які потім використовуються для побудови кінцевого результату.
  • Другий підрівень - це мережа прямого поширення з двома лінійними перетвореннями, розділеними активацією випрямленої лінійної одиниці (ReLU).
.

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

Крім того, кожен з цих двох підшарів оточений залишковим з'єднанням.

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

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

Дешифратор

Декодер і кодер мають деякі спільні риси.

Декодер складається зі стеку однакових шарів, кожен з яких має три підшари.

  • Перший підрівень бере попередній вивід зі стеку декодера, додає до нього позиційну інформацію, а потім використовує її для досягнення багатоголової самоуваги. У той час як декодер налаштований на фокусування на словах, що стоять безпосередньо перед поточним, кодер звертає увагу на всі фрази у вхідній послідовності. Отже, прогноз для слова в певній позиції може бути отриманий лише на основі відомих результатів для попередніх слів. Зокрема, для досягнення цього ефекту значення, отримані в результаті масштабованого множення матриць Q і K, маскуються у механізмі багатоголової уваги.
  • Паналогічно до техніки, що використовується у першому підрівні кодера, другий рівень використовує механізм багатоголової самоуваги. Він збирає запити з попереднього підрівня декодера, а також ключові слова і значення з виходу кодера. Це дозволяє декодеру обробляти кожне слово у вхідній послідовності.
  • Третій рівень забезпечує повністю пов'язану мережу прямого зв'язку, порівнянну з мережею, побудованою на другому підрівні кодера. Крім того, три підрівні з боку декодера оточені залишковими зв'язками, а за ними слідує нормалізуючий рівень.
.

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

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

Для ваших додатків НЛП ви також можете точно налаштувати попередньо навчену модель ШІ-трансформера.