Штучний інтелект
NLP Rise with Transformer Models | A Comprehensive Analysis of T5, BERT, and GPT

Природно-мовна обробка (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]
Математичне представлення
Якщо ми позначимо V як розмір нашого словника і wi як один-гарячий векторне представлення i-го слова у словнику, математичне представлення wi буде:
wi=[0,0,…,1,…,0,0] де позиція i є 1, а всі інші позиції є 0.де позиція i є 1, а всі інші позиції є 0.
Основним недоліком один-гарячого кодування є те, що воно розглядає кожне слово як ізольовану сутність, без жодної зв’язку з іншими словами. Це призводить до розріджених та високовимірних векторів, які не відображають жодної семантичної чи синтаксичної інформації про слова.
Введення вбудовування слів, найвідоміше з яких є Word2Vec, було поворотним моментом у NLP. Розроблений командою в Google під керівництвом Томаса Міколова у 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 слова як vw, і наш векторний простір має d вимірів, тоді vw можна представити як:
vw=[v1,v2,…,vd] де кожен vi є дійсним числом, яке представляє особливість слова у векторному просторі.
Семантичні відносини
Word2Vec навіть може захоплювати складні відносини, такі як аналогії. Наприклад, відома відносина, захоплена вбудовуванням Word2Vec, є:
вектор(“king”) – вектор(“man”) + вектор(“woman”)≈вектор(“queen”)вектор(“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.
T5 (Текст-у-текст трансформер): Введений Google у 2020 році, T5 переформулює всі завдання NLP як текст-у-текст проблему, використовуючи уніфікований текстовий формат. Цей підхід спрощує процес застосування моделі до різноманітних завдань, включаючи переклад, підсумовування та відповідь на питання.
GPT (Генеративний попередньо навчений трансформер): Розроблений OpenAI, лінія моделей GPT почалася з GPT-1 і досягла GPT-4 у 2023 році. Ці моделі попередньо навчаються за допомогою несупервізійного навчання на величезних кількостях текстових даних та налаштовуються для різних завдань. Їхня здатність генерувати узгоджений та контекстно-релевантний текст зробила їх надзвичайно впливовими як в академічних, так і в комерційних застосунках ІІ.
Ось більш детальний порівняльний аналіз моделей T5, BERT та GPT за різними вимірами:
1. Токенізація та словник
- BERT: Використовує токенізацію WordPiece зі словником розміром близько 30 000 токенів.
- GPT: Використовує кодування Байтової пари (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 та його сучасники не лише більші за масштабом, але також більш ефективні та здатні завдяки вдосконаленням архітектури та методів навчання. Техніки, такі як немайже навчання, де моделі виконують завдання з мінімальними прикладами, та методи для більш ефективного переносу навчання, знаходяться на передньому краї сучасних досліджень.
Моделі мови, засновані на трансформерах, як ці, вчаться з даних, які можуть містити упередження. Дослідники та практики активно працюють над виявленням, розумінням та пом’якшенням цих упереджень. Техніки варіюються від кураторських навчальних наборів даних до післянавчальних коригувань, спрямованих на справедливість та нейтральність.













