Shakespearegpt
Building & Training GPT à partir de zéro basé sur Andrej Karpathy: construisons GPT: à partir de zéro, en code, épelé. tutoriel
Ensemble de données Tiny-Shakespeare: Original avec de légères modifications.
TutorialGpt (après la vidéo)
- BASIC_BIGRAMLM.PY: Construit un modèle Bigram de base avec Générer pour faire rouler les choses.
- Tutorial.Ipynb: Comprendre le mécanisme d'attention de base, en utilisant TRIL, MASKED_FILL, SOFTMAX + Notes sur l'attention.
- LmwithAtttention.py: a continué le modèle mais maintenant avec une tête d'attention unique, des incorporations de jetons, des incorporations de position.
- Attentionblock.py: a construit une seule tête d'attention
- Lm_multihead_attention_ffwd.ipynb: a continué le modèle pour avoir maintenant plusieurs têtes d'attention concantenées, et une couche séparée en avant en avant avant LM_head.
- tutorialgpt.ipynb: a créé le bloc de transformateur, la superposition, les connexions résiduelles, une meilleure évaluation des pertes, un abandon, un tempête.
GPT au niveau du caractère
utilisé un tokenizer au niveau du caractère. Formé deux versions avec des configurations différentes pour mieux comprendre l'impact des hyperparamètres tels que N_EMBEDS, NUM_HEADS.
Essayez Kaggle
V1:
- carnet de notes
- modèle enregistré
- résultats
V2:
- carnet de notes
- modèle enregistré
- résultats
Shakespearegpt
Utilisé un tokenizer en codage d'octets.
Essayez Kaggle
- gpt.py: le modèle GPT complet
- DataSet.py: ensemble de données de torche
- build_tokenizer.py: tokenzer BPE utilisant
huggingface tokenizers à partir de zéro similaire à GPT-2 enregistré au tokenizer - Train.py: le script de formation contient un optimiseur, une configuration, une fonction de perte, une boucle de train, une boucle de validation, une économie de modèle
- générer.py: générer du texte en chargeant le modèle sur CPU.
Versions
V1
n_embed = 384
n_heads = 12
head_size = 32
n_layers = 4
lr = 6e-4
attn_dropout = 0.1
block_dropout = 0.1
Train Loss: 4.020419597625732
Valid Loss: 6.213085174560547
- carnet de notes
- modèle enregistré
- résultats
V2
n_embed = 384
n_heads = 6
head_size = 64
n_layers = 3
lr = 5e-4
attn_dropout = 0.2
block_dropout = 0.2
Train Loss: 3.933095216751099
Valid Loss: 5.970513820648193
- carnet de notes
- modèle enregistré
- résultats
Comme toujours, un tutoriel incroyable d'Andrej!