Derive self-attention, positional information, multi-head attention, masking, and transformer blocks. Implement a small transformer and inspect how information moves through it.