Build an LLM from Scratch 4: Implementing a GPT model from Scratch To Generate Text