Моделі та платформи ШІ

NLP-злет з моделями Transformer | Комплексний аналіз T5, BERT та GPT

mm
Додайте Unite.AI до бажаних джерел у Google

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

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

Ранні техніки NLP: Основи до трансформерів

Вбудовування слів: Від одного гарячого до Word2Vec

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

Один гарячий код – це процес, за допомогою якого категоріальні змінні перетворюються у двійкове векторне представлення, де тільки один біт “гарячий” (встановлено на 1), а всі інші “холодні” (встановлено на 0). У контексті NLP кожне слово у словнику представлено одиничними векторами, де кожен вектор має розмір словника, і кожне слово представлено вектором з усіма 0 та одним 1 на індексі, відповідному цьому слову у списку словника.

Приклад одного гарячого коду

Припустимо, у нас є маленький словник з лише п’ятьма словами: [“king”, “queen”, “man”, “woman”, “child”]. Вектори одного гарячого коду для кожного слова будуть виглядати так:

  • “king” -> [1, 0, 0, 0, 0]
  • “queen” -> [0, 1, 0, 0, 0]
  • “man” -> [0, 0, 1, 0, 0]
  • “woman” -> [0, 0, 0, 1, 0]
  • “child” -> [0, 0, 0, 0, 1]

Математичне представлення

Якщо ми позначимо як розмір нашого словника і як одиничний векторний представлення i-го слова у словнику, математичне представлення буде:

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

Введення вбудовування слів, особливо Word2Vec, було переломним моментом у NLP. Розроблений командою в Google (GOOGL ) під керівництвом Томаса Міkolova у 2013 році, Word2Vec представляє слова у щільному векторному просторі, захоплюючи синтаксичні та семантичні відносини між словами на основі їхнього контексту у великих корпусах тексту.

На відміну від одного гарячого коду, Word2Vec виробляє щільні вектори, зазвичай з сотнями вимірів. Слова, які з’являються у подібних контекстах, наприклад “king” і “queen”, будуть мати векторні представлення, які знаходяться ближче один до одного у векторному просторі.

Для ілюстрації припустимо, що у нас є навчена модель Word2Vec і зараз представляємо слова у гіпотетичному 3-мірному просторі. Вбудовування (які зазвичай більш ніж 3D, але тут зменшені для простоти) можуть виглядати приблизно так:

  • “king” -> [0.2, 0.1, 0.9]
  • “queen” -> [0.21, 0.13, 0.85]
  • “man” -> [0.4, 0.3, 0.2]
  • “woman” -> [0.41, 0.33, 0.27]
  • “child” -> [0.5, 0.5, 0.1]

Хоча ці числа є вигаданими, вони демонструють, як подібні слова мають подібні вектори.

Математичне представлення

Якщо ми представимо вбудовування Word2Vec слова як , і наш векторний простір має вимірів, тоді можна представити як:

Семантичні відносини

Word2Vec може навіть захоплювати складні відносини, такі як аналогії. Наприклад, знаменита відносина, захоплена вбудовуванням Word2Vec, така:

вектор(“king”) – вектор(“man”) + вектор(“woman”)≈вектор(“queen”)

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

Word2Vec використовує дві основні архітектури для отримання розподіленого представлення слів: Continuous Bag-of-Words (CBOW) і Skip-Gram. CBOW передбачає цільове слово з його контекстних слів, тоді як Skip-Gram робить зворотне, передбачаючи контекстні слова з цільового слова. Це дозволило машинам почати розуміти використання слів і їхнє значення більш тонким чином.

Моделювання послідовностей: RNN та LSTM

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

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

Довгострокові короткочасні пам’яті (LSTM), введені Сеппом Хохрайтером і Юргеном Шмідгубером у 1997 році, вирішили цю проблему більш складною архітектурою. LSTM мають ворота, які контролюють потік інформації: вхідне ворота, забувальне ворота та вихідне ворота. Ці ворота визначають, яку інформацію зберігають, оновлюють чи викидають, що дозволяє мережі зберігати довгострокові залежності та суттєво покращує результати на широкому спектрі завдань NLP.

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

