Exploring the landscape of large language models: Foundations, techniques, and challenges