Popularne tematy
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Jesteś na rozmowie kwalifikacyjnej na stanowisko Naukowca Badawczego w OpenAI.
Interviewer pyta:
"Jak rozszerzyłbyś długość kontekstu LLM z 2K do 128K tokenów?"
Ty: "Dostosuję model do dłuższych dokumentów z kontekstem 128K"
Rozmowa zakończona.
Oto, co przegapiłeś:
Rozszerzenie okna kontekstowego to nie tylko większe macierze.
W tradycyjnym transformatorze, zwiększenie liczby tokenów o 8x zwiększa potrzeby pamięci o 64x z powodu kwadratowej złożoności uwagi. Zobacz obrazek poniżej!
Jak więc to zarządzamy?
kontynuuj...👇

1) Rzadkie uwagi
Ogranicza obliczenia uwagi do podzbioru tokenów poprzez:
- Używanie lokalnej uwagi (tokeny zwracają uwagę tylko na swoich sąsiadów).
- Pozwalając modelowi nauczyć się, na których tokenach się skupić.
Jednak wiąże się to z kompromisem między złożonością obliczeniową a wydajnością.

Podobna idea została użyta w ModernBERT.
→ Pełna globalna uwaga co 3 warstwę
→ Lokalna uwaga (128 tokenów) w przeciwnym razie
Wynik:
- 16x większa długość sekwencji
- Znacznie lepsza wydajność
- Najbardziej efektywny pamięciowo enkoder
Proste, a jednocześnie potężne. 👇
Oto intuicyjne wyjaśnienie zaczerpnięte z pracy:
Wyobraź sobie, że czytasz książkę. Czy do zrozumienia większości z niej musisz być w pełni świadomy całej fabuły (pełna globalna uwaga)?
Czy wystarczy świadomość bieżącego rozdziału (lokalna uwaga), o ile od czasu do czasu myślisz o jego znaczeniu dla głównej fabuły (globalna uwaga)?
W zdecydowanej większości przypadków to drugie.
2) Flash Attention
To jest szybka i oszczędna w pamięci metoda, która zachowuje dokładność tradycyjnych mechanizmów uwagi, tzn. wykorzystuje globalną uwagę, ale w sposób efektywny.
Cała idea polega na optymalizacji ruchu danych w pamięci GPU.
Zrozummy to!

Kilka szczegółów w tle:
- Wątek to najmniejsza jednostka wykonawcza.
- Kilka wątków tworzy blok.
Również:
- Wątki w bloku dzielą szybką (ale ograniczoną) pamięć zwaną SRAM.
- Wszystkie bloki dzielą globalną pamięć zwaną HBM (obfita, ale wolna).
Sprawdź to 👇

Uwaga przenosi duże macierze między SRAM a HBM:
Aby obliczyć QK:
- rozdziel macierze do wątków
- oblicz, a następnie
- wyślij produkt do HBM
Aby obliczyć softmax:
- rozdziel produkt do wątków
- oblicz, a następnie
- wyślij wynik do HBM
Powtórz dla wszystkich warstw.
Sprawdź to 👇

Flash attention obejmuje optymalizacje na poziomie sprzętowym, w których wykorzystuje SRAM do buforowania wyników pośrednich.
W ten sposób redukuje zbędne ruchy, oferując przyspieszenie do 7,6x w porównaniu do standardowych metod uwagi.
Sprawdź to 👇

98,94K
Najlepsze
Ranking
Ulubione