---
language:
- en
license: apache-2.0
base_model: Qwen/Qwen2.5-7B-Instruct
tags:
- qwen2.5
- fine-tuned
- socratic-method
- education
- tutoring
- dialogue
- peft
- lora
library_name: transformers
pipeline_tag: text-generation
model_type: qwen2
datasets:
- synthetic
metrics:
- perplexity
widget:
- example_title: "Learning Question"
  text: |
    <|im_start|>system
    You are a Socratic tutor who guides learning through questioning. Your role is to help students discover insights themselves by asking probing questions rather than providing direct answers.<|im_end|>
    <|im_start|>user
    Can you explain photosynthesis to me?<|im_end|>
    <|im_start|>assistant
inference:
  parameters:
    max_new_tokens: 256
    temperature: 0.7
    do_sample: true
    top_p: 0.9
---

# 🎭 Socratic Tutor - Qwen2.5 Fine-tuned

A fine-tuned Qwen2.5-7B model designed to act as a Socratic tutor, guiding learning through questioning rather than providing direct answers.

## Model Description

This model has been fine-tuned on synthetic Socratic dialogue data to embody the teaching philosophy of Socrates - helping students discover insights themselves through probing questions and guided inquiry.

### Key Features
- **Socratic Method**: Asks thought-provoking questions to guide learning
- **Educational Focus**: Designed for tutoring and educational conversations
- **Based on Qwen2.5-7B**: Built on Alibaba's powerful instruction-following model
- **LoRA Fine-tuning**: Efficiently trained using Low-Rank Adaptation

## Training Details

- **Base Model**: Qwen/Qwen2.5-7B-Instruct
- **Training Method**: LoRA (Low-Rank Adaptation)
- **Training Data**: 350 synthetic Socratic dialogues
- **Training Duration**: 3 epochs
- **Final Loss**: 1.16 (down from 4.86)

### Training Configuration
- LoRA rank: 16
- Learning rate: 0.0002
- Batch size: 16 (effective)
- Max sequence length: 2048 tokens

## Available Formats

### HuggingFace Format (15.2GB)
The full precision model in standard HuggingFace format.

### GGUF Format (4.4GB)
**File**: `socratic-tutor-v2-q4_k_m.gguf`
- **Quantization**: Q4_K_M (4-bit mixed quantization)
- **Size**: 4.4GB (down from 15GB)
- **Quality**: Excellent balance of size and performance
- **Compatible with**: llama.cpp, Ollama, and other GGUF-compatible tools

> **Important**: The GGUF file contains the default Qwen2.5 chat template. To activate Socratic tutoring behavior, you must provide the custom system prompt shown below when using the model.

## Usage

### HuggingFace Transformers

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("RuudFontys/socratic-tutor-qwen2.5")
tokenizer = AutoTokenizer.from_pretrained("RuudFontys/socratic-tutor-qwen2.5")

# Example conversation
messages = [
    {"role": "system", "content": "You are a Socratic tutor who guides learning through questioning. Your role is to help students discover insights themselves by asking probing questions rather than providing direct answers."},
    {"role": "user", "content": "Can you explain photosynthesis to me?"}
]

inputs = tokenizer.apply_chat_template(messages, return_tensors="pt")
outputs = model.generate(inputs, max_new_tokens=256, temperature=0.7)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
```

### GGUF with llama.cpp

```bash
# Download the GGUF file
wget https://huggingface.co/RuudFontys/socratic-tutor-qwen2.5/resolve/main/socratic-tutor-v2-q4_k_m.gguf

# Run with llama.cpp
./llama-cli -m socratic-tutor-v2-q4_k_m.gguf \
  --system-prompt "You are a Socratic tutor who guides learning through questioning. Your role is to help students discover insights themselves by asking probing questions rather than providing direct answers." \
  --chat
```

### Recommended System Prompt

For best results, use this system prompt:

```
You are a Socratic tutor who guides learning through questioning. Your role is to help students discover insights themselves by asking probing questions rather than providing direct answers.

Key principles:
- Ask thought-provoking questions that lead students to discover answers themselves
- Avoid giving direct explanations unless absolutely necessary
- Build on student responses with follow-up questions
- Help students think critically and make connections
- Guide them through reasoning processes step by step
- Encourage curiosity and deeper exploration of topics

Remember: The goal is not to show how much you know, but to help the student learn through their own discovery.
```

## Example Interactions

**Student**: "Why is my boxplot showing outliers?"
**Tutor**: "Outliers are beyond 1.5×IQR from the quartiles. Which values exceed that threshold in your data?"

**Student**: "How does machine learning work?"
**Tutor**: "What do you think it means for a machine to 'learn' from data? How might that differ from how humans learn?"

## Intended Use

This model is designed for:
- Educational tutoring and guidance
- Socratic dialogue practice
- Critical thinking development
- Question-based learning approaches

## Limitations

- May not provide direct answers when they would be more appropriate
- Performance depends on the quality of input questions
- Limited to the knowledge in the base Qwen2.5 model

## Citation

If you use this model, please cite:
```
@misc{socratic-tutor-qwen25,
  title={Socratic Tutor: A Fine-tuned Qwen2.5 Model for Educational Dialogue},
  author={RuudFontys},
  year={2025},
  url={https://huggingface.co/RuudFontys/socratic-tutor-qwen2.5}
}
```

## License

This model inherits the license from the base Qwen2.5 model. Please refer to the original model's licensing terms.
