🏥 Sanad-1.0 — Clinical AI Assistant

Base Model Parameters Precision Training Data Languages License

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:

CardiologyNeurologyPulmonologyGastroenterology
EndocrinologyNephrologyHematologyOncology
OphthalmologyDermatologyOrthopedicsPediatrics
OB/GYNPsychiatrySurgeryEmergency Medicine
Infectious DiseaseRheumatologyRadiologyPathology
PharmacologyAnatomyBiochemistryForensic 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

Downloads last month
84
Safetensors
Model size
27B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 1 Ask for provider support

Model tree for 360kaUser/Sanad-1.0

Finetuned
(20)
this model

Datasets used to train 360kaUser/Sanad-1.0

Evaluation results