Трансформер (модель машинного навчання)

Трансфо́рмер (англ. Transformer) — це модель глибинного навчання, яка переймає механізм уваги, роздільно зважуючи важливість кожної частини даних входу. Її використовують переважно в області обробки природної мови (ОПМ)[1] та в комп'ютернім баченні (КБ).[2]

Як і рекурентні нейронні мережі (РНМ), трансформери призначено для обробки послідовних даних входу, таких як природна мова, для таких задач як переклад та реферування тексту. Проте, на відміну від РНМ, трансформери оброблюють дані не обов'язково послідовно. Радше, механізм уваги забезпечує контекст для будь-якого положення в послідовності входу. Наприклад, якщо дані входу є реченням природної мови, то трансформерові не потрібно обробляти його початок, перш ніж взятися за обробку його кінця. Він, радше, визначає контекст, який надає значення кожному слову в цій послідовності. Ця властивість уможливлює набагато більше розпаралелювання, ніж РНМ, і відтак знижує тривалості тренування.[1]

З моменту свого дебюту 2017 року трансформери все частіше стають обраною моделлю для задач ОПМ,[3] замінивши моделі РНМ, такі як довга короткочасна пам'ять (ДКЧП). Додаткове розпаралелювання тренування уможливлює тренування на більших наборах даних, ніж це було колись можливим. Це призвело до розробки попередньо натренованих систем, таких як BERT (англ. Bidirectional Encoder Representations from Transformers) та GPT (англ. Generative Pre-trained Transformer), які було треновано на великих мовних наборах даних, таких як корпуси Вікіпедії та Common Crawl, і які можливо тонко налаштовувати для конкретних мовних задач.[4][5]

Походження

До трансформерів більшість сучасних системи ОПМ покладалися на вентильні РНМ, такі як ДКЧП та вентильні рекурентні вузли (ВРВ), з доданими механізмами уваги (англ. attention mechanisms). Трансформери будують на цих технологіях уваги без застосування структури РНМ, підкреслюючи той факт, що механізми уваги самі по собі можуть відповідати продуктивності РНМ з увагою.

Послідовна обробка

Вентильні РНМ обробляють лексеми послідовно, підтримуючи вектор стану, що містить подання даних, побачене після кожної лексеми. Щоб обробити n-ту лексему, ця модель поєднує стан, що подає речення по лексему n  1, з інформацією про цю нову лексему, щоби створити новий стан, що подає речення по лексему n. Теоретично, інформація від однієї лексеми може поширюватися послідовністю як завгодно далеко, якщо в кожній точці стан продовжує кодувати контекстну інформацію про цю лексему. На практиці цей механізм має вади: проблема зникання градієнту залишає стан моделі в кінці довгого речення без точної, добутної інформації про попередні лексеми.

Увага

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

Яскравим прикладом цінності уваги є мовний переклад, у якому для визначення значення слова в реченні є важливим контекст. У системі перекладу з англійської українською перше слово україномовного виходу найімовірніше сильно залежить від перших декількох слів англомовного входу. Проте в класичній моделі ДКЧП, щоби виробити перше слово україномовного виходу, моделі дається лише вектор стану крайнього англомовного слова. Теоретично цей вектор може кодувати інформацію про все англомовне речення, даючи моделі все необхідне знання. На практиці ДКЧП часто зберігає цю інформацію погано. Для подолання цієї проблеми може бути додано механізм уваги: декодувальникові надають доступ до векторів стану кожного вхідного англомовного слова, а не лише крайнього, і він може навчатися ваг уваги, що диктують, як багато уваги приділяти кожному з векторів стану англомовного входу.

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

Архітектура

Подібно до раніших моделей, трансформер використовує кодувально-декодувальну архітектуру. Кодувальник складається з кодувальних шарів, що оброблюють вхід ітеративно, шар за шаром, тоді як декодувальник складається з декодувальних шарів, які роблять те саме з виходом кодувальника.

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

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

