SELF-DISCOVER: Large Language Models Self-Compose Reasoning Structures