--- license: mit license_link: https://huggingface.co/microsoft/Phi-3-mini-4k-instruct/resolve/main/LICENSE language: - en pipeline_tag: text-classification tags: - email-classification - mlx - phi-3 - lora - text-classification library_name: mlx base_model: microsoft/Phi-3-mini-4k-instruct datasets: - private widget: - text: "Classify this email:\n\nYour order #12345 has been shipped and will arrive in 3-5 business days.\n\nCategory:" example_title: "Transactional Email" - text: "Classify this email:\n\nšŸŽ‰ Limited Time Offer! Get 50% off all products this weekend only!\n\nCategory:" example_title: "Promotional Email" - text: "Classify this email:\n\nYour password was changed on December 7, 2025. If you didn't make this change, please contact support immediately.\n\nCategory:" example_title: "Security Alert" --- # Email Classifier - Phi-3 Mini Fine-tuned This model is a fine-tuned version of [microsoft/Phi-3-mini-4k-instruct](https://huggingface.co/microsoft/Phi-3-mini-4k-instruct) for email classification tasks. It uses LoRA (Low-Rank Adaptation) for efficient fine-tuning on Apple Silicon using the MLX framework. ## Model Description - **Base Model**: microsoft/Phi-3-mini-4k-instruct - **Fine-tuning Method**: LoRA (Low-Rank Adaptation) - **Framework**: Apple MLX - **Task**: Email Classification - **Categories**: 20 email categories including promotional, transactional, notification, security, event, educational, newsletter, survey, business, personal, and more ## Intended Use This model classifies emails into predefined categories to help with inbox organization, email filtering, and workflow automation. ### Direct Use ```python from mlx_lm import load, generate # Load the model model, tokenizer = load("jake-watkins/email-classifier") # Classify an email email_content = """ Your subscription to Premium Service will renew on January 1st, 2026. To cancel or modify your subscription, visit your account settings. """ prompt = f"Classify this email:\n\n{email_content}\n\nCategory:" response = generate(model, tokenizer, prompt=prompt, max_tokens=50, verbose=False) print(response) ``` ## Training Data The model was trained on a private dataset of email examples across 20 categories: - promotional - transactional - notification - security - event - educational - newsletter - survey - business - personal - solicitation - recruitment - membership - political - informative - account - press - memorial - file - admission ## Training Procedure ### Training Hyperparameters - **Iterations**: 699 - **Learning Rate**: 1e-5 - **Batch Size**: 1 - **Max Sequence Length**: 512 tokens - **LoRA Layers**: 16 - **Steps per Eval**: 100 - **Validation Batches**: 25 ### Framework Fine-tuned using MLX-LM on Apple Silicon with LoRA adapters for parameter-efficient training. ## Evaluation The model was validated on a held-out test set with stratified sampling to maintain category distribution across training, validation, and test splits (80/10/10). ## Limitations - **Language**: Primarily trained on English emails - **Context Length**: Optimized for sequences up to 512 tokens; longer emails are truncated - **Categories**: Limited to the 20 predefined categories; may not generalize to novel email types - **Domain**: Performance may vary on highly specialized or domain-specific emails ## Ethical Considerations This model is intended for email organization and automation purposes. Users should: - Ensure compliance with privacy regulations when processing email content - Not use for unauthorized email monitoring or surveillance - Be aware that classification errors may occur ## Citation If you use this model, please cite the base model: ```bibtex @article{abdin2024phi, title={Phi-3 Technical Report: A Highly Capable Language Model Locally on Your Phone}, author={Abdin, Marah and others}, journal={arXiv preprint arXiv:2404.14219}, year={2024} } ``` ## Model Card Contact For questions or feedback about this model, please open an issue on the model repository.