POC d'un agent IA de triage médical : fine-tuning SFT + DPO d'un LLM (Qwen3-1.7B)
Python, LLM, Fine-Tuning, LoRA, DPO, Hugging Face, vLLM, MLOps, Healthcare AI, RGPD
POC d'un Agent IA de Triage Médical (Fine-Tuning SFT + DPO)
Présentation
Ce projet met en œuvre le cycle complet de spécialisation d'un LLM pour un cas d'usage clinique sensible : assister le personnel soignant d'un service d'urgences hospitalier dans le triage initial des patients. L'objectif est de transformer un modèle de base généraliste (Qwen3-1.7B-Base) en un agent capable d'évaluer un niveau de priorité médicale, en respectant une méthodologie rigoureuse — de la constitution du corpus jusqu'au déploiement d'un endpoint de démonstration.
Le projet applique les bonnes pratiques du fine-tuning de LLM et du MLOps en contexte médical, avec une attention particulière portée à la conformité RGPD, à la traçabilité des expérimentations et à l'honnêteté sur les limites cliniques du système.
Objectifs
- Constituer un corpus médical bilingue (français/anglais), anonymisé et conforme RGPD, pour l'entraînement SFT et l'alignement DPO.
- Spécialiser un modèle de base par fine-tuning supervisé (SFT) avec adaptation LoRA.
- Aligner le comportement du modèle sur les pratiques cliniques validées via Direct Preference Optimization (DPO).
- Déployer un endpoint de démonstration optimisé pour l'inférence (vLLM), intégré à un pipeline CI/CD.
- Évaluer objectivement les performances et formuler des recommandations honnêtes pour un passage à l'échelle.
Compétences démontrées
Constitution et gouvernance d'un corpus médical
- Agrégation de corpus médicaux bilingues issus de sources hétérogènes (MediQA, FrenchMedMCQA, MedQuAD, UltraMedical-Preference).
- Production d'environ 5 000 paires instruction-réponse pour le SFT et constitution d'un jeu de paires préférentielles validées cliniquement pour le DPO.
- Anonymisation des données personnelles avec Presidio (AnalyzerEngine + AnonymizerEngine), test de plusieurs stratégies de masquage et contrôle qualité de l'anonymisation.
- Définition d'un schéma de métadonnées (symptômes, antécédents, constantes vitales, source, niveau de confiance) et documentation du processus RGPD.
- Séparation stricte des jeux train/val/test et des jeux d'évaluation clinique, avec traçabilité de chaque transformation.
Fine-tuning supervisé (SFT) et adaptation LoRA
- Fine-tuning du modèle Qwen3-1.7B-Base sur le corpus médical constitué, avec adaptation par LoRA pour limiter l'empreinte GPU.
- Validation par petits runs avant montée en charge, mise en place de checkpoints reproductibles.
- Enregistrement systématique des hyperparamètres et seeds pour chaque version entraînée, tracking via MLflow / Weights & Biases.
- Vigilance active sur le risque de sur-apprentissage sur les exemples annotés.
Alignement par préférences (DPO)
- Entraînement DPO du modèle SFT à partir des paires préférentielles du dataset UltraMedical-Preference.
- Objectif d'alignement clinique : apprendre au modèle à distinguer une réponse de qualité d'une réponse incorrecte ou dangereuse.
- Contrôles de sécurité dédiés (détection d'hallucinations, de recommandations potentiellement dangereuses).
Déploiement et industrialisation (MLOps)
- Conteneurisation de l'application (Docker) et exposition via une API FastAPI optimisée par vLLM pour l'inférence.
- Automatisation du déploiement via un pipeline CI/CD (GitHub Actions), incluant tests et déploiement de nouvelles versions du modèle.
- Tests de latence et de robustesse en conditions quasi réelles, avec traçabilité complète des interactions pour les audits médicaux.
- Protection des secrets et des accès aux endpoints, documentation des limites d'usage pour les utilisateurs.
Évaluation et restitution stratégique
- Analyse critique des métriques de performance (latence, pertinence clinique) avec cohérence entre les verdicts Go/No-Go et les résultats mesurés.
- Rédaction d'un rapport technique de synthèse, incluant une revue par les pairs de la conclusion pour garantir la cohérence des métriques présentées.
- Formulation de recommandations honnêtes sur les écarts de performance clinique et une roadmap de passage à l'échelle (modèles 32B+, données étendues).
Architecture
Corpus médicaux bruts (MediQA, FrenchMedMCQA,
MedQuAD, UltraMedical-Preference)
│
▼
Anonymisation RGPD (Presidio)
│
▼
Structuration : dataset SFT (~5000 paires)
+ dataset DPO (paires préférentielles)
│
▼
Fine-tuning SFT (Qwen3-1.7B-Base + LoRA)
│
▼
Alignement par préférences (DPO)
│
▼
Validation clinique & contrôles
de sécurité (hallucinations)
│
▼
Conteneurisation (Docker) + API FastAPI
Inférence optimisée (vLLM)
│
▼
Pipeline CI/CD (GitHub Actions)
│
▼
Endpoint pilote + rapport & recommandations
Stack technique
Fine-tuning & alignement
- PyTorch, Hugging Face Transformers
- PEFT (LoRA)
- DPO (Direct Preference Optimization)
Données & conformité
- Hugging Face Datasets
- Presidio (anonymisation RGPD)
Suivi d'expérimentation
- MLflow / Weights & Biases
Déploiement & inférence
- vLLM
- Docker, FastAPI
CI/CD
- GitHub Actions
Livrables
- Dataset médical bilingue anonymisé et versionné
- Modèle Qwen3-1.7B fine-tuné (SFT + DPO), poids fournis
- Endpoint de démonstration déployé
- Pipeline CI/CD automatisé
- Rapport technique et recommandations stratégiques
Bonnes pratiques appliquées
- Anonymisation systématique et documentée des données personnelles avant tout entraînement
- Séparation stricte des données d'entraînement et d'évaluation
- Traçabilité complète des expérimentations (hyperparamètres, seeds, checkpoints)
- Contrôles de sécurité dédiés au risque clinique (hallucinations, recommandations dangereuses)
- Cohérence rigoureuse entre métriques mesurées et verdicts formulés dans le rapport final
- Documentation explicite des limites d'usage du système pour les utilisateurs finaux
- Approche progressive (validation conceptuelle → optimisation ciblée → projection industrielle)
Résultats
À l'issue de ce projet, le système permet de :
- démontrer la faisabilité technique d'un agent IA de triage médical sur un modèle compact ;
- quantifier le gain apporté par le fine-tuning SFT et l'alignement DPO par rapport au modèle de base ;
- exposer un endpoint pilote optimisé pour l'inférence en conditions quasi réelles ;
- garantir la traçabilité de chaque interaction pour les audits médicaux ;
- fournir une évaluation honnête des écarts de performance clinique et une trajectoire crédible vers la mise en production.
Compétences acquises
- Fine-tuning de LLM (SFT) et adaptation par LoRA
- Alignement de modèles par préférences humaines (DPO)
- Anonymisation et gouvernance de données médicales sensibles (RGPD)
- Suivi et traçabilité d'expérimentations ML (MLflow / W&B)
- Déploiement d'inférence optimisée (vLLM) et industrialisation MLOps
- Mise en place de pipelines CI/CD pour des modèles de langage
- Évaluation critique de performance clinique et communication de résultats à des parties prenantes métier