Як кодувальні, так і декодувальні шари мають нейронну мережу прямого поширення для додаткової обробки виходів, та містять за́лишкові з'єднання й кроки шарового унормовування (англ. layer normalization).[7]

Масштабована скалярнодобуткова увага

Будівельними блоками трансформера є вузли масштабованої скалярнодобуткової уваги (англ. scaled dot-product attention units). Коли трансформеровій моделі передають речення, ваги уваги між усіма лексемами обчислюються одночасно. Вузол уваги виробляє вкладення для кожної лексеми в контексті, які містять інформацію про саму лексему, разом зі зваженим поєднанням інших релевантних лексем, кожну з яких зважено за вагою уваги до неї.

Для кожного вузла уваги трансформерова модель навчається трьох вагових матриць: ваг запиту (англ. query weights) , ваг ключа (англ. key weights) , та ваг значення (англ. value weights) . Для кожної лексеми вкладення слова входу множиться на кожну з цих трьох матриць, даючи вектор запиту , вектор ключа , та вектор значення . Ваги уваги обчислюються з використанням векторів запиту та ключа: вага уваги з боку лексеми до лексеми є скалярним добутком на . Ваги уваги ділять на квадратний корінь розміру векторів ключа, , що стабілізує градієнти під час тренування, та пропускають через softmax, що унормовує ці ваги. Той факт, що та є різними матрицями, дає увазі можливість бути несиметричною: якщо лексема звертає увагу на лексему (тобто, є великим), то це не обов'язково означає, що лексема звертає увагу на лексему (тобто, може бути малим). Виходом вузла уваги для лексеми є зважена сума векторів значення всіх лексем, зважених на , увагу з боку лексеми до кожної з лексем.

Обчислення уваги (англ. attention) для всіх лексем може бути виражено через одне велике матричне обчислення з використанням функції softmax, що є корисним для тренування через обчислювальні оптимізації матричних операцій, які обчислюють матричні операції швидко. Матриці , та визначено як матриці, в яких -ті рядки є векторами , та відповідно.

Багатоголова увага

Один набір матриць називають головою уваги (англ. attention head), й кожен шар у трансформеровій моделі має декілька голів уваги. В той час як кожна з голів уваги звертає увагу на лексеми, що є релевантними до кожної з лексем, з декількома головами уваги ця модель може робити це для різних визначень «релевантності». Крім того, поле впливу, що подає релевантність, може поступово розширюватися в послідовних шарах. Багато трансформерових голів уваги кодують відношення релевантності, що є змістовними для людей. Наприклад, одні голови можуть звертати найбільше уваги на наступне слово, в той час як інші переважно звертають увагу дієслів на їхні безпосередні об'єкти.[8] Обчислення для кожної з голів уваги можуть виконуватися паралельно, що уможливлює швидку обробку. Виходи шару уваги зчіплюють, щоби передавати їх до шарів нейронних мереж прямого поширення.

Кодувальник

Кожен кодувальник (англ. encoder) складається з двох головних складових: механізму самоуваги (англ. self-attention mechanism), та нейронної мережі прямого поширення. Механізм самоуваги приймає кодування входу з попереднього кодувальника, та зважує їхню релевантність одне одному, щоби породити кодування виходу. Нейронна мережа прямого поширення здійснює подальшу обробку кожного кодування виходу окремо. Ці кодування виходу відтак передають наступному кодувальникові як його вхід, так само як і декодувальникам.

Перший кодувальник отримує як вхід не кодування, а інформацію про положення та вкладення послідовності входу. Інформація про положення є необхідною трансформерові, щоби використовувати порядок послідовності, оскільки жодна інша частина трансформера його не використовує.[1]

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

