https://medium.com/@monocosmo77/how-autoregressive-language-models-work-part1-machine-learning-935475f3fea2