Mitigating The Shortcomings of Language Models: Strategies For Handling Memorization & Adversarial Attacks