Retour aux projets
LLM en PyTorch

LLM en PyTorch

Création et entrainement d'un modèle type GPT-2 en PyTorch pur

nov. 2024 - déc. 2024 1 mois

Technologies

NLPPyTorchDeep LearningPre-trainingFine TuningRLHF

Description

Créer un LLM (Large Language Model) m’a toujours intéressé, et le livre Build a Large Language Model de Sebastian Raschka était l’occasion parfaite pour moi de revisiter la structure des Transformers en PyTorch. On y apprend comment transformer des mots en tokens, comment coder et utiliser la partie décodeur d’un Transformer (en PyTorch pur, avec des formules mathématiques) pour générer de nouveaux tokens un par un, comment préparer un dataset pour le pre-training, comment fine-tuner un modèle sur des données et comment implémenter le RLHF (Reinforcement Learning with Human Feedback) pour qu’un LLM suive des instructions.

Fonctionnalités

Défis rencontrés

Architecture du modèle

Le modèle implémenté suit l’architecture GPT-2 Small d’OpenAI :

ParamètreValeur
Paramètres124M
Couches (layers)12
Dimension des embeddings768
Têtes d’attention12
Contexte max1024 tokens
Vocabulaire~50k tokens (BPE)

Cette architecture est identique à celle de GPT-3, mais à une échelle beaucoup plus réduite (GPT-3 compte 175 milliards de paramètres contre 124 millions ici), ce qui la rend entraînable sur du matériel grand public.

Résultats

Le modèle a été pré-entraîné sur le corpus de Shakespeare (~1 Mo de texte), ce qui lui donne un style d’écriture particulier en anglais élisabéthain :

Voir tous les projets