labml_nn/transformers/basic/autoregressive_experiment.ipynb
This trains a simple transformer with multi headed attention introduced in Attention Is All You Need on an NLP auto-regression task (with Tiny Shakespeare dataset).
!pip install labml-nn --quiet
from labml import experiment
from labml_nn.transformers.basic.autoregressive_experiment import Configs
experiment.create(name="transformer", writers={'screen'})
conf = Configs()
Set experiment configurations and assign a configurations dictionary to override configurations
experiment.configs(conf, {
# Use character level tokenizer
'tokenizer': 'character',
# Prompt separator is blank
'prompt_separator': '',
# Starting prompt for sampling
'prompt': 'It is ',
# Use Tiny Shakespeare dataset
'text': 'tiny_shakespeare',
# Use a context size of $256$
'seq_len': 512,
# Train for 32 epochs
'epochs': 32,
# Batch size $32$
'batch_size': 16,
# Switch between training and validation for $10$ times
# per epoch
'inner_iterations': 10,
# Model size
'd_model': 256,
'transformer.n_heads': 16,
'transformer.ffn.d_ff': 1024,
# Use [Noam optimizer](../../optimizers/noam.html)
'optimizer.optimizer': 'Noam',
'optimizer.learning_rate': 1.,
})
Set PyTorch models for loading and saving
experiment.add_pytorch_models({'model': conf.model})
# Start the experiment
with experiment.start():
conf.run()