Challenges And Methods For Alignment Of Large Language Models With Human Preferences