Кожен декодувальник (англ. decoder) складається з трьох головних складових: механізму самоуваги, механізму уваги над кодуваннями, та нейронної мережі прямого поширення. Декодувальник працює подібно до кодувальника, крім вставленого додаткового механізму уваги, що натомість дістає релевантну інформацію з кодувань, породжених кодувальниками.[1][7]

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

Альтернативи

Тренування архітектур на трансформеровій основі може бути витратним, особливо для довгих речень.[9] До альтернативних архітектур належить Реформер (англ. Reformer, що знижує обчислювальне навантаження з до ) та моделі на кшталт ETC/BigBird (які можуть знижувати його до ),[10] де є довжиною послідовності. Це здійснюється шляхом застосування локально-чутливого гешування та оборотних шарів (англ. reversible layers).[11][12]

Орієнтир для порівнювання трансформерових архітектур було запроваджено наприкінці 2020 року.[13]

Тренування

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

Застосування

Трансформер досяг великого успіху в обробці природної мови (ОПМ), наприклад, в задачах машинного перекладу та передбачування часових рядів.[15] Багато попередньо натренованих моделей, такі як GPT-2, GPT-3, BERT, XLNet та RoBERTa, демонструють здатність трансформерів виконувати широкий спектр таких пов'язаних з ОПМ задач, і мають потенціал знаходити застосування в реальному світі.[4][5][16] До них можуть належати:

2020 року було показано, що архітектуру Трансформер, а точніше GPT-2, може бути налаштовано для гри в шахи.[22] Трансформери було застосовано до обробки зображень з результатами, конкурентноздатними у порівнянні зі згортковими нейронними мережами.[23][24]

Втілення

Трансформерову модель було втілено в стандартних бібліотеках глибинного навчання, таких як TensorFlow та PyTorch.

Transformers є бібліотекою, що виробляє Hugging Face, яка пропонує архітектури на основі трансформерів та попередньо натреновані моделі.[3]

Див. також

