Shakespearegpt
Building & Training GPT desde cero basado en Andrej Karpathy: Build GPT: desde cero, en código, explicado. tutorial
DataSet Tiny-Shakespeare: original con ligeras modificaciones.
tutorialgpt (después del video)
- BASIC_BIGRAMLM.PY: construyó un modelo BigRam básico con Generate para que las cosas se pongan en marcha.
- tutorial.ipynb: Entendido mecanismo de atención básica, usando Tril, Masked_Fill, Softmax + Notas sobre la atención.
- Lmwithattion.py: Continúa el modelo pero ahora con cabeza de atención individual, insertos de tokens, incrustaciones posicionales.
- AttildBlock.py: construyó un solo cabezal de atención
- Lm_multihead_attention_ffwd.ipynb: Continúa el modelo para tener múltiples cabezas de atención concantadas y una capa de alimentación separada antes de lm_head.
- tutorialgpt.ipynb: creó el bloque del transformador, las capas, las conexiones residuales, la mejor evaluación de pérdidas, la deserción, la tormenta.
Nivel de personaje GPT
usó un tokenizador de nivel de personaje. Entrenó dos versiones con diferentes configuraciones para comprender mejor el impacto de los hiperparámetros como N_Embeds, num_heads.
Prueba Kaggle
V1:
- computadora portátil
- modelo guardado
- resultados
V2:
- computadora portátil
- modelo guardado
- resultados
Shakespearegpt
usó un tokenizador de codificación de pares de byte.
Prueba Kaggle
- gpt.py: el modelo GPT completo
- DataSet.py: conjunto de datos de antorcha
- build_tokenizer.py: Tokenizer BPE usando
huggingface tokenizers desde cero similar a GPT-2 guardado en Tokenizer - Train.py: el script de entrenamiento contiene optimizador, configuración, función de pérdida, bucle de trenes, bucle de validación, guardado del modelo
- Generate.py: Genere texto cargando el modelo en CPU.
Versiones
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
- computadora portátil
- modelo guardado
- 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
- computadora portátil
- modelo guardado
- resultados
Como siempre, ¡un increíble tutorial de Andrej!