Présentation

TurboGPT est un projet open‑source qui propose d’entraîner un modèle de type GPT d’environ 22 kB de paramètres en moins d’une minute, exclusivement sur GPU NVIDIA via CUDA. Le dépôt indique que le processus complet, depuis la compilation jusqu’à la sauvegarde du checkpoint, peut être réalisé en moins de 13 secondes sur une carte compatible Compute Capability 8.6.

Architecture et mise en œuvre

Le code est écrit en C++ et s’appuie sur les primitives CUDA 13.4. La compilation se lance avec le script PowerShell

.\build.ps1 -CudaArch 86
où le paramètre CudaArch correspond à la version de capacité de calcul du GPU (par ex. 86 pour les cartes RTX 30 xx). Le binaire produit turbogpt.exe accepte deux arguments majeurs : --data hn1g.txt pour spécifier le jeu de données texte et --log pour activer la journalisation dans un répertoire runs/. Un exemple d’exécution est fourni :
.\build\turbogpt.exe --data hn1g.txt --log to runs/ctx4
. Le répertoire de sortie contient le checkpoint ctx4.pt, qui regroupe l’état du modèle, de l’optimiseur, du scheduler et du trainer, ainsi qu’un fichier report.json compatible TensorBoard.

Performances et limites

Le README rapporte un résultat de 2.52435 bits‑par‑caractère (BPB) après 1,5 G de tokens d’entraînement sur le corpus hn1g.txt. Le log est limité à 8 MiB de rapports par batch, avec un vidage périodique ou à la fin du checkpoint. Le projet ne propose pas de support multi‑GPU ni de version CPU, ce qui contraint son utilisation aux machines disposant d’un GPU récent. De plus, le modèle reste limité à un vocabulaire byte‑level, ce qui réduit la capacité d’apprentissage sur des langues à forte complexité morphologique.

Utilisation et perspectives

Grâce à son temps d’entraînement très court, TurboGPT se prête à des scénarios d’expérimentation rapide ou d’enseignement des concepts de transformer. Cependant, la petite taille du modèle et l’absence de mécanismes de parallélisation limitent son applicabilité à des tâches de production nécessitant une capacité de généralisation supérieure. Les développeurs souhaitant exploiter le code comme base devront ajouter des modules de gestion de vocabulaire plus riche, de distribution de charge et de persistance de données pour dépasser les contraintes actuelles.