GuppyLM : Un LLM de 9M paramètres construit à partir de zéro à des fins éducatives

Qu'est-ce que GuppyLM
GuppyLM est un tout petit modèle de langage (~9M paramètres) qui prétend être un poisson nommé Guppy. Il est construit à partir de zéro pour démontrer comment fonctionnent les modèles de langage sans nécessiter un doctorat ou un énorme cluster de GPU. Le projet comprend la génération de données, la création de tokenizer, l'architecture du modèle, la boucle d'entraînement et l'inférence—le tout en environ 130 lignes de code PyTorch.
Détails de l'architecture
- Paramètres : 8,7M
- Couches : 6
- Dimension cachée : 384
- Têtes : 6
- FFN : 768 (ReLU)
- Vocabulaire : 4 096 (BPE)
- Séquence max : 128 tokens
- Normalisation : LayerNorm
- Position : Embeddings appris
- Tête LM : Poids liés aux embeddings
Il s'agit d'un transformateur classique sans GQA, RoPE, SwiGLU ou sortie anticipée—aussi simple que possible.
Entraînement et données
Le modèle s'entraîne sur 60 000 conversations synthétiques couvrant 60 sujets en environ 5 minutes sur un GPU T4 Colab gratuit. Le jeu de données (arman-bd/guppylm-60k-generic sur HuggingFace) contient 57 000 échantillons d'entraînement et 3 000 de test au format : {"input": "...", "output": "...", "category": "..."}.
Les sujets incluent : salutations, sentiments, température, nourriture, lumière, eau, aquarium, bruit, nuit, solitude, bulles, verre, reflet, respiration, nage, couleurs, goût, plantes, filtre, algues, escargots, peur, excitation, ennui, curiosité, joie, fatigue, extérieur, chats, pluie, saisons, musique, visiteurs, enfants, sens de la vie, temps, mémoire, rêves, taille, futur, passé, nom, météo, sommeil, amis, blagues, peur, amour, âge, intelligence, santé, chant, télévision, et plus encore.
Personnalité et sortie
Guppy parle en phrases courtes et en minuscules sur l'eau, la température, la lumière, les vibrations et la nourriture. Il ne comprend pas les abstractions humaines comme l'argent, les téléphones ou la politique. Exemple de conversation :
Vous> salut guppy Guppy> salut. je viens de trouver un bon endroit près du rocher. la température est agréable. Vous> as-tu faim Guppy> oui. toujours oui. je vais nager vers le haut maintenant. je promets de tout manger. Vous> quel est le sens de la vie Guppy> la nourriture. la réponse est toujours la nourriture.
Démarrage rapide
Discuter avec Guppy (pas d'entraînement nécessaire) : Télécharge le modèle pré-entraîné depuis HuggingFace. Il suffit d'exécuter toutes les cellules du notebook.
Entraîner le vôtre : Réglez l'environnement d'exécution sur GPU T4, exécutez toutes les cellules—télécharge le jeu de données, entraîne le tokenizer, entraîne le modèle, le teste. Téléversez sur HuggingFace ou téléchargez localement.
Discuter localement :
pip install torch tokenizers python -m guppylm chat
Exemple d'interaction locale :
Vous> le chat te regarde Guppy> je me cache derrière la plante quand le poilu arrive. Vous> il pleut dehors Guppy> je pense que la pluie est la meilleure chose à l'extérieur.
Structure du projet
guppylm/ ├── config.py # Hyperparamètres (modèle + entraînement) ├── model.py # Transformateur classique ├── dataset.py # Chargement des données + batch ├── train.py # Boucle d'entraînement (LR cosinus, AMP) ├── generate_data.py # Générateur de données de conversation (60 sujets) ├── eval_cases.py # Cas de test réservés ├── prepare_data.py # Préparation des données + entraînement du tokenizer └── inference.py # Interface de chat
Ce projet est utile pour les développeurs qui souhaitent comprendre les fondamentaux de l'architecture des transformateurs sans avoir à gérer des modèles à milliards de paramètres. L'implémentation complète montre chaque étape, du texte brut aux poids entraînés jusqu'à la sortie générée.
📖 Lire la source complète : HN LLM Tools
👀 See Also

StartClaw : Un outil d'automatisation de navigateur sans interface, basé sur ZeroClaw avec intégration Claude.
StartClaw est un outil d'automatisation de navigateur construit sur la base Rust de ZeroClaw avec Composio v3 pour les intégrations, conçu pour fonctionner sans interface graphique dans le cloud sans nécessiter de matériel local. Il utilise exclusivement Claude pour la fiabilité et inclut une compaction de contexte intégrée qui réduit l'utilisation de jetons d'environ 5 fois.

Agent d'IA local atteint une latence STT et TTS inférieure à la seconde avec des serveurs open source
Un développeur a atteint une latence de ~0,2 s pour la reconnaissance vocale (STT) en utilisant Whisper large-v3-turbo avec une architecture hybride de threads gérés par GPU, et une latence de ~250 ms pour la synthèse vocale (TTS) avec Coqui-TTS optimisé pour une synthèse à faible latence. Les deux implémentations sont entièrement auto-hébergées et open source.

soul.py ajoute une mémoire persistante aux LLM locaux avec une approche simple basée sur des fichiers.
soul.py est une bibliothèque Python qui ajoute une mémoire persistante à tout LLM en utilisant deux fichiers markdown pour l'identité et la journalisation des conversations, fonctionnant avec les modèles Ollama, OpenAI et Anthropic sans nécessiter de bases de données ou de serveurs.

La recherche hybride avec RRF améliore le système de mémoire de l'IA par rapport à la recherche vectorielle pure.
Un système de mémoire IA open-source utilisant PostgreSQL avec pgvector a constaté que la recherche vectorielle pure était insuffisante pour les correspondances exactes, il a donc ajouté la recherche en texte intégral et fusionné les résultats en utilisant la Fusion de Rangs Réciproque (RRF) avec k=60, plus un enrichissement des requêtes via un tokenizer.