Ландшафт NLP зазнав драматичних змін з появою моделі трансформера в відомій статті “Увага – це все, що потрібно” Васвані та ін. у 2017 році. Архітектура трансформера відрізняється від послідовної обробки RNN та LSTM і використовує механізм, званий “самоувага”, для визначення ваги впливу різних частин вхідних даних.

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

Кодувальник і декодувальник у трансформерах:

У оригінальній моделі трансформера, як описано в статті “Увага – це все, що потрібно” Васвані та ін., архітектура розділена на дві основні частини: кодувальник і декодувальник. Обидві частини складаються з шарів, які мають загальну структуру, але служать різним цілям.

Кодувальник:

  • Роль: Роль кодувальника полягає в тому, щоб обробити вхідні дані та створити представлення, яке захоплює відносини між елементами (наприклад, словами у реченні). Ця частина трансформера не генерує жодного нового вмісту; вона просто перетворює вхідні дані у стан, який декодувальник може використовувати.
  • Функціональність: Кожен шар кодувальника має механізми самоуваги та нейронні мережі з прямим розповсюдженням. Механізм самоуваги дозволяє кожній позиції у кодувальнику звертатися до всіх позицій у попередньому шарі кодувальника – таким чином, він може вивчити контекст навколо кожного слова.
  • Контекстні вкладення: Вихід кодувальника – це ряд векторів, які представляють вхідну послідовність у високовимірному просторі. Ці вектори часто називають контекстними вкладеннями, оскільки вони кодують не тільки окремі слова, а й їхній контекст у реченні.

Декодувальник:

  • Роль: Роль декодувальника полягає в тому, щоб генерувати вихідні дані послідовно,一步 за кроком, на основі вхідних даних, які він отримує від кодувальника, і того, що він вже згенерував.
  • Функціональність: Шари декодувальника також містять механізми самоуваги, але вони маскуються, щоб запобігти звертанню до наступних позицій. Це гарантує, що передбачення для певної позиції можуть залежати лише від відомих виходів на попередніх позиціях. Крім того, шари декодувальника включають другий механізм уваги, який звертається до виходу кодувальника, інтегруючи контекст з вхідних даних у процес генерації.
  • Послідовна генераційна здатність: Це стосується здатності декодувальника генерувати послідовність крок за кроком, будуючи на тому, що він вже згенерував. Наприклад, при генерації тексту декодувальник передбачає наступне слово на основі контексту, наданого кодувальником, і послідовності слів, яку він вже згенерував.

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

Популярні моделі, що використовують трансформери

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

BERT (Бідирекціональні представлення трансформера): Введений Google у 2018 році, BERT революціонізував спосіб інтеграції контекстної інформації у мовні представлення. За допомогою попереднього навчання на великому корпусі тексту з маскованим моделлю мови та передбаченням наступного речення BERT захоплює багаті бідирекціональні контексти та досягнув результатів на широкому спектрі завдань NLP.

BERT

BERT

T5 (Текст-у-текст трансформер): Введений Google у 2020 році, T5 переформулює всі завдання NLP як текст-у-текст проблему, використовуючи уніфікований текстовий формат. Цей підхід спрощує процес застосування моделі до різноманітних завдань, включаючи переклад, підрахунок та відповіді на питання.

T5 Архітектура

T5 Архітектура

GPT (Генеративний попередньо навчений трансформер): Розроблений OpenAI, лінійка моделей GPT почалася з GPT-1 і досягла GPT-4 у 2023 році. Ці моделі попередньо навчаються за допомогою несупервізованого навчання на величезних обсягах текстових даних і налаштовуються для різних завдань. Їхня здатність генерувати узгоджений та контекстно-відповідний текст зробила їх високовпливовими як в академічних, так і в комерційних застосунках штучного інтелекту.

GPT

GPT Архітектура

Ось більш детальний порівняльний аналіз моделей T5, BERT та GPT за різними ознаками:

1. Токенізація та словник

  • BERT: Використовує токенізацію WordPiece зі словником розміром близько 30 000 токенів.
  • GPT: Використовує кодування Byte Pair (BPE) зі словником великого розміру (наприклад, GPT-3 має словник розміром 175 000).
  • T5: Використовує токенізацію SentencePiece, яка розглядає текст як сирі дані і не потребує попередньої сегментації слів.