Примітки

  1. Polosukhin, Illia; Kaiser, Lukasz; Gomez, Aidan N.; Jones, Llion; Uszkoreit, Jakob; Parmar, Niki; Shazeer, Noam; Vaswani, Ashish (2017-06-12). «Attention Is All You Need». arXiv:1706.03762 [cs.CL]. (англ.)
  2. He, Cheng. Transformer in CV. Transformer in CV. Towards Data Science. (англ.)
  3. Wolf, Thomas; Debut, Lysandre; Sanh, Victor; Chaumond, Julien; Delangue, Clement; Moi, Anthony; Cistac, Pierric; Rault, Tim; Louf, Remi; Funtowicz, Morgan; Davison, Joe; Shleifer, Sam; von Platen, Patrick; Ma, Clara; Jernite, Yacine; Plu, Julien; Xu, Canwen; Le Scao, Teven; Gugger, Sylvain; Drame, Mariama; Lhoest, Quentin; Rush, Alexander (2020). Transformers: State-of-the-Art Natural Language Processing. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. с. 38–45. doi:10.18653/v1/2020.emnlp-demos.6. Проігноровано невідомий параметр |s2cid= (довідка) (англ.)
  4. Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing. Google AI Blog. Процитовано 25 серпня 2019. (англ.)
  5. Better Language Models and Their Implications. OpenAI. 14 лютого 2019. Процитовано 25 серпня 2019. (англ.)
  6. Sequence Modeling with Neural Networks (Part 2): Attention Models. Indico. 18 квітня 2016. Процитовано 15 жовтня 2019. (англ.)
  7. Alammar, Jay. The Illustrated Transformer. jalammar.github.io. Процитовано 15 жовтня 2019. (англ.)
  8. Clark, Kevin; Khandelwal, Urvashi; Levy, Omer; Manning, Christopher D. (August 2019). What Does BERT Look at? An Analysis of BERT's Attention. Proceedings of the 2019 ACL Workshop BlackboxNLP: Analyzing and Interpreting Neural Networks for NLP (Florence, Italy: Association for Computational Linguistics): 276–286. doi:10.18653/v1/W19-4828. Проігноровано невідомий параметр |doi-access= (довідка) (англ.)
  9. Kitaev, Nikita; Kaiser, Łukasz; Levskaya, Anselm (2020). «Reformer: The Efficient Transformer». arXiv:2001.04451 [cs.LG]. (англ.)
  10. Constructing Transformers For Longer Sequences with Sparse Attention Methods. Google AI Blog (англ.). Процитовано 28 травня 2021. (англ.)
  11. Tasks with Long Sequences - Chatbot. Coursera. (англ.)
  12. Reformer: The Efficient Transformer. Google AI Blog (англ.). Процитовано 22 жовтня 2020. (англ.)
  13. Tay, Yi; Dehghani, Mostafa; Abnar, Samira; Shen, Yikang; Bahri, Dara; Pham, Philip; Rao, Jinfeng; Yang, Liu та ін. (2020-11-08). «Long Range Arena: A Benchmark for Efficient Transformers». arXiv:2011.04006 [cs.LG]. (англ.)
  14. Wang, Alex; Singh, Amanpreet; Michael, Julian; Hill, Felix; Levy, Omer; Bowman, Samuel (2018). GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding. Proceedings of the 2018 EMNLP Workshop BlackboxNLP: Analyzing and Interpreting Neural Networks for NLP (Stroudsburg, PA, USA: Association for Computational Linguistics): 353–355. arXiv:1804.07461. doi:10.18653/v1/w18-5446. Проігноровано невідомий параметр |s2cid= (довідка) (англ.)
  15. Allard, Maxime (1 липня 2019). What is a Transformer?. Medium (англ.). Процитовано 21 жовтня 2019. (англ.)
  16. Yang, Zhilin Dai, Zihang Yang, Yiming Carbonell, Jaime Salakhutdinov, Ruslan Le, Quoc V. (19 червня 2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. OCLC 1106350082. (англ.)
  17. Monsters, Data (26 вересня 2017). 10 Applications of Artificial Neural Networks in Natural Language Processing. Medium (англ.). Процитовано 21 жовтня 2019. (англ.)
  18. Rives, Alexander; Goyal, Siddharth; Meier, Joshua; Guo, Demi; Ott, Myle; Zitnick, C. Lawrence; Ma, Jerry; Fergus, Rob (2019). Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences. doi:10.1101/622803. Проігноровано невідомий параметр |biorxiv= (довідка) (англ.)
  19. Nambiar, Ananthan; Heflin, Maeve; Liu, Simon; Maslov, Sergei; Hopkins, Mark; Ritz, Anna (2020). Transforming the Language of Life: Transformer Neural Networks for Protein Prediction Tasks. doi:10.1145/3388440.3412467. Проігноровано невідомий параметр |doi-access= (довідка); Проігноровано невідомий параметр |s2cid= (довідка) (англ.)
  20. Rao, Roshan; Bhattacharya, Nicholas; Thomas, Neil; Duan, Yan; Chen, Xi; Canny, John; Abbeel, Pieter; Song, Yun S. (2019). Evaluating Protein Transfer Learning with TAPE. Проігноровано невідомий параметр |biorxiv= (довідка) (англ.)
  21. Bertasias; Wang; Torresani. «Is Space-Time Attention All You Need for Video Understanding?». arXiv:2102.05095. (англ.)
  22. Noever, David; Ciolino, Matt; Kalin, Josh (2020-08-21). «The Chess Transformer: Mastering Play using Generative Language Models». arXiv:2008.04057 [cs.AI]. (англ.)
  23. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. (англ.)
  24. Training data-efficient image transformers & distillation through attention. (англ.)

Література

— Обговорення дії трансформерового шару як еквіваленту гопфілдового уточнення, що наближує вхід до однієї з нерухомих точок (образів подання) неперервнозначної мережі Гопфілда.

Посилання


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.