Argomenti di tendenza
#
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.
Entusiasta di rilasciare un nuovo repo: nanochat!
(è tra i più slegati che abbia scritto).
A differenza del mio precedente repo simile nanoGPT che copriva solo il pre-addestramento, nanochat è una pipeline di addestramento/inferenza full-stack minimale, da zero, di un semplice clone di ChatGPT in un'unica base di codice con dipendenze minime. Accendi una macchina GPU cloud, esegui un singolo script e in appena 4 ore puoi parlare con il tuo LLM in un'interfaccia web simile a ChatGPT.
Pesa ~8.000 righe di codice, a mio avviso piuttosto pulito, per:
- Addestrare il tokenizer utilizzando una nuova implementazione in Rust
- Pre-addestrare un LLM Transformer su FineWeb, valutare il punteggio CORE su una serie di metriche
- Addestrare a metà su conversazioni utente-assistente da SmolTalk, domande a scelta multipla, utilizzo di strumenti.
- SFT, valutare il modello di chat su conoscenze generali a scelta multipla (ARC-E/C, MMLU), matematica (GSM8K), codice (HumanEval)
- RL il modello opzionalmente su GSM8K con "GRPO"
- Inferenza efficiente del modello in un motore con cache KV, semplice prefill/decode, utilizzo di strumenti (interprete Python in un sandbox leggero), parlargli tramite CLI o WebUI simile a ChatGPT.
- Scrivere un singolo rapporto markdown, riassumendo e gamificando il tutto.
Anche per un costo di circa ~$100 (~4 ore su un nodo 8XH100), puoi addestrare un piccolo clone di ChatGPT con cui puoi in qualche modo parlare, e che può scrivere storie/poesie, rispondere a domande semplici. Circa ~12 ore superano il punteggio CORE di GPT-2. Man mano che aumenti verso ~$1000 (~41,6 ore di addestramento), diventa rapidamente molto più coerente e può risolvere semplici problemi di matematica/codice e sostenere test a scelta multipla. Ad esempio, un modello di profondità 30 addestrato per 24 ore (questo è circa equivalente ai FLOPs di GPT-3 Small 125M e 1/1000 di GPT-3) ottiene punteggi nei 40 su MMLU e 70 su ARC-Easy, 20 su GSM8K, ecc.
Il mio obiettivo è ottenere l'intero stack "strong baseline" in un unico repo coeso, minimale, leggibile, hackabile e massimamente forkabile. nanochat sarà il progetto finale di LLM101n (che è ancora in fase di sviluppo). Penso che abbia anche il potenziale per crescere in un sistema di ricerca o un benchmark, simile a nanoGPT prima di esso. Non è affatto finito, sintonizzato o ottimizzato (in realtà penso che ci sia probabilmente un bel po' di frutta a basso costo), ma penso che sia a un punto in cui lo scheletro complessivo sia abbastanza ok da poter essere caricato su GitHub dove tutte le sue parti possono essere migliorate.
Il link al repo e un dettagliato walkthrough della speedrun di nanochat sono nella risposta.

Repo GitHub:
Un walkthrough molto più dettagliato e tecnico:
Esempio di conversazione con il nanochat da $100, 4 ore nell'interfaccia Web. È... divertente :) Modelli più grandi (ad es. un modello a 12 ore profondità 26 o un modello a 24 ore profondità 30) diventano rapidamente più coerenti.

E un esempio di alcune delle metriche riassuntive prodotte dal speedrun da $100 nel rapporto iniziale. L'attuale base di codice è un po' oltre 8000 righe, ma ho cercato di mantenerle pulite e ben commentate.
Ora arriva la parte divertente - quella della messa a punto e dell'hillclimbing.

2,4M
Principali
Ranking
Preferiti