End-to-end design of the transformer block: embeddings, attention, FFN, residual, normalization, positional encoding. Encoder vs decoder vs encoder-decoder.