Transformer[1][2] (lub transformator[3][4][5][6]) – architektura uczenia głębokiego, bazująca na sieciach neuronowych[7], opracowana przez Google i oparta na zrównoleglonym mechanizmie uwagi, zaproponowana w 2017 w artykule zatytułowanym Attention Is All You Need („Uwaga to wszystko, czego potrzebujesz”)[8]. Zastosowany w transformerach mechanizm uwagi (ang. attention) wywodzi się z algorytmu zaproponowanego przez Bahdanau i innych w 2014 do tłumaczenia maszynowego oraz mechanizmu Fast Weight Controller przedstawionego w 1992[9][10].
Przewagą transformerów nad rekurencyjnymi sieciami neuronowymi, takimi jak długa pamięć krótkotrwała, jest to, że nie mają jednostek rekurencyjnych, a zatem wymagają krótszego uczenia[11]. Jedna z odmian transformerów została zastosowana do uczenia dużych modeli językowych.
Architektura ta początkowo stworzona jako mechanizm ulepszenia architektur tłumaczenia maszynowego[10][12], a obecnie ta architektura jest wykorzystywana w przetwarzaniu języka naturalnego i rozpoznawaniu obrazów jak i w przetwarzaniu dźwięku i przetwarzaniu multimodalnym (łączącym różne obszary, np. rozpoznawanie języka i obrazów). Doprowadziła ona również do rozwoju wstępnie wytrenowanych systemów, takich jak GPT[13] i BERT[14].
Architektura
edytujTransformer w swojej podstawowej formie składa się zasadniczo z połączonych szeregowo koderów i dekoderów[8][15][16]. Sekwencja wejściowa jest przekształcana w reprezentację wektorową za pomocą tzw. warstwy osadzającej (embedding layer). Wagi tej warstwy są dostosowywane w trakcie treningu. W przypadku transformerów dodatkowo stosuje się kodowanie pozycji (position encoding), dzięki któremu można uwzględnić kolejność słów[15].
Sekwencja wejściowa (np. zdanie) jest przekazywana w formie reprezentacji wektorowej do serii koderów i przekształcana w wewnętrzną reprezentację, która w uproszczeniu oddaje znaczenie tego, co zostało podane na wejściu. Następnie ta wewnętrzna reprezentacja trafia do dekoderów, które na jej podstawie tworzą sekwencję wyjściową (np. tłumaczenie na inny język)[16].
Dane wejściowe są przetwarzane w trybie wsadowym (w grupach, tzw. batchach), a maksymalna długość sekwencji, którą można wprowadzić, zależy od rozmiaru ścieżki koder-dekoder[15]. W zależności od wielkości sieci można przetwarzać na przykład pojedyncze zdania lub całe akapity. W przypadku sekwencji wejściowych krótszych niż pojemność ścieżki koder-dekoder stosuje się wypełnianie (ang. padding), aby zapełnić całą sekwencję wejściową[15]. Koder składa się z modułu samouwagi (self-attention) oraz modułu jednokierunkowego (feedforward), natomiast dekoder składa się z modułu samouwagi, modułu uwagi kodera-dekodera i modułu jednokierunkowego[16].
Transformery rozwiązują problem zrównoleglenia, przez wykorzystanie koderów i dekoderów wraz z modułami uwagi. Moduły uwagi przyspieszają proces tłumaczenia kolejnych sekwencji. Wszystkie kodery mają identyczną architekturę, a dekodery są do siebie bardzo podobne. Każdy koder składa się z dwóch warstw: modułu samouwagi i modułu jednokierunkowego. Sekwencja wejściowa trafia najpierw do warstwy samouwagi. Dekoder posiada obie te warstwy, ale pomiędzy nimi znajduje się warstwa uwagi pomagająca dekoderowi skupić się na najistotniejszych elementach wejścia[17]. Ponadto architektura zawiera połączenia rezydualne i warstwy normalizujące[18].
Koder
edytujZasadę działania kodera można przedstawić za pomocą funkcji z , gdzie:
Jak widać powyżej, funkcje softmax i ReLU są używane do obliczeń[19].
Dekoder
edytujPodczas inferencji, dekoder może być użyty do autoregresywnego generowania sekwencji. Dekoder jako wejście dostaje wartość startową sekwencji po czym przekazuje kolejny najbardziej prawdopodobny token, który jest przekazany do kolejnego dekodera[20].
Każdy dekoder składa się z trzech części[20]:
- Warstwa samouwagi z maską (Masked Multi-Head Attention)
- Wartswa samouwagi z koderem (Multi-Head Attention with encoder)
- Warstwa sieci jednokierunkowej
Adaptacje architektury
edytujDuże modele językowe nie używane do pierwotnego zastosowania jakim jest tłumaczenie tekstu, które nie muszą przewidywać całych zdań korzystają tylko z kodera lub dekodera z oryginalnej architektury transformera. Wczesne modele GPT korzystają tylko z modeli bazujących na dekoderach wytrenowane aby przewidywać kolejny token w sekwencji[21], a model BERT od Google wykorzystuje tylko warstwę koderów wytrenowaną aby przewidywać losowy zamaskowany token w sekwencji[22].
Dalsze usprawnienia
edytujDostępne implementacje
edytujModel transformera został zaimplementowany w standardowych bibliotekach do głębokiego uczenia jak TensorFlow i PyTorch. Hugging Face udostępnia bibliotekę Transformers z architekturami transformerów i modelami wstępnie wytrenowanymi[13].
Uwaga wielozapytaniowa
edytujUwaga wielozapytaniowa (ang. Multi-Query Attention) zmienia standardową uwagę wieloczłonową[23], to znaczy:
jest zastąpiona przez tylko jedna macierz wag
Podejście to ma neutralny wpływ na jakość modelu i szybkość treningu ale przyspiesza szybkość inferencji.
Ukryta uwaga wieloczłonowa (ang. Multihead Latent Attention) jest dodatkowym rozszerzeniem architektury uwagi wieloczłonowej, w której każdy wektor wejściowy jest dzielony na dwie niskowymiarowe części, jedna dla zapytania (Q vector) i jedna dla klucza i wartości (KV vector). Ta modyfikacja zmniejsza wymaganą pamięć podręczną, ponieważ wektory są niskowymiarowe[24].
Multimodalność
edytujTransformery mogą być również użyte do modalności wejściowej i wyjściowej, zazwyczaj poprzez tokenizację modalności.
Transformer wizyjny jest adaptacją transformera do zastosowań wizji komputerowej poprzez rozbicie obrazów wejściowych na serię fragmentów, przekształcenie ich w wektory i traktowanie ich jak tokenów w standardowym transformerze[25].
Do generowania obrazów, późniejsze wersje DALL-E są oparte na dekoderach transformera generujących tekst, który potem jest konwertowany przez autoenkoder wariacyjny do obrazu[26].
Przypisy
edytuj- ↑ Wacław Iszkowski, Ryszard Tadeusiewicz, Na marginesie dyskusji o sztucznej inteligencji, „Nauka”, 2023, s. 49–70, DOI: 10.24425/nauka.2023.148227, ISSN 1231-8515 [dostęp 2024-05-29] (pol.).
- ↑ Leandro von Werra, Lewis Tunstall, Thomas Wolf, Przetwarzanie języka naturalnego z wykorzystaniem transformerów: budowanie aplikacji językowych za pomocą bibliotek Hugging Face, Grzegorz Werner (tłum.), Gliwice: Helion, 2024, ISBN 978-83-289-0711-9 [dostęp 2025-04-16] (pol.).
- ↑ Aurélien Géron, Uczenie maszynowe z użyciem Scikit-Learn i TensorFlow, Krzysztof Sawka (tłum.), Wydanie II, aktualizacja do modułu TensorFlow 2, Gliwice: Helion, 2020, s. 539, ISBN 978-83-283-6002-0 [dostęp 2024-06-24].
- ↑ Sztuczna inteligencja albo nas zbawi, albo zabije. Mam tyle samo nadziei, co obaw [online], CHIP - Technologie mamy we krwi!, 18 marca 2023 [dostęp 2024-05-29] (pol.).
- ↑ Bożena Jaskowska, Książki pisane przez sztuczną inteligencję: Teraźniejszość oraz refleksje i pytania o przyszłość, „Perspektywy Kultury”, 42 (3), 2023, s. 39–64, DOI: 10.35765/pk.2023.4203.06, ISSN 2719-8014 [dostęp 2024-05-29].
- ↑ Feliks Kurp, Sztuczna inteligencja od podstaw, Gliwice: Helion, 2023, s. 175, ISBN 978-83-8322-123-6 [dostęp 2024-11-22].
- ↑ Czym jest Transformer i jak działa ta sieć neuronowa? – techtronika.pl [online], 22 maja 2025 [dostęp 2025-12-10].
- ↑ a b Ashish Vaswani i inni, Attention is All you Need, „Advances in Neural Information Processing Systems”, 30, Curran Associates, Inc., 2017 [dostęp 2024-05-21] (ang.).
- ↑ Jürgen Schmidhuber, Learning to Control Fast-Weight Memories: An Alternative to Dynamic Recurrent Networks, „Neural Computation”, 4 (1), 1992, s. 131–139, DOI: 10.1162/neco.1992.4.1.131, ISSN 0899-7667 [dostęp 2024-05-21] (ang.).
- ↑ a b Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio, Neural Machine Translation by Jointly Learning to Align and Translate, „arXiv”, 2014, DOI: 10.48550/ARXIV.1409.0473, arXiv:1409.0473.
- ↑ Sepp Hochreiter, Jürgen Schmidhuber, Long Short-Term Memory, „Neural Computation”, 9 (8), 1997, s. 1735–1780, DOI: 10.1162/neco.1997.9.8.1735, ISSN 0899-7667 [dostęp 2024-05-21] (ang.).
- ↑ Minh-Thang Luong, Hieu Pham, Christopher D. Manning, Effective Approaches to Attention-based Neural Machine Translation, „arXiv”, 2015, DOI: 10.48550/arXiv.1508.04025 [dostęp 2025-04-08].
- ↑ a b Thomas Wolf i inni, Transformers: State-of-the-Art Natural Language Processing, Association for Computational Linguistics, 2020, s. 38–45, DOI: 10.18653/v1/2020.emnlp-demos.6 [dostęp 2024-05-21] (ang.).
- ↑ Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processin [online], research.google [dostęp 2024-05-21] (ang.).
- ↑ a b c d The Annotated Transformer [online], nlp.seas.harvard.edu [dostęp 2025-04-08].
- ↑ a b c Jay Alammar, The Illustrated Transformer [online], jalammar.github.io [dostęp 2025-04-08].
- ↑ Ketan Doshi, Transformers Explained Visually (Part 1): Overview of Functionality [online], Towards Data Science, 13 grudnia 2020 [dostęp 2025-04-08] (ang.).
- ↑ Ruibin Xiong i inni, On Layer Normalization in the Transformer Architecture, „Proceedings of the 37th International Conference on Machine Learning”, PMLR, 21 listopada 2020, s. 10524–10533 [dostęp 2025-04-08] (ang.).
- ↑ Philipp Dufter, Martin Schmitt, Hinrich Schütze, Position Information in Transformers: An Overview, „Computational Linguistics”, 48 (3), 2022, s. 733–763, DOI: 10.1162/coli_a_00445, ISSN 0891-2017 [dostęp 2025-04-09].
- ↑ a b Czym jest i jak działa transformer (sieć neuronowa)? - Mirosław Mamczur [online], miroslawmamczur.pl, 20 grudnia 2020 [dostęp 2025-04-09].
- ↑ Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever, Improving Language Understanding by Generative Pre-Training [online], OpenAI [zarchiwizowane z adresu 2021-01-26].
- ↑ Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, „arXiv”, 2019, DOI: 10.48550/arXiv.1810.04805, arXiv:1810.04805v2 [dostęp 2025-04-09].
- ↑ Aakanksha Chowdhery i inni, PaLM: Scaling Language Modeling with Pathways, „arXiv”, 2022, DOI: 10.48550/arXiv.2204.02311, arXiv:2204.02311 [dostęp 2025-04-17].
- ↑ DeepSeek-AI i inni, DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model, „arXiv”, 2024, DOI: 10.48550/arXiv.2405.04434, arXiv:2405.04434 [dostęp 2025-04-17].
- ↑ Alexey Dosovitskiy i inni, An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale, „arXiv”, 2021, DOI: 10.48550/arXiv.2010.11929, arXiv:2010.11929 [dostęp 2025-05-12].
- ↑ Aditya Ramesh i inni, Zero-Shot Text-to-Image Generation, „arXiv”, 2021, DOI: 10.48550/arXiv.2102.12092, arXiv:2102.12092 [dostęp 2025-05-12].