À propos du projet
PlanckGPT est un projet éducatif qui démontre comment entraîner un modèle de langage de type GPT de zéro sur du matériel grand public. Le modèle possède environ 540 millions de paramètres et est pré-entraîné sur environ 2 milliards de jetons issus de l'ensemble de données Fineweb-edu, avec une étape facultative d'affinage conversationnel utilisant les données Smol-smoltalk.
Le projet vise à obtenir le meilleur rapport qualité-temps d'entraînement, avec une limite souple de 50 heures d'entraînement. Sur l'ordinateur portable de l'auteur (Intel Core i7 14700HX, 24 Go de RAM, RTX 5070 Mobile 8 Go), le pré-entraînement prend environ 28 heures et 20 minutes, tandis que l'affinage conversationnel prend environ 4 heures et 10 minutes.
L'architecture utilise un décodeur transformer à 14 couches avec 7 têtes de requête, des plongements de 896 dimensions, des plongements positionnels rotatifs, des plongements de valeur alternés, une activation ReLU au carré et RMSNorm. Le tokeniseur est Tiktoken avec l'encodage GPT-2 (taille de vocabulaire de 50 257). L'entraînement utilise l'optimiseur NorMuon pour les poids du transformer, Adam 8 bits pour les plongements, une précision mixte BF16, le point de contrôle de gradient et torch.compile.
Le projet fournit des scripts pour le pré-entraînement, l'évaluation, l'affinage conversationnel et l'inférence. La performance pré-entraînée est proche de celle de GPT-2-medium avec une perte de validation moyenne d'environ 2,97 sur Fineweb-edu. La performance affinée conversationnellement atteint une perte de validation moyenne d'environ 1,13 sur Smol-smoltalk. L'inférence utilise un échantillonnage top-k et top-p avec un cache KV pour une génération plus rapide.
Le projet est inspiré de modded-nanogpt et nanochat, et est sous licence Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.