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

edytuj
 
Architektura transformera z jedną warstwą kodera i dekodera oraz oryginalnym umiejscowieniem warstwy normalizacyjnej.

Transformer 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].

 
transformer jest złożony z warstw kodera i dekodera nałożonych na siebie

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

edytuj
 
Jeden blok kodera

Zasadę 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

edytuj
 
Jeden blok dekodera

Podczas 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]:

Adaptacje architektury

edytuj

Duż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

edytuj

Dostępne implementacje

edytuj

Model 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

edytuj
 
Porównanie różnych mechanizmów uwagi wraz z ilością wymaganej pamięci podręcznej dla wartości KV

Uwaga 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.

 
Architektura DeepSeek V2 z wyróżnioną ukrytą uwagą wieloczłonową wraz z wariantem mieszanki ekspertów

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ść

edytuj

Transformery 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
  1. Wacław Iszkowski, Ryszard Tadeusiewicz, Na marginesie dyskusji o sztucznej inteligencji, „Nauka”, 2023, s. 49–70, DOI10.24425/nauka.2023.148227, ISSN 1231-8515 [dostęp 2024-05-29] (pol.).
  2. 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.).
  3. 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].
  4. 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.).
  5. 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, DOI10.35765/pk.2023.4203.06, ISSN 2719-8014 [dostęp 2024-05-29].
  6. Feliks Kurp, Sztuczna inteligencja od podstaw, Gliwice: Helion, 2023, s. 175, ISBN 978-83-8322-123-6 [dostęp 2024-11-22].
  7. Czym jest Transformer i jak działa ta sieć neuronowa? – techtronika.pl [online], 22 maja 2025 [dostęp 2025-12-10].
  8. 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.).
  9. Jürgen Schmidhuber, Learning to Control Fast-Weight Memories: An Alternative to Dynamic Recurrent Networks, „Neural Computation”, 4 (1), 1992, s. 131–139, DOI10.1162/neco.1992.4.1.131, ISSN 0899-7667 [dostęp 2024-05-21] (ang.).
  10. a b Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio, Neural Machine Translation by Jointly Learning to Align and Translate, „arXiv”, 2014, DOI10.48550/ARXIV.1409.0473, arXiv:1409.0473.
  11. Sepp Hochreiter, Jürgen Schmidhuber, Long Short-Term Memory, „Neural Computation”, 9 (8), 1997, s. 1735–1780, DOI10.1162/neco.1997.9.8.1735, ISSN 0899-7667 [dostęp 2024-05-21] (ang.).
  12. Minh-Thang Luong, Hieu Pham, Christopher D. Manning, Effective Approaches to Attention-based Neural Machine Translation, „arXiv”, 2015, DOI10.48550/arXiv.1508.04025 [dostęp 2025-04-08].
  13. a b Thomas Wolf i inni, Transformers: State-of-the-Art Natural Language Processing, Association for Computational Linguistics, 2020, s. 38–45, DOI10.18653/v1/2020.emnlp-demos.6 [dostęp 2024-05-21] (ang.).
  14. Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processin [online], research.google [dostęp 2024-05-21] (ang.).
  15. a b c d The Annotated Transformer [online], nlp.seas.harvard.edu [dostęp 2025-04-08].
  16. a b c Jay Alammar, The Illustrated Transformer [online], jalammar.github.io [dostęp 2025-04-08].
  17. Ketan Doshi, Transformers Explained Visually (Part 1): Overview of Functionality [online], Towards Data Science, 13 grudnia 2020 [dostęp 2025-04-08] (ang.).
  18. 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.).
  19. Philipp Dufter, Martin Schmitt, Hinrich Schütze, Position Information in Transformers: An Overview, „Computational Linguistics”, 48 (3), 2022, s. 733–763, DOI10.1162/coli_a_00445, ISSN 0891-2017 [dostęp 2025-04-09].
  20. 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].
  21. Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever, Improving Language Understanding by Generative Pre-Training [online], OpenAI [zarchiwizowane z adresu 2021-01-26].
  22. Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, „arXiv”, 2019, DOI10.48550/arXiv.1810.04805, arXiv:1810.04805v2 [dostęp 2025-04-09].
  23. Aakanksha Chowdhery i inni, PaLM: Scaling Language Modeling with Pathways, „arXiv”, 2022, DOI10.48550/arXiv.2204.02311, arXiv:2204.02311 [dostęp 2025-04-17].
  24. DeepSeek-AI i inni, DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model, „arXiv”, 2024, DOI10.48550/arXiv.2405.04434, arXiv:2405.04434 [dostęp 2025-04-17].
  25. Alexey Dosovitskiy i inni, An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale, „arXiv”, 2021, DOI10.48550/arXiv.2010.11929, arXiv:2010.11929 [dostęp 2025-05-12].
  26. Aditya Ramesh i inni, Zero-Shot Text-to-Image Generation, „arXiv”, 2021, DOI10.48550/arXiv.2102.12092, arXiv:2102.12092 [dostęp 2025-05-12].

📚 Artikel Terkait di Wikipedia

Lista skrótów i skrótowców używanych w informatyce

Arithmetic Logic Unit AMD – Advanced Micro Devices AMP – Asynchronous MultiProcessing ANSI – American National Standards Institute AOSP – Android Open Source

Antagonistyczne uczenie maszynowe

2018-05-18] . BattistaB. Biggio BattistaB. i inni, Security Evaluation of Support Vector Machines in Adversarial Environments, „arXiv”, 2014, DOI: 10.48550/arXiv

Punkt izoelektryczny

inni. Isoelectric point optimization using peptide descriptors and support vector machines. „J Proteomics”. 75 (7), s. 2269-2274, 2012. DOI: 10.1016/j.jprot

Jakub Nalepa

Genetic and memetic algorithms for selection of training sets for support vector machines, a w 2021 stopień doktora habilitowanego (dziedzina: nauki

Term frequency

LearnDataSci [dostęp 2024-12-13]  (ang.). Scoring, term weighting, and the vector space model, [w:] C.D.C.D. Manning C.D.C.D., P.P. Raghavan P.P., H.H. Schütze H

Baybayin

Optical character recognition system for Baybayin scripts using support vector machine. „PeerJ Computer Science”, s. 1–24, 2021. ISSN 2376-5992.  Rodney

Common Lisp

tablice mogą być używane na przykład do implementacji macierzy. Wektor (vector) to jednowymiarowa tablica. W tablicy można przechowywać wszystkie typy

Algorytm Cooleya-Tukeya

self-sorting in-place fast Fourier transform algorithm suitable for vector and parallel processing. „Numerische Mathematik”. 68 (4), s. 507–547, 1994. DOI: 10