Tópicos populares
#
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.
Empolgado para lançar um novo repositório: nanochat!
(é um dos mais insanos que escrevi).
Ao contrário do meu repositório anterior, nanoGPT, que apenas cobria o pré-treinamento, o nanochat é um pipeline de treinamento/inferência completo, minimalista e do zero de um simples clone do ChatGPT em uma única base de código com dependências mínimas. Você inicia uma caixa de GPU na nuvem, executa um único script e, em apenas 4 horas, pode conversar com seu próprio LLM em uma interface web semelhante ao ChatGPT.
Ele pesa cerca de 8.000 linhas de código que considero bastante limpo para:
- Treinar o tokenizador usando uma nova implementação em Rust
- Pré-treinar um LLM Transformer no FineWeb, avaliar a pontuação CORE em várias métricas
- Treinamento intermediário em conversas usuário-assistente do SmolTalk, perguntas de múltipla escolha, uso de ferramentas.
- SFT, avaliar o modelo de chat em conhecimento geral de múltipla escolha (ARC-E/C, MMLU), matemática (GSM8K), código (HumanEval)
- RL no modelo opcionalmente no GSM8K com "GRPO"
- Inferência eficiente do modelo em um Engine com cache KV, pré-preenchimento/decode simples, uso de ferramentas (interpretador Python em um sandbox leve), converse com ele via CLI ou WebUI semelhante ao ChatGPT.
- Escrever um único relatório em markdown, resumindo e gamificando tudo isso.
Mesmo por apenas ~$100 de custo (~4 horas em um nó 8XH100), você pode treinar um pequeno clone do ChatGPT com o qual pode conversar, e que pode escrever histórias/poemas, responder a perguntas simples. Cerca de ~12 horas superam a métrica CORE do GPT-2. À medida que você escala para ~$1000 (~41,6 horas de treinamento), ele rapidamente se torna muito mais coerente e pode resolver problemas simples de matemática/código e fazer testes de múltipla escolha. Por exemplo, um modelo de profundidade 30 treinado por 24 horas (isso é aproximadamente igual ao FLOPs do GPT-3 Small 125M e 1/1000 do GPT-3) alcança 40s no MMLU e 70s no ARC-Fácil, 20s no GSM8K, etc.
Meu objetivo é reunir toda a pilha "strong baseline" em um repositório coeso, minimalista, legível, hackável e maximamente forkable. O nanochat será o projeto culminante do LLM101n (que ainda está em desenvolvimento). Acho que também tem potencial para crescer em um suporte de pesquisa ou um benchmark, semelhante ao nanoGPT antes dele. Não está de forma alguma finalizado, ajustado ou otimizado (na verdade, acho que há bastante potencial a ser explorado), mas acredito que está em um ponto onde o esqueleto geral é bom o suficiente para ser colocado no GitHub, onde todas as partes podem ser melhoradas.
O link para o repositório e um walkthrough detalhado do speedrun do nanochat estão na resposta.

Repositório do GitHub:
Um guia muito mais detalhado e técnico:
Exemplo de conversa com o nanochat de $100, 4 horas na WebUI. É... divertido :) Modelos maiores (por exemplo, um modelo de 12 horas de profundidade 26 ou um de 24 horas de profundidade 30) rapidamente se tornam mais coerentes.

E um exemplo de algumas das métricas resumidas produzidas pelo speedrun de $100 no relatório inicial. A base de código atual tem um pouco mais de 8000 linhas, mas tentei mantê-las limpas e bem comentadas.
Agora vem a parte divertida - de afinar e escalar colinas.

1,57M
Top
Classificação
Favoritos