# IOA Knowledge Distillation Framework Dependencies
# Based on the paper "Pedagogically-Inspired Data Synthesis for LLM Knowledge Distillation"

# =============================================================================
# Core ML Libraries
# =============================================================================
torch>=2.0.0
transformers>=4.36.0
datasets>=2.15.0
accelerate>=0.25.0
safetensors>=0.4.0

# =============================================================================
# PEFT for Parameter-Efficient Fine-Tuning (LoRA)
# Used for larger models (7B/8B/14B) as mentioned in Appendix E
# =============================================================================
peft>=0.7.0

# =============================================================================
# API Clients for Teacher Models
# Supports OpenAI (o1), DeepSeek-R1, and other API-based models
# =============================================================================
openai>=1.0.0
requests>=2.28.0
httpx>=0.25.0
tenacity>=8.2.0  # Retry logic for API calls

# =============================================================================
# Data Processing
# =============================================================================
numpy>=1.24.0
pandas>=2.0.0
jsonlines>=4.0.0

# =============================================================================
# Evaluation Metrics
# ROUGE-L for instruction following (Section 4.1, Appendix D)
# =============================================================================
rouge-score>=0.1.2
nltk>=3.8.0

# =============================================================================
# Graph Operations
# For knowledge dependency graph construction (Section 3.2)
# =============================================================================
networkx>=3.0

# =============================================================================
# Visualization (Optional)
# =============================================================================
matplotlib>=3.7.0
seaborn>=0.12.0

# =============================================================================
# Progress Tracking and Logging
# =============================================================================
tqdm>=4.65.0
rich>=13.0.0

# =============================================================================
# Configuration
# =============================================================================
pyyaml>=6.0
python-dotenv>=1.0.0

# =============================================================================
# Code Execution for Evaluation
# Used for HumanEval, MBPP evaluation (Section 4.1)
# =============================================================================
timeout-decorator>=0.5.0

# =============================================================================
# Optional: Experiment Tracking
# =============================================================================
# wandb>=0.15.0

# =============================================================================
# Optional: vLLM for Faster Inference
# =============================================================================
# vllm>=0.2.0

# =============================================================================
# Optional: Flash Attention for Memory Efficiency
# =============================================================================
# flash-attn>=2.0.0

# =============================================================================
# Optional: DeepSpeed for Distributed Training
# =============================================================================
# deepspeed>=0.12.0

# =============================================================================
# Development and Testing
# =============================================================================
pytest>=7.0.0
pytest-cov>=4.0.0
black>=23.0.0
isort>=5.12.0
flake8>=6.0.0
mypy>=1.0.0

# =============================================================================
# Jupyter Support (Optional)
# =============================================================================
# jupyter>=1.0.0
# ipywidgets>=8.0.0