Présentation
OpenArch est un dépôt GitHub qui regroupe des implémentations hand‑written en PyTorch de 72 architectures de grands modèles de langage (LLM) répertoriées dans la LLM Architecture Gallery de Sebastian Raschka. Chaque modèle possède son propre répertoire contenant un fichier model.py et un README.md décrivant les choix techniques. Les implémentations sont marquées ✅ lorsqu’elles supportent le passage avant (forward) et 🚧 lorsqu’elles sont en cours de développement.
Choix architecturaux détaillés
Le projet recense les variantes d’attention les plus courantes – MHA, GQA, MQA, MLA, fenêtres glissantes, hybrides linéaires/DeltaNet – ainsi que les schémas de normalisation (pre‑norm, post‑norm, QK‑Norm, sandwich norm, RMSNorm). Il expose également les encodages positionnels (RoPE, NoPE, RoPE partiel, YaRN) et les types de décodeur (dense, MoE sparse avec experts partagés ou non, hybride Mamba/attention). Enfin, il liste les astuces d’entraînement telles que la prédiction multi‑tokens, les experts latents ou l’attention à portes. Chaque fichier model.py rend explicite le choix retenu, ce qui facilite la comparaison directe entre deux architectures.
Structure du dépôt et lisibilité
Le répertoire racine organise les modèles sous text/ (GPT‑2, LLaMA‑3, Qwen‑3, Grok‑2.5, DeepSeek‑V3, etc.) et multimodal/ (par exemple pali‑gemma). Cette hiérarchie reflète la séparation fonctionnelle entre modèles purement textuels et ceux qui intègrent d’autres modalités. Le code privilégie la clarté : il évite les optimisations de vitesse, le sharding ou les compatibilités rétroactives que l’on trouve dans les bibliothèques de production comme transformers. L’objectif déclaré est l’apprentissage, pas le déploiement en production.
Contributions, licences et limites
Le projet invite les contributeurs à ajouter les modèles manquants, à enrichir les README.md ou à créer des tests de passage avant qui comparent les sorties aux poids officiels. Les contributeurs doivent ouvrir une issue avant d’entamer une tâche importante afin d’éviter les doublons. Le dépôt est publié sous la licence Apache 2.0, tandis que chaque implémentation suit la licence du modèle d’origine lorsqu’elle est spécifiée. La documentation précise que les implémentations ne sont pas certifiées par les auteurs originaux et qu’elles ne sont pas destinées à un usage en production. Cette transparence sur la portée du projet constitue une contrainte : les performances réelles restent inconnues, et les utilisateurs doivent se tourner vers des bibliothèques officielles pour des charges de travail critiques.