--- language: - en license: mit tags: - phi-3 - distillation - knowledge-distillation - lora - code-generation - python datasets: - Shuu12121/python-codesearch-dataset-open model-index: - name: FStudent results: - task: type: text-generation name: Text Generation dataset: type: custom name: Distillation Evaluation metrics: - name: Speedup Factor type: speedup value: 2.5x verified: false --- # FStudent: Distilled Phi-3 Model FStudent is a knowledge-distilled version of Microsoft's Phi-3-mini-4k-instruct model, trained through a comprehensive distillation pipeline that combines teacher-student learning with self-study mechanisms. ## Model Description FStudent was created using a multi-stage distillation pipeline that transfers knowledge from a larger teacher model (Phi-4) to the smaller Phi-3-mini-4k-instruct model. The model was trained using LoRA adapters, which were then merged with the base model to create this standalone version. ### Training Data The model was trained on a diverse set of data sources: 1. **PDF Documents**: Technical documentation and domain-specific knowledge 2. **Python Code Dataset**: Code examples from the [Shuu12121/python-codesearch-dataset-open](https://huggingface.co/datasets/Shuu12121/python-codesearch-dataset-open) dataset 3. **Teacher-Generated Examples**: High-quality examples generated by the Phi-4 teacher model ### Training Process The distillation pipeline consisted of six sequential steps: 1. **Content Extraction & Enrichment**: PDF files were processed to extract and enrich text data 2. **Teacher Pair Generation**: Training pairs were generated using the Phi-4 teacher model 3. **Distillation Training**: The student model (Phi-3) was trained using LoRA adapters with the following parameters: - Learning rate: 1e-4 - Batch size: 4 - Gradient accumulation steps: 8 - Mixed precision training - 4-bit quantization during training 4. **Model Merging**: The trained LoRA adapters were merged with the base Phi-3 model 5. **Student Self-Study**: The model performed self-directed learning on domain-specific content 6. **Model Evaluation**: The model was evaluated against the teacher model for performance ### Model Architecture - **Base Model**: microsoft/Phi-3-mini-4k-instruct - **Parameter-Efficient Fine-Tuning**: LoRA adapters (merged into this model) - **Context Length**: 4K tokens - **Architecture**: Transformer-based language model ## Intended Uses This model is designed for: - General text generation tasks - Python code understanding and generation - Technical documentation analysis - Question answering on domain-specific topics ## Performance and Limitations ### Strengths - Faster inference compared to larger models (approximately 2.5x speedup) - Maintains much of the capability of the teacher model - Enhanced code understanding due to training on Python code datasets - Good performance on technical documentation analysis ### Limitations - May not match the full capabilities of larger models on complex reasoning tasks - Limited context window compared to some larger models - Performance on specialized domains not covered in training data may be reduced ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer # Load the model and tokenizer model = AutoModelForCausalLM.from_pretrained("forge1825/FStudent") tokenizer = AutoTokenizer.from_pretrained("forge1825/FStudent") # Generate text input_text = "Write a Python function to calculate the Fibonacci sequence:" inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs, max_length=512) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ### Quantized Usage For more efficient inference, you can load the model with quantization: ```python from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig import torch # 4-bit quantization configuration quantization_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16 ) # Load the model with quantization model = AutoModelForCausalLM.from_pretrained( "forge1825/FStudent", device_map="auto", quantization_config=quantization_config ) tokenizer = AutoTokenizer.from_pretrained("forge1825/FStudent") ``` ## Training Details - **Training Framework**: Hugging Face Transformers with PEFT - **Optimizer**: AdamW - **Learning Rate Schedule**: Linear warmup followed by linear decay - **Training Hardware**: NVIDIA GPUs - **Distillation Method**: Knowledge distillation with teacher-student architecture - **Self-Study Mechanism**: Curiosity-driven exploration with hierarchical context ## Ethical Considerations This model inherits the capabilities and limitations of its base model (Phi-3-mini-4k-instruct). While efforts have been made to ensure responsible behavior, the model may still: - Generate incorrect or misleading information - Produce biased content reflecting biases in the training data - Create code that contains bugs or security vulnerabilities Users should validate and review the model's outputs, especially for sensitive applications. ## Citation and Attribution If you use this model in your research or applications, please cite: ``` @misc{forge1825_fstudent, author = {Forge1825}, title = {FStudent: Distilled Phi-3 Model}, year = {2025}, publisher = {Hugging Face}, howpublished = {\url{https://huggingface.co/forge1825/FStudent}} } ``` ## Acknowledgements - Microsoft for the Phi-3-mini-4k-instruct base model - Hugging Face for the infrastructure and tools - The creators of the Python code dataset used in training