Rubriques tendance
#
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.
Excité de publier un nouveau dépôt : nanochat !
(c'est parmi les plus débridés que j'ai écrits).
Contrairement à mon précédent dépôt similaire nanoGPT qui ne couvrait que le pré-entraînement, nanochat est un pipeline d'entraînement/inférence complet, minimal et de bout en bout d'un simple clone de ChatGPT dans une base de code unique et minimale en dépendances. Vous démarrez une boîte GPU dans le cloud, exécutez un seul script et en aussi peu que 4 heures plus tard, vous pouvez parler à votre propre LLM dans une interface web similaire à ChatGPT.
Il pèse environ 8 000 lignes de code que je trouve plutôt propre pour :
- Entraîner le tokenizer en utilisant une nouvelle implémentation en Rust
- Préformer un LLM Transformer sur FineWeb, évaluer le score CORE sur un certain nombre de métriques
- Entraîner à mi-parcours sur des conversations utilisateur-assistant de SmolTalk, des questions à choix multiples, l'utilisation d'outils.
- SFT, évaluer le modèle de chat sur des questions à choix multiples de culture générale (ARC-E/C, MMLU), mathématiques (GSM8K), code (HumanEval)
- RL le modèle en option sur GSM8K avec "GRPO"
- Inférence efficace du modèle dans un moteur avec cache KV, pré-remplissage/décodage simple, utilisation d'outils (interpréteur Python dans un bac à sable léger), communiquer avec lui via CLI ou WebUI similaire à ChatGPT.
- Rédiger un seul rapport markdown, résumant et ludifiant l'ensemble.
Même pour aussi peu que ~100 $ de coût (~4 heures sur un nœud 8XH100), vous pouvez entraîner un petit clone de ChatGPT avec lequel vous pouvez un peu discuter, et qui peut écrire des histoires/poèmes, répondre à des questions simples. Environ ~12 heures dépassent la métrique CORE de GPT-2. En augmentant davantage jusqu'à ~1000 $ (~41,6 heures d'entraînement), il devient rapidement beaucoup plus cohérent et peut résoudre des problèmes simples de mathématiques/code et passer des tests à choix multiples. Par exemple, un modèle de profondeur 30 entraîné pendant 24 heures (ce qui équivaut à peu près aux FLOPs de GPT-3 Small 125M et 1/1000 de GPT-3) atteint des scores dans les 40 sur MMLU et 70 sur ARC-Easy, 20 sur GSM8K, etc.
Mon objectif est d'obtenir l'ensemble du "strong baseline" dans un dépôt cohérent, minimal, lisible, hackable et maximement forkable. nanochat sera le projet phare de LLM101n (qui est encore en développement). Je pense qu'il a également le potentiel de devenir un cadre de recherche ou un benchmark, similaire à nanoGPT avant lui. Ce n'est en aucun cas fini, réglé ou optimisé (en fait, je pense qu'il y a probablement pas mal de fruits à portée de main), mais je pense qu'il est à un endroit où le squelette global est suffisamment correct pour qu'il puisse être mis sur GitHub où toutes ses parties peuvent être améliorées.
Le lien vers le dépôt et un guide détaillé du speedrun de nanochat se trouvent dans la réponse.

Dépôt GitHub :
Une explication beaucoup plus détaillée et technique :
Exemple de conversation avec le nanochat de 100 $, 4 heures dans l'interface Web. C'est... divertissant :) Les modèles plus grands (par exemple, une profondeur de 12 heures 26 ou une profondeur de 24 heures 30) deviennent rapidement plus cohérents.

Et un exemple de certains des indicateurs de synthèse produits par le speedrun de 100 $ dans le bulletin de notes pour commencer. La base de code actuelle compte un peu plus de 8000 lignes, mais j'ai essayé de les garder propres et bien commentées.
Maintenant vient la partie amusante - le réglage et l'escalade.

2,4M
Meilleurs
Classement
Favoris