GRU
Jak działa
GRU posiada dwie bramki: (1) bramkę reset (r), która kontroluje ile poprzedniego stanu "zapamiętujemy" przy obliczaniu kandydata na nowy stan; (2) bramkę update (z), która decyduje o proporcji między starym stanem a nowym kandydatem. Brak oddzielnej komórki pamięci (cell state) w odróżnieniu od LSTM.
Rozwiązany problem
LSTM rozwiązał problem zanikającego gradientu, ale kosztem złożoności (3 bramki, 2 stany). GRU upraszcza architekturę do 2 bramek i 1 stanu, zachowując zdolność modelowania długich zależności przy mniejszym koszcie obliczeniowym.
Implementacja
GRU przetwarza tokeny sekwencyjnie — nie można zrównoleglić obliczeń wzdłuż osi czasu jak w Transformerze. Trening na długich sekwencjach jest wolniejszy pomimo mniejszej liczby parametrów.
Pomimo bramek reset/update GRU nadal ma trudności z propagacją gradientu przez >1000 kroków. Dla takich sekwencji Transformer lub modele stanowe (Mamba, S4) są lepszym wyborem.
Ewolucja
Uproszczona alternatywa dla LSTM w zadaniach NMT.
Badania wykazały, że GRU i LSTM mają porównywalną skuteczność na większości zadań.
GRU pozostaje popularne w zadaniach on-device i real-time.
Paradygmat wykonania
Równoległość
Wymagania sprzętowe
Macierzowe operacje bramek GRU są akcelerowane przez CUBLAS na GPU. cuDNN dostarcza zoptymalizowaną implementację LSTM/GRU z fused kernelami.
Dla małych modeli GRU (embedded NLP, IoT) CPU jest wystarczające — sekwencyjna natura GRU nie penalizuje CPU tak jak Transformery.