Back to archive
#ai#llm#glossary#aigen

Position-wise Feed-Forward Network

Position-wise Feed-Forward Network (FFN) przekształca wektor każdej pozycji sekwencji osobno, używając tych samych parametrów dla wszystkich pozycji w danym bloku. Sama FFN nie odczytuje sąsiednich pozycji. Jej wejście może już jednak zawierać informacje zebrane wcześniej przez Self-attention.

W oryginalnym Transformer stosowano dwie transformacje afiniczne z ReLU pomiędzy nimi:

FFN(x)=max(0,xW1+b1)W2+b2.\operatorname{FFN}(x)=\max(0,xW_1+b_1)W_2+b_2.

Tutaj xx to wektor jednej pozycji, W1W_1 i W2W_2 są macierzami wag, a b1b_1 i b2b_2 wektorami bias. ReLU zastępuje ujemne współrzędne zerami. Parametry współdzielono między pozycjami, ale nie między kolejnymi blokami. Attention Is All You Need, §3.3.

Ta sama funkcja, różne wejścia

W małym, wymyślonym modelu wektor może przechodzić przez wymiary 4 → 12 → 4. Dla sekwencji 20 tokenów wykonujemy tę samą funkcję 20 razy na różnych wejściach. Nie tworzymy 20 osobnych zestawów wag. Jeśli dwa wektory wejściowe są identyczne, ta sama deterministyczna FFN zwróci identyczne wyniki.

Przykład w Dive into Deep Learning, §11.7.2 pokazuje właśnie współdzielenie funkcji oraz zmianę ostatniego wymiaru tensora.

Wyjście FFN w bloku Transformer jest łączone z wejściem przez Residual connection. Dlatego wymiar końcowy wraca do wymiaru potrzebnego do dodawania. „Position-wise” określa sposób przetwarzania pozycji, nie obowiązek używania ReLU w każdej późniejszej odmianie modelu.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.