Most instruction-tuned models are trained on human-written prompts — which cluster around simple, common requests. WizardLM asked a different question: what if you used an LLM to automatically rewrite those instructions into progressively more complex variants, then trained on the harder versions? The result was a model that outperformed ChatGPT on complex instruction-following tasks despite being a fraction of the size. Run it locally — no cloud, no API fees, no data leaving your machine.
WizardLM versions based on Llama 2 inherit the Llama 2 Community Licence, which prohibits commercial use without Meta's authorisation (required for services with over 700 million monthly active users). For most individual researchers, hobbyists, and small businesses this is not a practical restriction — but if you are building a product, use Nous Hermes 2 (Apache 2.0) or OpenChat 3.5 (Apache 2.0) instead.
The central insight behind WizardLM is that the complexity distribution of human-written instructions is heavily skewed toward simple tasks. When you train only on those, you get a model that handles easy requests well but struggles with multi-step, technically demanding prompts. Evol-Instruct solves this by using an LLM (GPT-4 in the original research) to automatically transform simple instructions into harder variants through a defined evolution process.
The key result: models trained on the Evol-Instruct dataset outperform models trained on the original simple instructions on complex tasks, even when total training data volume is similar. The difficulty distribution of training data matters as much as its volume.
If you are running a 7B model locally and need it to handle genuinely complex tasks — multi-step code generation, structured analysis, technical writing with specific constraints — WizardLM's training approach gives it an edge over comparably-sized models trained on simpler instruction sets. You get more reasoning capability per parameter than a naive fine-tune.
| Model | Base | Size | MT-Bench | Context | RAM (INT4) | Licence |
|---|---|---|---|---|---|---|
| WizardLM 7B v1 | Llama 1 | 7B | N/A | 2K | 5–6 GB | Non-commercial |
| WizardLM 13B v1.2 | Llama 2 | 13B | 7.20 | 4K | 9–10 GB | Non-commercial |
| WizardLM 70B v1 | Llama 2 | 70B | 7.71 | 4K | 40–48 GB | Non-commercial |
| WizardLM-2 7B ★ | Mistral 7B | 7B | 8.01 | 32K | 5–6 GB | Apache 2.0* |
| WizardLM-2 70B | Llama 2 | 70B | ~8.7 | 32K | 40–48 GB | Non-commercial |
| WizardLM-2 8x22B | Mixtral | 141B MoE | ~9.0 | 64K | ~80 GB | Apache 2.0* |
* WizardLM-2 Mistral/Mixtral-based variants use Apache 2.0. Llama 2-based variants use the non-commercial Llama 2 Community Licence. MT-Bench scores from LMSYS leaderboard.
| Model | MT-Bench | Complex Tasks | Context | Licence | Best Fit |
|---|---|---|---|---|---|
| WizardLM-2 7B | 8.01 | Strong | 32K | Apache 2.0 | Multi-step reasoning, technical tasks |
| OpenChat 3.5 | 7.81 | Good | 8K | Apache 2.0 | Fast, conversational, commercial use |
| Starling 7B | 8.09 | Good | 8K | Apache 2.0 | Helpfulness, conversational quality |
| Nous Hermes 2 | 7.54 | Strong | 4K | Apache 2.0 | Commercial use, structured output |
| Vicuna 1.5 | 7.92 | Moderate | 4K | Non-commercial | Conversational, well-rounded |
| Llama 3.1 8B Instruct | 8.22 | Strong | 128K | Llama 3.1 (broadly usable) | Long-context, modern baseline |
WizardLM-2 7B was released in April 2024 and scores 8.01 on MT-Bench — impressive for its size. However, Llama 3.1 8B Instruct (July 2024) scores 8.22 and offers a 128K context window, broader language support, and a more permissive licence. For most new deployments in 2025, Llama 3.1 8B is the stronger default. WizardLM-2 7B remains relevant if you specifically want the Evol-Instruct training methodology's characteristics on complex instruction tasks, or if you are already using Mistral-family models and want consistency.
Tasks requiring sequential reasoning steps: "Given X, derive Y, then use Y to evaluate Z under constraints A and B." The Evol-Instruct training specifically targets this pattern.
Instructions with multiple simultaneous constraints: format requirements, content restrictions, length limits, and specific terminology — all honoured together.
Documentation, specifications, and technical content where you provide detailed requirements and expect them to be fully addressed — not just partially.
Generating JSON, YAML, or other structured output that must conform to a schema. WizardLM handles format constraints well due to diversity of evolved training examples.
Breaking down a complex problem, examining it from multiple angles, and providing a structured conclusion. The model was specifically trained on this instruction pattern.
Summarising literature, identifying gaps in arguments, comparing multiple sources against a set of criteria. Benefits from the model's exposure to expert-level instruction patterns.
# Install Ollama first: https://ollama.com # WizardLM-2 7B — recommended starting point ollama pull wizardlm2:7b # WizardLM-2 8x22B — requires ~80GB RAM (MoE architecture) ollama pull wizardlm2:8x22b # Start a chat session ollama run wizardlm2:7b
import ollama # WizardLM-2 handles complex, multi-part instructions well response = ollama.chat( model='wizardlm2:7b', messages=[{ 'role': 'user', 'content': """Analyse the following business scenario and provide: 1. A SWOT analysis in a 2x2 grid (use ASCII art) 2. Three strategic recommendations, each with: - The recommendation (max 20 words) - Rationale (2-3 sentences) - Key risk and mitigation - Success metric 3. A prioritisation matrix ranking the recommendations by impact vs implementation difficulty Scenario: A regional law firm with 50 lawyers is considering launching an AI-assisted contract review service for SMEs.""" }] ) print(response['message']['content'])
from openai import OpenAI client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama" ) # System prompt tuning for WizardLM-2 response = client.chat.completions.create( model="wizardlm2:7b", messages=[ { "role": "system", "content": "You are a precise technical assistant. Follow all instructions exactly. When given a numbered list of requirements, address each one explicitly and in order." }, { "role": "user", "content": "Your instruction here..." } ], temperature=0.7 ) print(response.choices[0].message.content)
WizardLM-2 was trained on instructions with explicit numbered constraints. When you have multiple requirements, list them explicitly rather than embedding them in prose. The model is more likely to address each requirement in turn.
# Less effective: "Write a short product description for a standing desk that mentions the height range and is suitable for LinkedIn." # More effective (mirrors Evol-Instruct patterns): "Write a product description for an adjustable standing desk. Requirements: 1. Length: exactly 80–100 words 2. Must include: height range (65–130 cm), electric motor speed, and warranty period (5 years) 3. Tone: professional but approachable; suitable for LinkedIn 4. End with a single call-to-action sentence 5. Do not use the words 'innovative' or 'revolutionary'"
"Evaluate the following argument for logical consistency.
Return your response as valid JSON with this exact structure:
{
'verdict': 'valid' | 'invalid' | 'partially_valid',
'premises': [{'claim': str, 'sound': bool, 'note': str}],
'logical_gaps': [str],
'overall_score': int (1-10),
'one_line_summary': str
}
Argument: [paste argument here]"