Understanding Large Language Models: Applications, Architecture and Challenges