A Primer on the Inner Workings of Transformer-based Language Models