Skip to content
louay_amor~
Feb – May 2026private repository

RetinaXAI

I turn vision models into clinical systemsI build more than a demo—every project gets services, registry, drift monitor, deploy pipeline

problem

The challenge: grading diabetic retinopathy must be accurate and stay reliable even with real clinical use

I focus on results you can trust, not just numbers

  • Handled 35,000+ fundus images from start to finish
  • Built grading and segmentation models with PyTorch and EfficientNet-B3
  • Explained each grade with Grad-CAM reviewed by clinicians
  • Generated RAG reports with strong grounding
  • Added 39 Prometheus metrics for live system health

pipeline

decisions

  1. Split inference, orchestration, and clinical reporting into separate services.

    tradeoffThree deploy units was harder to run locally than one monolith.

    outcomeGPU-heavy inference scales without holding augmenting training work; each service ships through its own channel with its own GitHub Actions workflow.

  2. Register every trained model to MLflow with evidently sessions attached.

    tradeoffExtra tracking ceremony on each run.

    outcomeA graded model can be traced to the exact augmented split and metric table that produced it, months after the fact.

  3. Instrument the inference service with 39 Prometheus metrics and 13 alerts.

    tradeoffNonzero overhead on the serving hot path.

    outcomeA model that stops flagging drift, accuracy regression, or OOM condition triggers a page instead of a silent regression discovered in review.

  4. Generate clinical reports via RAG over graded findings, not direct LLM generation.

    tradeoffAn extra retrieval and rerank step before generation.

    outcomeThe stated facts in a report come from graded findings, so hallucinated severity claims stay out of the record.

results

macro AUC
0.867
7,022 held-out test images
QWK
0.724
agreement with clinician grades
accuracy
78.7%
five-class severity grading
gross misgrading
0.85%
grade-assigned patients misclassified adjacent-severity
proliferative DR recall
64.5%
with grade-aware Grad-CAM
live metric series
542
across 39 registered metrics, 13 alerts

stack

Modeling

  • PyTorch
  • timm
  • EfficientNet-B3
  • U-Net
  • Grad-CAM

Training

  • EyePACS
  • stratified splits
  • ordinal loss
  • augmentation

MLOps

  • MLflow
  • Evidently
  • ChromaDB
  • LangChain
  • Mistral-7B

Serving

  • FastAPI
  • PostgreSQL 16
  • Docker
  • Kubernetes

Observability

  • Prometheus
  • Grafana
  • 13 alerts

Delivery

  • GitHub Actions
  • heroku.yml
  • deploy workflows per service