ШІ 101
Що Такі Трансформерні Нейронні Мережі?

Трансформерні Нейронні Мережі: Опис
Трансформери – це тип моделі машинного навчання, який спеціалізується на обробці та інтерпретації послідовних даних, що робить їх оптимальними для завдань обробки природної мови. Щоб краще зрозуміти, що таке трансформерна модель машинного навчання, і як вони працюють, давайте ближче розглянемо моделі трансформерів і механізми, які ними керують.
Ця стаття буде охоплювати:
- Моделі Послідовність-Послідовність
- Архітектура Трансформерної Нейронної Мережі
- Механізм Уваги
- Відмінності Між Трансформерами та RNN/LSTM
Моделі Послідовність-Послідовність
Моделі послідовність-послідовність – це тип моделей NLP, які використовуються для перетворення послідовностей одного типу в послідовність іншого типу. Існує кілька типів моделей послідовність-послідовність, таких як Рекурентні Нейронні Мережі та Довготривала Короткочасна Пам’ять (LSTM).
Традиційні моделі послідовність-послідовність, такі як RNN та LSTM, не є основним предметом цієї статті, але розуміння їх необхідно для оцінки того, як працюють моделі трансформерів і чому вони перевершують традиційні моделі послідовність-послідовність.
У короткому, моделі RNN та LSTM складаються з мереж кодування та декодування, які аналізують вхідні дані на різних часових кроках. Мережа кодування відповідає за формування закодованого представлення слів у вхідних даних. На кожному часовому кроку мережа кодування приймає вхідну послідовність та прихований стан з попереднього часу кроку в серії. Приховані стани оновлюються під час проходження даних через мережу, аж до останнього часу кроку, де генерується “контекстний вектор”. Контекстний вектор потім передається до мережі декодування, яка використовується для генерації цільової послідовності шляхом прогнозування найбільш ймовірного слова, яке парується з вхідним словом для відповідних часових кроків.
Ці моделі можна доповнити за допомогою механізму уваги. Механізм уваги визначає, на яких частинах вхідного вектора мережа повинна зосередитися, щоб згенерувати правильний вихід. Інакше кажучи, механізм уваги дозволяє трансформерній моделі обробляти одне вхідне слово, одночасно звертаючи увагу на відповідну інформацію, що міститься в інших вхідних словах. Механізми уваги також маскують слова, які не містять відповідної інформації.
Архітектура Трансформерної Нейронної Мережі
Ми розглянемо механізм уваги більш детально пізніше, але зараз давайте розглянемо архітектуру трансформерної нейронної мережі на вищому рівні.
Загалом, трансформерна нейронна мережа виглядає наступним чином:

