DeepSeek: architektura stojąca za V3 i R1 oraz moment DeepSeek
Jak chińskie laboratorium na GPU objętych ograniczeniami eksportowymi wytrenowało otwarty model na poziomie czołówki i dlaczego w jednym tygodniu stycznia 2025 Nvidia straciła setki miliardów dolarów wartości rynkowej. Multi-head latent attention (MLA) i jej 57× mniejszy cache, drobnoziarniste MoE ze współdzielonymi modułami eksperckimi, równoważenie obciążenia bez pomocniczej funkcji straty, predykcja wielu tokenów (MTP), trening w FP8 i rozumowanie R1 wyuczone czystym RL.
- deep dive
- DeepSeek
- MoE
- architektura
- RL
27 stycznia 2025 Nvidia straciła w ciągu jednej sesji giełdowej około 17% wartości, ok. 590 mld USD, co było największym jednodniowym spadkiem wartości rynkowej jakiejkolwiek spółki w historii USA. Zapalnikiem był model z otwartymi wagami z chińskiego laboratorium: wydany tydzień wcześniej DeepSeek-R1 dorównał modelowi o1 od OpenAI w benchmarkach rozumowania. Według doniesień obliczenia potrzebne do wytrenowania jego modelu bazowego kosztowały około 5,6 mln USD. Poniżej: co DeepSeek naprawdę zbudował i co ta liczba oznaczała, a czego nie.
Kim jest DeepSeek
DeepSeek to laboratorium z Hangzhou wydzielone z High-Flyer, ilościowego funduszu hedgingowego, który założył Liang Wenfeng. Publikowało nietypowo szczegółowe raporty techniczne i otwarcie udostępniało swoje wagi. Jego wcześniejszy model DeepSeek-V2 (maj 2024) wywołał już wojnę cenową wśród chińskich API modeli, wprowadzając dwa pomysły architektoniczne, które V3 przeniósł na większą skalę.
Multi-head latent attention: zmniejsz cache
Standardowa multi-head attention trzyma w cache pełne wektory klucza i wartości dla każdej głowicy, każdego tokenu i każdej warstwy. DeepSeek-V3 ma 128 głowic po 128 wymiarów, więc standardowa atencja trzymałaby w cache 2 × 128 × 128 = 32 768 wartości na token na warstwę.
Multi-head latent attention (MLA) kompresuje klucze i wartości każdego tokenu do jednego wspólnego wektora latentnego o 512 wymiarach oraz małego, 64-wymiarowego klucza, który niesie informację o pozycji zakodowaną rotacyjnie (RoPE). Do cache trafiają tylko one; pełne klucze i wartości są odtwarzane z wektora latentnego przez wyuczone projekcje w górę:
standardowa MHA: 2 × 128 głowic × 128 wymiarów = 32 768 wartości na token na warstwę
MLA: 512 (wektor latentny) + 64 (klucz RoPE) = 576 wartości na token na warstwę (≈ 57× mniej)
Przy 61 warstwach V3 w BF16 daje to około 69 KB cache na token zamiast około 3,8 MB. Długie konteksty i duże partie, które przy standardowej atencji byłyby niemożliwe, mieszczą się bez trudu. Porównaj techniki z notatki o cache KV: grouped-query attention współdzieli głowice KV, kwantyzacja zmniejsza rozmiar każdej wartości, a MLA atakuje problem w samej architekturze.
DeepSeekMoE: wiele małych modułów eksperckich i moduły współdzielone
DeepSeek-V3 ma łącznie 671 mld parametrów, z czego na token aktywnych jest około 37 mld, czyli 5,5%. Jego konstrukcja MoE różni się od klasycznej na dwa sposoby (podstawy omawia notatka o modelach dense i MoE):
- Drobnoziarniste moduły eksperckie. Zamiast kilku dużych modułów każda warstwa MoE ma 256 małych modułów eksperckich z routingiem, a każdy token korzysta z 8 z nich. Więcej mniejszych modułów pozwala na bardziej precyzyjne kombinacje i bardziej wyspecjalizowane moduły.
- Współdzielony moduł ekspercki. Każdy token przechodzi też przez jeden zawsze aktywny, współdzielony moduł ekspercki, który gromadzi wspólną wiedzę, dzięki czemu moduły z routingiem nie muszą wszystkie uczyć się jej od nowa.
Równoważenie obciążenia bez pomocniczej funkcji straty. Routery MoE mają skłonność do kolapsu: kierują tokeny do kilku ulubionych modułów eksperckich. Dlatego większość modeli dodaje pomocniczą funkcję straty, która karze za nierównowagę, ale przy okazji działa wbrew głównemu celowi treningu. V3 zamiast tego dodaje do wyników routingu bias osobny dla każdego modułu i po każdym kroku lekko go koryguje: w dół dla przeciążonych modułów, w górę dla bezczynnych. Bias wpływa tylko na to, które moduły zostaną wybrane, a nie na to, z jakimi wagami łączy się ich wyjścia.
Predykcja wielu tokenów
V3 jest też trenowany z celem predykcji wielu tokenów (MTP): dodatkowy, sekwencyjny moduł przewiduje jeszcze jeden token po następnym, co zagęszcza sygnał treningowy. Przy inferencji moduł MTP może służyć jako model szkicujący w dekodowaniu spekulatywnym. Pomysł szybko się rozpowszechnił. Modele Qwen na mojej maszynie do inferencji mają w standardzie głowice MTP, a dekodowanie spekulatywne w moim forku działa na nich (matematyka jest w notatce o dekodowaniu).
Trening w FP8 i liczba 5,6 mln USD
V3 wytrenowano na 14,8 bln tokenów, w większości w mieszanej precyzji FP8, z drobnoziarnistym skalowaniem, które utrzymuje dokładność wartości 8-bitowych. Trening odbywał się na 2048 kartach Nvidia H800 z użyciem własnej równoległości potokowej (DualPipe), która nakłada obliczenia na komunikację all-to-all wymaganą przez MoE. H800 to zgodny z ograniczeniami eksportowymi wariant H100 o obniżonej przepustowości połączeń między chipami. To właśnie w wyciskanie maksimum z komunikacji DeepSeek włożył swoją pracę inżynierską.
Raport podaje, że końcowy przebieg treningowy zajął 2,788 mln godzin GPU H800, co przy założonej stawce 2 USD za godzinę GPU daje około 5,576 mln USD. Mówi też wprost, że ta kwota nie obejmuje kosztów wcześniejszych badań, ablacji i eksperymentów, ani, rzecz jasna, samego klastra. Nagłówek zestawiał koszt wynajmu GPU na jeden przebieg treningowy z całkowitymi budżetami konkurencji. Prawdziwym osiągnięciem nie było „AI za 5,6 mln USD”. Były nim wyniki na poziomie czołówki przy ułamku oczekiwanej mocy obliczeniowej, osiągnięte inżynierią, na sprzęcie objętym ograniczeniami.
R1: rozumowanie dzięki uczeniu ze wzmocnieniem
DeepSeek-R1 (styczeń 2025) wziął V3 i nauczył go rozumować w dwóch krokach, które raport otwarcie opisuje:
- R1-Zero: czyste uczenie ze wzmocnieniem na modelu bazowym z GRPO, bez wcześniejszych przykładów nadzorowanych. Nagrody opierały się na regułach: odpowiedź jest poprawna, a format właściwy. Długie łańcuchy myśli, samoweryfikacja i często cytowany „aha moment”, w którym model ponownie ocenia własne podejście, wyłoniły się z samej nagrody (GRPO wyjaśnia notatka o RL). Wyjścia R1-Zero były trudne do czytania i mieszały języki.
- R1: wieloetapowy proces. Mały zestaw starannie dobranych przykładów rozumowania na zimny start, potem RL nastawione na rozumowanie, następnie nadzorowany fine-tuning na próbkach odfiltrowanych z modelu po RL oraz na danych ogólnych, a na koniec ostatni etap RL pod kątem pomocności i bezpieczeństwa.
Model wydano na licencji MIT razem z wersjami destylowanymi, w których modele Qwen i Llama od 1,5B do 70B dostrojono na około 800 tys. próbek wygenerowanych przez R1. Co to pokazało, omawia notatka o destylacji.
Dlaczego to był „moment”
- Otwarte wagi w czołówce. Po raz pierwszy model konkurencyjny wobec najlepszego zamkniętego modelu rozumującego mógł każdy pobrać, zbadać i uruchomić.
- Stawka na efektywność. DeepSeek podważył założenie, że AI z czołówki wymaga największych klastrów, i zrobił to w warunkach kontroli eksportu pomyślanych właśnie po to, żeby to spowolnić.
- Przejrzystość metod. GRPO, nagrody oparte na regułach, MLA, MTP i przepis na destylację zostały udokumentowane, a otwarty ekosystem przejął je w ciągu kilku miesięcy.
- Presja cenowa. Ceny API modeli rozumujących gwałtownie spadły, a „wystarczająco dobre i tanie” stało się realną opcją.
Co z tego wynoszę
- Architektura wciąż ma znaczenie. MLA i drobnoziarniste MoE to nie strojenie, tylko decyzje projektowe, które zmieniają zapotrzebowanie na pamięć i koszt o rzędy wielkości.
- Czytaj drobny druk przy deklaracjach kosztów. Godziny GPU jednego przebiegu treningowego to nie budżet laboratorium.
- Weryfikowalne nagrody mają dużą moc. R1-Zero pokazał, że zachowania związane z rozumowaniem wyłaniają się z samych nagród za poprawność.
Źródła: DeepSeek-AI, DeepSeek-V2 (2024), DeepSeek-V3 Technical Report (2024) i DeepSeek-R1 (2025). Dai i in., DeepSeekMoE (2024). Dane rynkowe pochodzą z ówczesnych doniesień z 27 stycznia 2025. Rozmiary cache policzono na podstawie opublikowanej konfiguracji V3.