This is a fine-tuned BioMistral-7B model for classifying medical symptoms into 10 common diagnoses. The model was trained using QLoRA (Quantized Low-Rank Adaptation) on a curated dataset of 10,000 symptom-diagnosis pairs, achieving 99.1% accuracy on the test set.
1defbatch_predict(symptoms_list):2"""Predict multiple symptom texts at once"""34 inputs = tokenizer(5 symptoms_list,6 return_tensors="pt",7 padding=True,8 truncation=True,9 max_length=12810)1112 device =next(model.parameters()).device
13 inputs ={k: v.to(device)for k, v in inputs.items()}1415with torch.no_grad():16 outputs = model(**inputs)17 logits = outputs.logits
1819 probabilities = torch.softmax(logits, dim=-1)20 confidences, predicted_classes = torch.max(probabilities, dim=-1)2122 results =[]23for pred_class, conf inzip(predicted_classes, confidences):24 results.append({25'diagnosis': DIAGNOSIS_CLASSES[pred_class.item()],26'confidence': conf.item()27})2829return results
3031# Example32symptoms_batch =[33"fever ,cough and difficulty breathing",34"anxiety and nervousness ,rapid heartbeat and shortness of breath",35"skin rash ,itching of skin and abnormal appearing skin"36]3738results = batch_predict(symptoms_batch)39for i, result inenumerate(results):40print(f"{i+1}. {result['diagnosis']} ({result['confidence']:.1%})")
Input Format Requirements
CRITICAL: The model expects symptoms in a specific format matching its training data.
✅ Correct Format
python
1# Space BEFORE comma, 'and' before last symptom2"nausea ,vomiting ,diarrhea and abdominal cramps"3"cough ,fever and difficulty breathing"4"eye redness ,itchiness of eye and lacrimation"
❌ Incorrect Format
python
1# No spaces before commas2"nausea, vomiting, diarrhea, fever"# Will likely fail34# Missing 'and' before last symptom5"nausea ,vomiting ,diarrhea ,fever"# Suboptimal67# Capitalized8"Nausea ,Vomiting ,Diarrhea and Fever"# Wrong case
Format Rules
Spacing: Space before each comma (symptom1 ,symptom2)
Conjunction: Use and before the last symptom
Case: Lowercase text
Terminology: Medical terminology preferred
Punctuation: No period at the end
Limitations
Scope Limitations
Limited Conditions: Only 10 diagnoses (not comprehensive)
Symptom Format: Highly dependent on exact text formatting
No Severity: Cannot assess urgency or severity levels
Single Diagnosis: Returns only one diagnosis (no differential)
No Confidence Threshold: Always returns a prediction
Performance Limitations
Symptom Overlap: Lower accuracy on conditions with similar symptoms
Eczema vs. Psoriasis (both skin conditions)
Acute Bronchitis vs. Pneumonia (both respiratory)
Format Sensitivity: Performance drops with incorrectly formatted input
Training Distribution: Best performance on symptoms similar to training data
No Rare Conditions: Cannot identify conditions outside the 10 classes
Technical Limitations
Quantization Effects: 4-bit quantization may introduce minor accuracy variations
Context Window: Limited to 128 tokens (sufficient for symptom lists)
No Multi-label: Cannot predict multiple concurrent conditions
Fixed Vocabulary: Limited to medical terms seen during training
Bias and Ethical Considerations
Potential Biases
Training Data Bias: Reflects symptom descriptions in training corpus
Language Bias: English-only; may not generalize to other languages
Medical Terminology: May perform better on formal medical terms
Demographic Bias: Training data may not represent all populations equally