Enhancing Educational AI (Kiran) for Educhat with fine-tuning open-source LLMS: a comparative study of PEFT and Chain-of-Thought Reasoning
Master's Thesis Project: Advanced Synthetic Dataset Generation and Multi-Stage Fine-tuning for Educational Language Models
EduChat is a thesis research project for my Masters degree in Tampere Univeristy focusing on synthetic educational dataset generation and multi-stage LLM fine-tuning for creating specialized academic assistance models. This thesis project explores advanced techniques for enhancing reasoning capabilities in language models through guided reward policy optimization (GRPO) and multi-dataset training approaches. π Read the full thesis:https://typst.app/project/rjPZM69sfKZpyLR6VBEarp
- Synthetic Dataset Generation: Novel approach for creating high-quality educational datasets combining university-specific content (Tampere University + MIT)
- Multi-Stage Fine-tuning: Sequential training pipeline using arXiv papers, synthetic datasets, and reasoning enhancement datasets
- GRPO Implementation: Guided Reward Policy Optimization for chain-of-thought reasoning enhancement
- Comprehensive Evaluation: Performance analysis across multiple model architectures (Phi-4, Gemma-3, Qwen)
- Synthetic Data Pipeline: Automated generation of educational Q&A pairs
- Multi-Model Support: Phi-4, Gemma-3 (4B), and Qwen model variants
- Advanced Training: LoRA fine-tuning with gradient accumulation and mixed precision
- Reasoning Enhancement: GRPO-based training for improved logical reasoning
- Experiment Tracking: Comprehensive WandB integration for reproducible research
- Memory-Efficient Training: Chunked data loading for large datasets
- Format Conversion: Robust CSV to chat format conversion with validation
- Multi-Stage Training: Sequential fine-tuning across specialized datasets
- Model Versioning: Automatic saving to HuggingFace Hub and local storage
- Data Validation: Comprehensive quality checks and format compliance
| Dataset | Type | Size | Purpose | Format |
|---|---|---|---|---|
| Synthetic University Dataset | Educational Q&A | ~Β samples | Domain adaptation | Gemma-3 Chat |
| arXiv Papers Dataset | Academic Papers | ~50K samples | Knowledge base training | Conversational |
| GSM8K | Mathematical Reasoning | 8.5K samples | Reasoning enhancement | Chain-of-thought |
| OpenCodeReasoning | Code Logic | ~15K samples | Programming reasoning | Step-by-step |
| Open-R1 | General Reasoning | ~20K samples | Advanced reasoning | Multi-turn |
- Tampere University: Course materials, syllabi, academic policies
- MIT OpenCourseWare: Lecture notes, assignments, educational content
- Quality Metrics: Automated validation, coherence scoring, format compliance
- Architecture: 14B parameters, optimized for reasoning
- Training: Two-stage fine-tuning (arXiv β Synthetic)
- Optimization: LoRA with rank 16, alpha 32
- Memory: Gradient checkpointing, mixed precision (FP16)
- Architecture: 4B parameters, efficient deployment
- Training: Comprehensive dataset conversion pipeline
- Optimization: QLoRA with 4-bit quantization
- Focus: Educational domain specialization
- Architecture: Multiple variants (7B, 14B)
- Training: Comparative analysis baseline
- Optimization: Standard LoRA configuration
# Core Training Parameters
{
"learning_rate": 2e-4,
"batch_size": 4,
"gradient_accumulation_steps": 4,
"max_length": 2048,
"warmup_ratio": 0.03,
"weight_decay": 0.001,
"fp16": True,
"dataloader_pin_memory": False
}- Python 3.8+
- CUDA-compatible GPU (recommended: 16GB+ VRAM)
# Clone the repository
git clone https://github.com/yourusername/educhat.git
cd educhat
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install additional packages for training
pip install transformers[torch] accelerate datasets wandb# Login to Weights & Biases
wandb login
# Set project name
export WANDB_PROJECT="educhat-thesis"# Convert CSV to Gemma-3 format
from dataset_pipeline.converter import CSVToGemmaConverter
converter = CSVToGemmaConverter()
dataset = converter.convert_csv_to_gemma3("path/to/dataset.csv")
converter.save_dataset(dataset, "converted_dataset.json")# Load and fine-tune Phi-4
from training.phi4_trainer import Phi4Trainer
trainer = Phi4Trainer(
model_name="microsoft/Phi-4",
dataset_path="converted_dataset.json",
output_dir="./phi4-educhat"
)
trainer.train()# Apply GRPO for reasoning improvement
from training.grpo_trainer import GRPOTrainer
grpo_trainer = GRPOTrainer(
base_model="./phi4-educhat",
reasoning_datasets=["GSM8K", "OpenCodeReasoning", "Open-R1"]
)
grpo_trainer.train_reasoning()- arXiv Dataset: Knowledge base establishment
- Synthetic Dataset: Domain-specific adaptation
- Validation: Performance benchmarking
- GSM8K: Mathematical reasoning foundation
- OpenCodeReasoning: Programming logic enhancement
- Open-R1: Advanced reasoning capabilities
- Performance Metrics: Accuracy, reasoning quality, response coherence
- Model Comparison: Cross-architecture analysis
- Hyperparameter Tuning: Optimal configuration discovery
Keywords: Synthetic Dataset Generation, Large Language Models, Fine-tuning, Educational AI, GRPO, Chain-of-thought Reasoning, Academic Assistance, Master's Thesis