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.
Podekscytowany, aby zaprezentować nowe repo: nanochat!
(to jedno z najbardziej szalonych, jakie napisałem).
W przeciwieństwie do mojego wcześniejszego podobnego repo nanoGPT, które dotyczyło tylko wstępnego szkolenia, nanochat to minimalny, od podstaw, pełnostackowy pipeline do treningu/wnioskowania prostego klona ChatGPT w jednym, minimalnym kodzie bez zależności. Uruchamiasz chmurę GPU, uruchamiasz jeden skrypt i już po 4 godzinach możesz rozmawiać ze swoim własnym LLM w interfejsie webowym przypominającym ChatGPT.
Zawiera ~8,000 linii moim zdaniem dość czystego kodu, aby:
- Wytrenować tokenizer przy użyciu nowej implementacji w Rust
- Wstępnie wytrenować model Transformer LLM na FineWeb, ocenić wynik CORE w różnych metrykach
- Średnio trenować na rozmowach użytkownik-asystent z SmolTalk, pytania wielokrotnego wyboru, użycie narzędzi.
- SFT, ocenić model czatu na wiedzy ogólnej w pytaniach wielokrotnego wyboru (ARC-E/C, MMLU), matematyce (GSM8K), kodzie (HumanEval)
- RL model opcjonalnie na GSM8K z "GRPO"
- Efektywne wnioskowanie modelu w silniku z pamięcią KV, prostym prefill/decode, użyciem narzędzi (interpreter Pythona w lekkim piaskownicy), rozmawiać z nim przez CLI lub interfejs webowy przypominający ChatGPT.
- Napisać jeden raport w markdown, podsumowując i gamifikując całość.
Nawet za około ~$100 kosztu (~4 godziny na węźle 8XH100), możesz wytrenować małego klona ChatGPT, z którym możesz w pewnym sensie rozmawiać, a który potrafi pisać opowiadania/wiersze, odpowiadać na proste pytania. Około ~12 godzin przewyższa metrykę CORE GPT-2. W miarę dalszego skalowania do ~$1000 (~41.6 godzin treningu), szybko staje się znacznie bardziej spójny i potrafi rozwiązywać proste problemy matematyczne/kodowe i zdawać testy wielokrotnego wyboru. Na przykład model o głębokości 30 wytrenowany przez 24 godziny (to mniej więcej równoważne FLOPs GPT-3 Small 125M i 1/1000 GPT-3) osiąga wyniki w 40s na MMLU i 70s na ARC-Easy, 20s na GSM8K, itd.
Moim celem jest zintegrowanie pełnego "silnego bazowego" stosu w jedną spójną, minimalną, czytelną, hackowalną, maksymalnie forkowalną repo. nanochat będzie projektem zwieńczającym LLM101n (które wciąż jest w fazie rozwoju). Myślę, że ma również potencjał, aby stać się narzędziem badawczym lub benchmarkiem, podobnie jak nanoGPT przed nim. Nie jest to w żadnym wypadku skończone, dostrojone ani zoptymalizowane (właściwie myślę, że prawdopodobnie jest sporo niskowiszących owoców), ale myślę, że jest w miejscu, w którym ogólny szkielet jest wystarczająco dobry, aby mógł trafić na GitHub, gdzie wszystkie jego części mogą być ulepszane.
Link do repo i szczegółowy przewodnik po speedrunie nanochat znajduje się w odpowiedzi.

Repozytorium GitHub:
O wiele bardziej szczegółowy i techniczny przewodnik:
Przykładowa rozmowa z nanochatem za $100, trwającym 4 godziny w WebUI. To... zabawne :) Większe modele (np. 12-godzinny głębokość 26 lub 24-godzinny głębokość 30) szybko stają się bardziej spójne.

A oto przykład niektórych metryk podsumowujących wygenerowanych przez $100 speedrun w karcie raportu na początek. Obecna baza kodu ma nieco ponad 8000 linii, ale starałem się, aby były one czyste i dobrze skomentowane.
Teraz nadchodzi zabawna część - dostrajanie i wspinaczka.

2,4M
Najlepsze
Ranking
Ulubione