Хоча загальна структура може змінюватися між мережами, основні частини залишаються однаковими: позиційні кодування, векторні слова, механізм уваги, нейронна мережа з прямим поширенням.
Позиційні Кодування та Векторні Слова
Трансформерна нейронна мережа працює шляхом прийняття послідовності вхідних даних і перетворення їх у дві інші послідовності. Трансформер генерує послідовність векторних словесних вкладень і позиційних кодувань.
Векторні словесні вкладення – це просто текст, представлений у числовому форматі, який може обробляти нейронна мережа. Тоді як позиційні кодування – це векторизовані представлення, що містять інформацію про позицію поточного слова у вхідному реченні відносно інших слів.
Інші текстові нейронні мережі, такі як RNN та LSTM, використовують вектори для представлення слів у вхідних даних. Ці векторні вкладення відображають слова на постійні значення, але це обмеження, оскільки слова можуть використовуватися у різних контекстах. Трансформерна мережа вирішує цю проблему, роблячи значення слів більш гнучкими, використовуючи синусоїдальні функції, щоб дозволити словесним векторам приймати різні значення залежно від позиції слова у реченні.
Це дозволяє мережі зберегти інформацію щодо відносної позиції вхідних слів, навіть після того, як вектори проходять через шари трансформерної мережі.
Позиційні кодування та словесні векторні вкладення сумуються, а потім передаються до мереж кодування та декодування. Хоча трансформерні нейронні мережі використовують схему кодування/декодування, подібну до RNN та LSTM, одна з основних відмінностей між ними полягає в тому, що все вхідне дані подаються до мережі одночасно, тоді як у RNN/LSTM дані подаються послідовно.
Мережі кодування відповідають за перетворення вхідних даних у представлення, які може вивчити мережа, тоді як мережі декодування роблять протилежне і перетворюють кодування у розподіл імовірності, який використовується для генерації найбільш ймовірних слів у вихідному реченні. Насамперед, як мережі кодування, так і мережі декодування мають механізм уваги.
Оскільки GPU здатні до паралельної обробки, кілька механізмів уваги використовуються паралельно, обчислюючи відповідну інформацію для всіх вхідних слів. Ця можливість звертати увагу на кілька слів одночасно, яку називають “багатокроковою” увагою, допомагає мережі вивчити контекст слова у реченні, і це одна з основних переваг, які трансформерні мережі мають над RNN та LSTM.
Механізм Уваги
Механізм уваги – це найважливіша частина трансформерної мережі. Механізм уваги дозволяє трансформерним моделям перевершити обмеження уваги типової RNN або LSTM моделі. Традиційні моделі послідовність-послідовність відкидають всі проміжні стани і використовують лише останній стан/контекстний вектор під час ініціалізації мережі декодування для генерації прогнозів щодо вхідної послідовності.
Відкидання всього, крім останнього контекстного вектора, працює досить добре, коли вхідні послідовності досить короткі. Однак, коли довжина вхідної послідовності збільшується, продуктивність моделі погіршується при використанні цього методу. Це відбувається через те, що досить складно підсумувати довгу вхідну послідовність одним вектором. Рішенням є збільшення “уваги” моделі та використання проміжних станів кодування для створення контекстних векторів для мережі декодування.
Механізм уваги визначає, наскільки важливі інші вхідні токени для моделі під час створення кодувань для будь-якого даного токена. Наприклад, “воно” – це загальна займенник, часто використовуваний для позначення тварин, коли їх стать невідома. Механізм уваги дозволить трансформерній моделі визначити, що в поточному контексті “воно” відноситься до білки, оскільки вона може розглянути всі відповідні слова у вхідному реченні.
Механізм уваги можна використовувати трьома різними способами: кодування-декодування, тільки кодування, тільки декодування.
Увага кодування-декодування дозволяє декодеру розглянути вхідні послідовності під час генерації виходу, тоді як механізми уваги тільки кодування та тільки декодування дозволяють мережам розглянути всі частини попередніх та поточних послідовностей відповідно.
Конструкція механізму уваги можна розділити на п’ять кроків:
- Обчислення оцінки для всіх станів кодування.
- Обчислення ваг уваги
- Обчислення контекстних векторів
- Оновлення контекстного вектора з виходом попереднього часу кроку
- Генерація виходу з декодера
Перший крок – це обчислення декодером оцінки для всіх станів кодування. Це робиться шляхом навчання мережі декодування, яка є базовою нейронною мережею з прямим поширенням. Коли декодер навчається на першому слові у вхідній послідовності, жодного внутрішнього/прихованого стану ще не створено, тому останній стан кодування зазвичай використовується як попередній стан декодера.
Щоб обчислити ваги уваги, використовується функція softmax для генерації ймовірнісного розподілу для ваг уваги.
Після обчислення ваг уваги потрібно обчислити контекстний вектор. Це робиться шляхом множення ваг уваги та прихованого стану разом для кожного часу кроку.
Після обчислення контекстного вектора його використовують разом із словом, згенерованим на попередньому часу кроку, для генерації наступного слова у вихідній послідовності. Оскільки декодер не має попереднього виходу для звернення в першому часу кроку, часто використовується спеціальний “стартовий” токен.
Відмінності Між Трансформерами та RNN/LSTM
Давайте швидко розглянемо деякі відмінності між RNN та LSTM.
RNN обробляють вхідні дані послідовно, тоді як прихований стан зберігається та змінюється вхідними словами під час проходження даних через мережу. Приховані стани RNN зазвичай містять дуже мало відповідної інформації щодо попередніх вхідних даних. Нові вхідні дані часто перезаписують поточний стан, що спричиняє втрату інформації та погіршення продуктивності з часом.
Натомість, трансформерні моделі обробляють всю вхідну послідовність одночасно. Механізм уваги дозволяє кожному виходу бути інформованим кожним вхідним словом та прихованим станом, що робить мережу більш надійною для довгих текстів.
LSTM – це модифікована версія RNN, змінена для обробки довших вхідних послідовностей. Архітектура LSTM використовує структуру під назвою “брами”, з “вхідними брамами”, “вихідними брамами” та “брамами забуття”. Проект брами займається втратою інформації, характерною для моделей RNN. Дані обробляються послідовно, а рекурентний дизайн архітектури робить навчання моделей LSTM важким за допомогою паралельних обчислень, що робить загальний час навчання довшим.
Інженери LSTM часто додавали механізми уваги до мережі, що було відомо як поліпшення продуктивності моделі. Однак згодом було виявлено, що механізм уваги сам по собі покращував точність. Це відкриття призвело до створення трансформерних мереж, які використовували механізми уваги та паралельні обчислення завдяки GPU.








