Model Card for Model ID
This model classifies pet health symptoms from text descriptions into predefined health conditions, fine-tuned on VetBERTDx.
Model Details
Model Description
Fine-tuned VetBERTDx for sequence classification.
This is the model card of a ๐ค transformers model that has been pushed on the Hub. This model card has been automatically generated.
- Developed by: Fatemeh Dastak
- Model type: Fine-tuned VetBERTDx for sequence classification
- Language(s) (NLP): English
- License: MIT
- Finetuned from model [optional]: havocy28/VetBERTDx
Model Sources [optional]
- Repository: https://huggingface.co/fdastak/model_classification
- Dataset: Pet Health Symptoms Dataset
Uses
Direct Use
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model = AutoModelForSequenceClassification.from_pretrained("fdastak/model_classification")
tokenizer = AutoTokenizer.from_pretrained("fdastak/model_classification")
Out-of-Scope Use
- Not for actual medical diagnosis
- Not a replacement for veterinary consultation
- Not suitable for emergency medical decisions
Downstream Use [optional]
This model can be integrated into:
- Veterinary triage systems
- Pet health monitoring applications
- Symptom screening tools
- Educational veterinary platforms
Out-of-Scope Use
This model should NOT be used for:
- Direct medical diagnosis
- Emergency medical decisions
- Replacement of veterinary consultation
- Legal or insurance decisions
- Automated treatment recommendation
Bias, Risks, and Limitations
Technical Limitations
- Limited to 512 token input length
- CPU-only training constraints
- Early stopping at 301 steps
- Batch size limitations (8 training, 20 evaluation)
- Specific to owner-reported symptoms
Data Biases
- Training data from owner observations only
- English language only
- Limited to common pet conditions
- Potential reporting biases in symptoms
- Class imbalance considerations
Risk
-Misinterpretation of medical conditions -Over-reliance on automated classification -Delayed professional consultation -False confidence in predictions -Language and cultural biases
Recommendations
Best Practices
- Always verify predictions with professionals
- Use as screening tool only
- Monitor prediction confidence scores
- Implement user warnings
- Regular model evaluation
How to Get Started with the Model
Load required libraries
from transformers import AutoModelForSequenceClassification, AutoTokenizer import torch.nn.functional as F
Load model and tokenizer
repo_id = "fdastak/model_classification" model = AutoModelForSequenceClassification.from_pretrained(repo_id) tokenizer = AutoTokenizer.from_pretrained(repo_id)
Example usage
def classify_symptoms(text: str): # Preprocess and tokenize inputs = tokenizer( text, truncation=True, padding=True, max_length=512, return_tensors="pt" )
Training Details
Training Data
- Source: Pet Health Symptoms Dataset (Kaggle)
- Split: 80% training, 20% validation
- Preprocessing: Text lowercasing, label encoding
Training Procedure
Training Hyperparameters
- Epochs: 5
- Train batch size: 8
- Eval batch size: 20
- Learning rate: 2e-5
- Scheduler: Linear with warmup
- Warmup ratio: 0.1
- Early stopping: At step 301
- Maximum sequence length: 512
Evaluation
Metrics
- Accuracy
- Precision (weighted)
- Recall (weighted)
- F1-score (weighted)
Speeds, Sizes, Times
- Training Duration: ~1 hour
- Steps: 301 (with early stopping)
- Checkpoint Frequency: Every 50 steps
- Batch Processing:
- Training: 8 samples/batch
- Evaluation: 20 samples/batch
- Model Storage: Local checkpoints in './model_classification'
Evaluation
Testing Data, Factors & Metrics
Testing Data
- Source: Pet Health Symptoms Dataset
- Split: 20% of data (validation set)
- Format: Text descriptions with condition labels
- Preprocessing: Text lowercasing, label encoding
Factors
- Record Types: Owner observations
- Text Length: Maximum 512 tokens
- Language: English
- Conditions: Multiple pet health conditions
- Data Balance: Stratified split for class distribution
Metrics
- Accuracy: Overall classification accuracy
- Precision (weighted): Measure of exactness
- Recall (weighted): Measure of completeness
- F1-score (weighted): Harmonic mean of precision and recall
- Confusion Matrix: Class-wise performance visualization
Results
Performance Summary
- Overall Accuracy: 89%
- Average F1-Score: 0.89
- Class-wise Performance:
- Class 0: Highest precision (0.97) and F1-score (0.95)
- Class 1: Perfect recall (1.00)
- Class 2: Balanced performance (0.93 across metrics)
- Classes 3 & 4: Similar performance (~0.82-0.83 F1-score)
Key Metrics
- Precision (weighted): 0.89
- Recall (weighted): 0.89
- F1-score (weighted): 0.89
- Support: 200 validation samples (40 per class)
Summary
- Model shows balanced performance across classes
- Early stopping at step 301 prevents overfitting
- Validation performed every 50 steps
- Best model selected based on eval_loss
- Confusion matrix shows class-wise performance
Model Examination
Validation Results
The model's performance was examined using several evaluation methods:
- Classification Metrics
- Computed using sklearn's classification_report
- Includes precision, recall, and F1-score
- Evaluated on validation dataset
- Weighted averages to handle class imbalance
- Confusion Matrix Analysis
# Visualization code
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
import matplotlib.pyplot as plt
model.eval()
with torch.no_grad():
# Prediction collection
true_labels = []
pred_labels = []
pred_scores = []
# ...evaluation logic
- Prediction Confidence
- Softmax probabilities for class predictions
- Confidence scores tracked for each prediction
- Score distribution analysis for reliability
- Early Stopping Analysis
- Training stopped at step 301
- Monitored eval_loss for best model selection
- Used custom StopAtStepCallback for controlled training
Model Interpretability
- Base model: VetBERTDx (domain-specific veterinary BERT)
- Fine-tuned for pet symptom classification
- Uses attention mechanisms for text understanding
- Maximum sequence length: 512 tokens
Limitations
- CPU-only training might affect model capacity
- Limited to predefined condition categories
- Performance varies by symptom complexity
- Early stopping may affect final performance
Environmental Impact
Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).
- Hardware Type: CPU (Personal Computer)
- Hours used: ~2 hours (301 steps with early stopping)
- Cloud Provider: None (Local training)
- Compute Region: USA (Colorado)
- Power Mix: Rocky Mountain Power Grid
- Training Configuration:
- 301 steps with early stopping
- CPU-based training
- Batch size: 8 samples
- Epochs: 5
- Local machine execution
Environmental considerations:
- Used CPU instead of GPU for lower power consumption
- Implemented early stopping at step 301
- Leveraged pre-trained model (VetBERTDx)
- Local training to minimize data center impact
- Efficient batch size selection
Technical Specifications [optional]
Model Architecture and Objective
- Base model: VetBERTDx
- Task: Sequence classification
- Input: Text descriptions of pet symptoms
- Output: Classification among health conditions
Compute Infrastructure
- Framework: PyTorch
- Training device: GPU
- Python dependencies:
- transformers
- torch
- numpy
- scikit-learn
Hardware
The model was trained using:
- Training Device: CPU
- Batch Configuration:
- Training batch size: 8
- Evaluation batch size: 20
- Training Steps: Limited to 301 (early stopping)
- Local Storage: Required for model checkpoints in './model_classification'
Software
Training environment specifications:
- Python 3.11
- Core Libraries:
torch>=2.0.0 transformers>=4.30.0 numpy>=1.24.0 pandas>=1.5.0 scikit-learn>=1.0.0 sentence-transformers>=2.2.0 - Training Components:
- Framework: ๐ค Transformers
- Base Model: havocy28/VetBERTDx
- Tokenizer: AutoTokenizer
- Model Class: AutoModelForSequenceClassification
- Training API: Transformers Trainer with custom callbacks
- Logging: Python's built-in logging module
Citation [optional]
If you use this model in your research, please cite it using the following:
BibTeX:
@misc{dastak2024pethealthclassifier,
title={Pet Health Symptoms Classification Model},
author={Dastak, Fatemeh},
year={2024},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/fdastak/model_classification}},
note={Based on VetBERTDx by Havocy28},
keywords={veterinary-nlp, text-classification, pet-health}
}
APA:
Dastak, F. (2025). Pet Health Symptoms Classification Model [Machine learning model]. Hugging Face Model Hub. https://huggingface.co/fdastak/model_classification
Please also cite the base model:
@misc{havocy282023vetbertdx,
title={VetBERTDx: A Domain-Specific Language Model for Veterinary Medicine},
author={Havocy28},
year={2023},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/havocy28/VetBERTDx}}
}
Model Card Contact
Author: Fatemeh Dastak Repository: https://huggingface.co/fdastak/model_classification
- Downloads last month
- 12
Model tree for fdastak/model_classification
Base model
havocy28/VetBERTDx