Transformers Models
Оновлено: 31.07.2023
Трансформаторна модель - це нейронна мережа, яка виявляє контекст і, відповідно, значення, відстежуючи взаємозв'язки в послідовних даних, таких як слова в цій фразі.
Трансформатори використовують розширюваний набір математичних підходів, відомих як увага або самоуважність, щоб розпізнати складні способи, якими навіть віддалені частини даних у серії впливають і покладаються одна на одну.
- Трансформери, які вперше були детально описані в дослідженні Google у 2017 році, є одним з найновіших і найпотужніших типів моделей, створених до цього часу. Вони сприяють стрімкому розвитку машинного навчання, яке дехто називає "трансформаторним ШІ".
У дослідженні, опублікованому в серпні 2021 року, дослідники зі Стенфорда назвали трансформатори "фундаментальними моделями", оскільки побачили, що вони спричиняють зміну парадигми в ШІ. Вони зазначили, що "величезний масштаб і широта фундаментальних моделей за останні роки розширили наше уявлення про те, що можна уявити".
Модельні комплекти трансформаторів
Трансформатор побудований на основі кодера-декодера, проте він не покладається на рекурсію та згортки для створення вихідного сигналу.
Кодер на лівій стороні трансформаторної структури відповідає за відображення вхідної послідовності в серію постійних представлень, які згодом передаються на декодер.
У правій частині архітектури декодер отримує вихід кодера разом з виходом декодера з попереднього часового кроку, щоб сформувати вихідну послідовність.
Кодер
Кодер побудовано зі стеку з 6 рівних шарів, кожен з яких складається з двох підшарів.
- Перший підрівень надає метод самоконтролю з кількома головами. Техніка з декількома головками реалізує головки, які отримують версію лінійної проекції запитів, ключів і значень для паралельного створення виходів, які потім використовуються для побудови кінцевого результату.
- Другий підрівень - це мережа прямого поширення з двома лінійними перетвореннями, розділеними активацією випрямленої лінійної одиниці (ReLU).
Кожен з шести шарів трансформаторного кодера виконує ідентичні лінійні зміни для кожного слова вхідної послідовності, але вони роблять це з різними ваговими параметрами та параметрами зсуву.
Крім того, кожен з цих двох підшарів оточений залишковим з'єднанням.
Важливо пам'ятати, що конструкція трансформатора не може перехопити інформацію про взаємне розташування слів у послідовності, оскільки не використовує рекурсію. Цю інформацію необхідно вставити у вхідні вставки, додавши позиційні коди.
Синусоїдальні та косинусоїдальні функції різної частоти використовуються для побудови векторів позиційного кодування з тим самим розміром, що й вхідні вставки. Після цього вони просто додаються до вихідних вбудовувань для введення позиційної інформації.
Дешифратор
Декодер і кодер мають деякі спільні риси.
Декодер складається зі стеку однакових шарів, кожен з яких має три підшари.
- Перший підрівень бере попередній вивід зі стеку декодера, додає до нього позиційну інформацію, а потім використовує її для досягнення багатоголової самоуваги. У той час як декодер налаштований на фокусування на словах, що стоять безпосередньо перед поточним, кодер звертає увагу на всі фрази у вхідній послідовності. Отже, прогноз для слова в певній позиції може бути отриманий лише на основі відомих результатів для попередніх слів. Зокрема, для досягнення цього ефекту значення, отримані в результаті масштабованого множення матриць Q і K, маскуються у механізмі багатоголової уваги.
- Паналогічно до техніки, що використовується у першому підрівні кодера, другий рівень використовує механізм багатоголової самоуваги. Він збирає запити з попереднього підрівня декодера, а також ключові слова і значення з виходу кодера. Це дозволяє декодеру обробляти кожне слово у вхідній послідовності.
- Третій рівень забезпечує повністю пов'язану мережу прямого зв'язку, порівнянну з мережею, побудованою на другому підрівні кодера. Крім того, три підрівні з боку декодера оточені залишковими зв'язками, а за ними слідує нормалізуючий рівень.
Так само, як ми бачили з кодером, вхідні вставки декодера отримують позиційні коди.
- Трансформатор глибокого навчання, такий як мовна модель на основі трансформаторів, є ефективним інструментом, який можна використовувати в різних програмах обробки природної мови.
- Пакет машинного навчання трансформаторів HuggingFace дозволяє програмістам легко використовувати передові трансформатори для таких поширених додатків, як відповіді на запитання, аналіз настроїв та узагальнення тексту.
Для ваших додатків НЛП ви також можете точно налаштувати попередньо навчену модель ШІ-трансформера.