Shakespeareegpt
Bauen und Training von GPT von Grund auf neu auf Basis von Andrej Karpathy: Bauen wir GPT: Von Grund auf neu, in Code, geschrieben. Tutorial
Datensatz Tiny-Shakespeare: Original mit leichten Modifikationen.
TutorialGPT (nach dem Video)
- BASIC_BIGRAMLM.PY: Einen Bigram -Modell für Bigram mit Generate, um die Dinge ins Rollen zu bringen.
- Tutorial.ipynb: Verständnis der grundlegende Aufmerksamkeitsmechanismus mit Tril, Masked_Fill, Softmax + Notizen zur Aufmerksamkeit.
- Lmwithattention.py: Fortsetzung des Modells, aber jetzt mit einzelnen Aufmerksamkeitskopf, Token -Einbettungen, Positionseinbettungen.
- Achtungsblock.py: Ein einziger Aufmerksamkeitskopf gebaut
- Lm_multihead_attention_ffwd.ipynb: Fortsetzung des Modells, um jetzt mehrere Aufmerksamkeitsköpfe übereinzustimmen, und eine separate Vorwärtsschicht vor LM_HEAD.
- Tutorialgpt.ipynb: Erstellt den Transformatorblock, die Schicht, Restverbindungen, bessere Verlustbewertung, Ausfall, Layernorm.
Charakterebene GPT
benutzte einen Charakterebene -Tokenizer. Trainierte zwei Versionen mit unterschiedlichen Konfigurationen, um die Auswirkungen der Hyperparameter wie n_embeds, num_heads besser zu verstehen.
Probieren Sie Kaggle an
v1:
- Notizbuch
- Speichernes Modell
- Ergebnisse
v2:
- Notizbuch
- Speichernes Modell
- Ergebnisse
Shakespeareegpt
verwendete einen Byte-Pair-Codierungs-Tokenizer.
Probieren Sie Kaggle an
- gpt.py: Das vollständige GPT -Modell
- Dataset.py: Torch -Datensatz
- Build_Tokenizer.py: BPE-Tokenizer mit
huggingface tokenizers von Grund auf neu, ähnlich wie GPT-2, das bei Tokenizer gespeichert ist - Train.py: Trainingsskript enthält Optimierer, Konfiguration, Verlustfunktion, Zugschleife, Validierungsschleife, Modellsparung
- generate.py: Erstellen Sie Text, indem Sie das Modell auf der CPU laden.
Versionen
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
- Notizbuch
- Speichernes Modell
- Ergebnisse
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
- Notizbuch
- Speichernes Modell
- Ergebnisse
Wie immer ein unglaubliches Tutorial von Andrej!