Training large language models (LLMs)  with open-domain instruction following data brings colossal success. However, manually creating such instruction data is very time-consuming and labor-intensive. Moreover, humans may struggle to produce high-complexity instructions. In this paper, we show an avenue for creating large amounts of instruction data with varying levels of complexity using LLM instead of humans. Starting with an initial set of instructions, we use our proposedEvol-Instructto rewrite them step by step into more complex instructions. Then, we mix all generated instruction data to fine-tune LLaMA. We call the resulting modelWizardLM. Human evaluations on a complexity-balanced test bed and Vicuna’s testset show that instructions fromEvol-Instructare superior to human-created ones. By analyzing the human evaluation results of the high complexity part, we demonstrate that outputs from ourWizardLMmodel are preferred to outputs from OpenAI ChatGPT. In GPT-4 automatic evaluation,WizardLMachieves more than 90% capacity of ChatGPT on 17 out of 29 skills. Even thoughWizardLMstill lags behind ChatGPT in some aspects, our findings suggest that fine-tuning with AI-evolved instructions is a promising direction for enhancing LLMs. Our code and data are public athttps://github.com/nlpxucan/WizardLM.