license: apache-2.0
language:
- en
- ar
tags:
- medical
- clinical-ai
- medgemma
- fine-tuned
- diagnosis
- differential-diagnosis
- clinical-transcription
- arabic-medical
- qlora
- healthcare
- gemma3_text
base_model: google/medgemma-27b-text-it
datasets:
- akemiH/NoteChat
- starmpcc/Asclepius-Synthetic-Clinical-Notes
- AGBonnet/augmented-clinical-notes
- omi-health/medical-dialogue-to-soap-summary
- openlifescienceai/medmcqa
- GBaker/MedQA-USMLE-4-options
- zhengyun21/PMC-Patients
- lingshu-medical-mllm/ReasonMed
- UCSC-VLAA/MedReason
- FreedomIntelligence/medical-o1-reasoning-SFT
- qiaojin/PubMedQA
- appier-ai-research/StreamBench
- MustafaIbrahim/medical-arabic-qa
- MKamil/arabic_medical_50k
pipeline_tag: text-generation
library_name: transformers
model-index:
- name: Sanad-1.0
results:
- task:
type: text-generation
name: Medical Question Answering
dataset:
type: GBaker/MedQA-USMLE-4-options
name: MedQA USMLE
metrics:
- type: accuracy
value: 87.7
name: MedQA Accuracy
๐ฅ Sanad-1.0 โ Clinical AI Assistant
Sanad-1.0 (ุณูุฏ โ meaning "support" or "pillar" in Arabic) is a fine-tuned clinical AI model built on Google's MedGemma-27B-text-it. It is purpose-built for Mediscribe, a comprehensive clinical AI platform providing medical diagnosis, differential diagnosis, clinical transcription, and bilingual Arabic-English medical support.
Sanad-1.0 has been trained on 551,491 curated medical examples across 15 specialized healthcare datasets using a 4-stage progressive fine-tuning pipeline with QLoRA.
Try it live: Sanad-1 Demo | Sanad Demo
โจ Key Capabilities
| Capability | Description |
|---|---|
| ๐ฅ Clinical Transcription | Converts doctor-patient conversations into structured SOAP notes and clinical documentation |
| ๐ฌ Medical Diagnosis | Analyzes patient presentations with systematic clinical reasoning to arrive at diagnoses |
| ๐ Differential Diagnosis | Generates ranked differential diagnoses with probability assessments and reasoning chains |
| ๐ง Chain-of-Thought Reasoning | Provides transparent, step-by-step medical reasoning with <thinking> traces |
| ๐ Arabic Medical Support | Full bilingual capability (English + Arabic) for clinical consultations |
| ๐ USMLE-Level Knowledge | Trained on USMLE Step 1/2/3 questions across 21+ medical specialties |
๐ Quick Start
Using Transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "360kaUser/Sanad-1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are Mediscribe, a clinical diagnostic AI assistant. Analyze the patient presentation and provide a diagnosis with clinical reasoning."},
{"role": "user", "content": "A 55-year-old male presents with sudden onset crushing chest pain radiating to the left arm, diaphoresis, and shortness of breath. He has a history of hypertension, type 2 diabetes, and smokes 1 pack per day. ECG shows ST elevation in leads II, III, and aVF. Troponin I is elevated at 2.5 ng/mL."}
]
inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_new_tokens=1024, temperature=0.7, top_p=0.9, do_sample=True)
response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True)
print(response)
Using Unsloth (Faster Inference)
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
"360kaUser/Sanad-1.0",
max_seq_length=2048,
load_in_4bit=True, # Use 4-bit for lower VRAM
)
FastLanguageModel.for_inference(model)
# Same message format as above
๐ฌ Usage Examples
1. Clinical Transcription
messages = [
{"role": "system", "content": "You are Mediscribe, a clinical documentation AI assistant. Given a doctor-patient conversation, generate a comprehensive clinical note."},
{"role": "user", "content": """Doctor: Good morning, what brings you in today?
Patient: I've been having this terrible headache for the past 3 days. It's mainly on the right side.
Doctor: On a scale of 1-10, how bad is the pain?
Patient: About 7. And I've been feeling nauseous too.
Doctor: Any visual changes? Sensitivity to light?
Patient: Yes, bright lights make it worse.
Doctor: Have you had migraines before?
Patient: My mother gets them, but I've never had one this bad."""}
]
Output: Generates a structured clinical note with Chief Complaint, HPI (onset, location, severity, associated symptoms), Review of Systems, Family History, Assessment, and Plan.
2. Differential Diagnosis
messages = [
{"role": "system", "content": "You are Mediscribe, a clinical diagnostic AI assistant. Provide a ranked differential diagnosis with reasoning."},
{"role": "user", "content": "A 30-year-old female presents with fatigue, weight gain of 15 pounds over 3 months, cold intolerance, constipation, and dry skin. Hair thinning and difficulty concentrating. HR 58 bpm, BP 110/70, temp 97.2F."}
]
Output: Ranked differential including Hypothyroidism (most likely), Depression, Anemia, with clinical reasoning for each and recommended next steps (TSH, Free T4, CBC).
3. Arabic Medical Query
messages = [
{"role": "system", "content": "ุฃูุช Mediscribeุ ู
ุณุงุนุฏ ุฐูุงุก ุงุตุทูุงุนู ุทุจู. ูู
ุจุชุญููู ุงูุณุคุงู ุงูุทุจู ูุชูุฏูู
ุฅุฌุงุจุฉ ุฏูููุฉ."},
{"role": "user", "content": "ู
ุง ูู ุฃุนุฑุงุถ ู
ุฑุถ ุงูุณูุฑู ู
ู ุงูููุน ุงูุซุงููุ"}
]
Output: Comprehensive Arabic response covering all Type 2 Diabetes symptoms (ุงูุนุทุด ุงูุดุฏูุฏุ ุงูุชุจูู ุงูู ุชูุฑุฑุ ุงูุฌูุน ุงูู ูุฑุท, etc.) with medical terminology.
๐๏ธ Model Architecture
| Component | Detail |
|---|---|
| Base Model | google/medgemma-27b-text-it |
| Architecture | Gemma 3 (27B parameters) |
| Context Window | 128K tokens |
| Tensor Type | BF16 (Brain Float 16) |
| Format | Safetensors |
| Fine-Tuning Method | QLoRA (4-bit NF4 quantization during training) |
| LoRA Configuration | r=32, alpha=64, dropout=0.05 |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
๐ Training Data โ 551K Medical Examples
Stage 1: Clinical Transcription (152,930 train + 8,048 val)
| Dataset | Records | Purpose |
|---|---|---|
| NoteChat | 60,000 | Doctor-patient conversation โ clinical note |
| Asclepius Clinical Notes | 30,000 | Clinical note comprehension & QA |
| Augmented Clinical Notes | 60,000 | Conversation โ note + note โ JSON summary |
| OMI Health SOAP | 9,250 | Medical dialogue โ SOAP note |
| MTS-Dialog | 1,601 | Dialogue โ clinical note sections |
| ACI-Bench | 127 | Ambient clinical intelligence |
Stage 2: Medical Diagnosis (61,920 train + 3,258 val)
| Dataset | Records | Purpose |
|---|---|---|
| MedMCQA | 40,000 | MCQ across 21 specialties with explanations |
| PMC-Patients | 15,000 | Patient case narratives with diagnosis |
| MedQA USMLE | 10,178 | USMLE Step 1/2/3 clinical vignettes |
Stage 3: Differential Diagnosis & Reasoning (129,696 train + 6,826 val)
| Dataset | Records | Purpose |
|---|---|---|
| ReasonMed | 80,000 | Multi-step medical reasoning chains |
| MedReason | 32,682 | Knowledge-grounded clinical reasoning |
| Medical O1 Reasoning | 19,704 | Chain-of-thought <thinking> traces |
| DDXPlus | 3,136 | Symptom โ ranked differential diagnosis |
| PubMedQA | 1,000 | Evidence-based biomedical QA |
Stage 4: Arabic & General Medical (179,373 train + 9,440 val)
| Dataset | Records | Purpose |
|---|---|---|
| Arabic Medical QA | 52,657 | Arabic medical QA (30+ specialties) |
| Arabic Medical 50K | 50,000 | Arabic medical dialogues |
| Existing Clinical Training Data | 86,156 | ChatDoctor, Indian Medical QA, combined clinical data |
๐ฏ Training Configuration
4-Stage Progressive Fine-Tuning
Training used decreasing learning rates across stages to progressively build capabilities while preventing catastrophic forgetting:
Stage 1: Transcription โ LR: 2.0e-4 โ 152,930 examples โ Clinical documentation
Stage 2: Diagnosis โ LR: 1.5e-4 โ 61,920 examples โ Diagnostic reasoning
Stage 3: DDx & Reasoning โ LR: 1.0e-4 โ 129,696 examples โ Advanced reasoning
Stage 4: Arabic & General โ LR: 5.0e-5 โ 179,373 examples โ Bilingual + reinforcement
Hyperparameters
| Parameter | Value |
|---|---|
| Batch size | 2 per device |
| Gradient accumulation | 8 steps |
| Effective batch size | 16 |
| Max sequence length | 2,048 tokens |
| LR scheduler | Cosine |
| Warmup ratio | 0.03 |
| Weight decay | 0.01 |
| Max gradient norm | 0.3 |
| Optimizer | Paged AdamW 8-bit |
| Precision | BF16 |
| Packing | Enabled |
| Gradient checkpointing | Unsloth optimized |
| Hardware | NVIDIA A100 40GB |
๐ Performance
Evaluation Results
| Category | Quality | Description |
|---|---|---|
| Clinical Transcription | โ High | Structured SOAP notes with CC, HPI, ROS, Assessment, Plan |
| Medical Diagnosis | โ High | Systematic analysis with risk factors, ECG interpretation, clinical reasoning |
| Differential Diagnosis | โ High | Ranked DDx with probability reasoning and recommended next steps |
| Chain-of-Thought | โ High | Transparent <thinking> reasoning traces |
| Arabic Medical | โ High | Comprehensive Arabic responses with medical terminology |
Base Model Benchmarks (MedGemma-27B)
| Benchmark | Score |
|---|---|
| MedQA (USMLE) | 87.7% |
| EHRQA | 90.0% |
| Path-VQA | 72.2% |
| AfriMed-QA | 78.8% |
โ๏ธ Medical Specialties
Trained coverage across 21+ medical specialties:
| Cardiology | Neurology | Pulmonology | Gastroenterology |
| Endocrinology | Nephrology | Hematology | Oncology |
| Ophthalmology | Dermatology | Orthopedics | Pediatrics |
| OB/GYN | Psychiatry | Surgery | Emergency Medicine |
| Infectious Disease | Rheumatology | Radiology | Pathology |
| Pharmacology | Anatomy | Biochemistry | Forensic Medicine |
โ ๏ธ Limitations & Ethical Considerations
Important Disclaimers
โ ๏ธ Sanad-1.0 is an AI assistant designed to support healthcare professionals. It is NOT a replacement for clinical judgment.
- Not for self-diagnosis. Patients should always consult qualified healthcare providers.
- Training data limitations. May not represent all populations, conditions, or clinical settings equally.
- Arabic coverage depth. Arabic medical capabilities may not fully match English-language depth in all specialties.
- No real-time data. Does not access real-time medical literature, drug interaction databases, or patient records.
- Potential for errors. Like all AI models, Sanad-1.0 may produce incorrect or incomplete information.
Intended Use
โ Clinical decision support for licensed healthcare professionals โ Medical education and training โ Clinical documentation assistance โ Research and academic applications
Out-of-Scope Uses
โ Direct patient-facing medical advice without physician oversight โ Emergency medical decision-making as sole source โ Legal or forensic medical opinions โ Prescribing medications without physician review
๐ Citation
@misc{sanad1-2025,
title={Sanad-1.0: A Fine-Tuned Clinical AI Model for Medical Diagnosis, Transcription, and Arabic Medical Support},
author={360kaUser},
year={2025},
publisher={HuggingFace},
url={https://huggingface.co/360kaUser/Sanad-1.0},
note={Fine-tuned from google/medgemma-27b-text-it on 551K medical examples using 4-stage QLoRA}
}
๐ Acknowledgments
- Google Health AI โ MedGemma base model
- Unsloth โ Efficient fine-tuning framework
- All dataset creators and contributors listed in the Training Data section
- The open-source medical AI community
Sanad-1.0 โ ุณูุฏ
Your AI pillar of clinical support