2. Завдання попереднього навчання

  • BERT: Маскована модель мови (MLM) та передбачення наступного речення (NSP).
  • GPT: Кавзальна мова моделювання (CLM), де кожен токен передбачає наступний токен у послідовності.
  • T5: Використовує денойзингове завдання, де випадкові ділянки тексту замінюються на спеціальний токен, і модель вчиться відновлювати оригінальний текст.

3. Представлення вхідних даних

  • BERT: Токен, сегмент та позиційні вкладення об’єднуються для представлення вхідних даних.
  • GPT: Токен та позиційні вкладення об’єднуються (без сегментних вкладень, оскільки він не призначений для завдань пари речень).
  • T5: Використовує лише токен-вкладення з доданими відносними позиційними кодуваннями під час операцій уваги.

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

  • BERT: Використовує абсолютні позиційні кодування та дозволяє кожному токену звертатися до всіх токенів ліворуч та праворуч (бідирекціональна увага).
  • GPT: Також використовує абсолютні позиційні кодування, але обмежує увагу лише попередніми токенами (унідирекційна увага).
  • T5: Реалізує варіант трансформера, який використовує відносні позиційні упередження замість позиційних вкладень.

5. Архітектура моделі

  • BERT: Використовує лише кодувальник з кількома шарами трансформера-блоків.
  • GPT: Використовує лише декодувальник, також з кількома шарами, але призначений для генеративних завдань.
  • T5: Використовує архітектуру кодувальник-декодувальник, де і кодувальник, і декодувальник складаються з трансформер-шарів.

6. Підхід до налаштування

  • BERT: Адаптує кінцеві приховані стани попередньо навченої моделі для завдань нижнього рівня з додатковими виходами, якщо потрібно.
  • GPT: Додає лінійний шар на вершину трансформера та налаштовує на завдання нижнього рівня, використовуючи ту ж кавзальну мовну модель.
  • T5: Перетворює всі завдання у текст-у-текст формат, де модель налаштовується для генерації цільової послідовності з вхідної послідовності.

7. Дані навчання та масштаб

  • BERT: Навчений на BooksCorpus та англійській Вікіпедії.
  • GPT: GPT-2 та GPT-3 були навчені на різноманітних наборах даних, видобутих з Інтернету, причому GPT-3 був навчений на ще більшому корпусі, званому Common Crawl.
  • T5: Навчений на “Colossal Clean Crawled Corpus”, який є великим та чистим варіантом Common Crawl.

8. Обробка контексту та бідирекціональності

  • BERT: Спроектований для розуміння контексту в обидих напрямках одночасно.
  • GPT: Навчений для розуміння контексту у напрямку зліва направо.
  • T5: Можна моделювати бідирекціональний контекст у кодувальнику та уніпотоковий у декодувальнику, що підходить для послідовність-у-послідовність завдань.

9. Адаптивність до завдань нижнього рівня

  • BERT: Вимагає завдань-специфічних шарів голови та налаштування для кожного завдання нижнього рівня.
  • GPT: Генеративний за своєю суттю і може бути підштовхнутий до виконання завдань з мінімальними змінами у своїй структурі.
  • T5: Розглядає кожне завдання як “текст-у-текст” проблему, що робить його внутрішньо гнучким та адаптивним до нових завдань.

10. Інтерпретація та пояснюваність

  • BERT: Бідирекціональна природа забезпечує багатий контекстний вкладення, але може бути складніше інтерпретувати.
  • GPT: Уніпотоковий контекст може бути простішим для слідування, але не має глибини бідирекціонального контексту.
  • T5: Фреймворк кодувальник-декодувальник забезпечує чіткий поділ етапів обробки, але може бути складним для аналізу через свою генеративну природу.

Вплив трансформерів на NLP

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

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

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

Я провів останні п'ять років, занурючись у захопливий світ машинного навчання та глибокого навчання. Моя пристрасть та експертиза привели мене до внеску у понад 50 різних проектів програмної інженерії, з особливим акцентом на AI/ML. Моя тривала цікавість також привела мене до природної обробки мови, галузі, яку я бажаю дослідити далі.