Shakespearegpt
Construindo e treinando GPT do zero, baseado em Andrej Karpathy: vamos construir GPT: do zero, em código, soletrado. tutorial
DataSet Tiny-shakespeare: original com pequenas modificações.
TutorialGPT (seguindo o vídeo)
- Basic_bigramlm.py: construiu um modelo básico de bigram com gerar para fazer as coisas rolando.
- Tutorial.ipynb: entendeu mecanismo de atenção básica, usando TRIL, Masked_fill, Softmax + Notas sobre atenção.
- Lmwithattentent.py: continuou o modelo, mas agora com uma única atenção, incorporação de token, incorporações posicionais.
- ATENÇÃOBLOCK.PY: construiu uma única cabeça de atenção
- LM_MULTIHEAD_ATTENTENT_FFWD.IPYNB: Continuou o modelo a ter várias cabeças de atenção concfetadas e uma camada de alimentação separada antes de lm_head.
- tutorialgpt.ipynb: criou o bloco de transformadores, camadas, conexões residuais, melhor avaliação de perdas, abandono, queda de camada.
Nível de personagem Gpt
usou um tokenizador de nível de caractere. Treinei duas versões com diferentes configurações para entender melhor o impacto dos hiperparâmetros, como n_embeds, num_heads.
Experimente Kaggle
v1:
- caderno
- modelo salvo
- Resultados
v2:
- caderno
- modelo salvo
- Resultados
Shakespearegpt
Usou um tokenizador de codificação de par de bytes.
Experimente Kaggle
- Gpt.py: o modelo GPT completo
- DataSet.py: conjunto de dados da tocha
- Build_tokenizer.py: BPE Tokenizer usando
huggingface tokenizers do zero semelhante ao GPT-2 salvo no tokenizer - Train.py: O script de treinamento contém otimizador, configuração, função de perda, loop de trem, loop de validação, economia de modelo
- Gereate.py: Gere texto carregando o modelo na CPU.
Versões
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
- caderno
- modelo salvo
- Resultados
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
- caderno
- modelo salvo
- Resultados
Como sempre, um tutorial incrível de Andrej!