Export de preuves de modèle médical vers MLflow
Objectif
Refléter un résultat d'inférence médicale existant ou un pack de preuves dans MLflow après l'exécution et émettre le contrat JSON export_result. Conserver le pack de preuves original comme source de vérité. Les skills d'entraînement doivent ajouter MLflow dans leurs boucles d'entraînement à la place.
Instructions
- Exécutez
scripts/export_evidence_pack.pyen modedry-runpar défaut. - Inspectez
params,metrics,artifact_planetmlflow.note.content. - Choisissez
--mode localou--mode databricksuniquement après avoir vérifié la cible. - Conservez
--artifact-policy metadatasauf si la cible est approuvée pour les images. - Pour
previewouallen mode live, passez également--confirm-medical-artifact-upload. - Gardez
--source-ref,--note, les noms de fichiers de configuration et les noms de fichiers d'artifacts libres d'identifiants patient ou secret ; vérifiez toujours d'abord la sortie du dry-run.
Les hôtes avec un assistant de script peuvent utiliser
run_script("scripts/export_evidence_pack.py", args=["PACK_OR_RESULT", "--mode", "dry-run"]).
Scripts disponibles
| Script | Objectif | Arguments |
|---|---|---|
scripts/export_evidence_pack.py |
Exporter les preuves d'inférence post-hoc via MLflow. | PACK_OR_RESULT --mode dry-run --artifact-policy metadata |
Prérequis
- Python 3.10+.
mlflow>=2.10,<4pour le modelocaloudatabricks.numpy>=1.24,<3etnibabel>=4,<6pour les métriques de qualité NIfTI et les aperçus.MLFLOW_TRACKING_URIpeut sélectionner un serveur de suivi géré par l'appelant.- Le mode Databricks utilise
DATABRICKS_HOST,DATABRICKS_TOKENde l'appelant, ou un profil Databricks configuré. Le point de terminaison réseau déclaré esthttps://<caller-provided-mlflow-or-databricks-workspace>; Docker et GPU ne sont pas requis. - Le mode local peut écrire le magasin MLflow sous
<current-working-directory>/mlruns.
Exemples
Prévisualisez l'export sans contacter MLflow :
python skills/medtech-model-evidence-export/scripts/export_evidence_pack.py \
runs/inference_pack --mode dry-run --artifact-policy metadata
Exportez un résultat NV-Generate direct avec métadonnées de reproductibilité :
python skills/medtech-model-evidence-export/scripts/export_evidence_pack.py \
runs/nv-generate/result.json \
--mode local \
--experiment-name medical-ai-inference \
--config configs/chest_lung_tumor.json \
--seed 0 \
--source-ref git:61c4ec709b84cad468852243c48e250bec732074
Enregistrez des aperçus de tranches sous-échantillonnées, mais pas les fichiers NIfTI bruts :
python skills/medtech-model-evidence-export/scripts/export_evidence_pack.py \
runs/nv-generate/result.json \
--mode databricks \
--experiment-name /Shared/medical-ai-inference \
--artifact-policy preview \
--confirm-medical-artifact-upload
--artifact-policy all télécharge en outre les images et masques NIfTI découverts ou explicitement fournis, sous réserve de --max-artifact-mb. Utilisez --image et --mask quand les chemins ne sont pas présents dans le JSON de résultat.
L'exportateur enregistre :
- les métriques d'exécution et de qualité scalaires, y compris les statistiques HU moyennes/std/min/max échantillonnées pour CT (statistiques d'intensité génériques sinon), une heuristique SNR d'intensité documentée, le pourcentage de premier plan du masque et le pourcentage de volume tumoral mappé quand un mapping d'étiquette tumorale est disponible ;
- les paramètres de génération, l'identité du modèle/checkpoint, la graine RNG et le hash de recette ;
- le digest de configuration source ou
--source-ref, plus un digest de prompt si présent ; mlflow.note.contentavec un court résumé lisible par l'humain ;- un bundle de métadonnées désinfecté par défaut, des aperçus de tranches PNG optionnels et des artifacts image/masque bruts uniquement sous la politique
allexplicite.
Limitations
- C'est un export d'inférence post-hoc, non un suivi de courbe d'entraînement en direct.
- Les statistiques de volume SNR d'intensité globale et sous-échantillonnées sont des vérifications d'ingénierie, non des revendications de qualité d'image ou de performance clinique.
- Les aperçus et artifacts bruts peuvent contenir des informations médicales sensibles. L'appelant doit approuver la destination et la politique de données avant le téléchargement.
- L'exportateur n'évalue pas la qualité du modèle, n'enregistre pas les modèles et n'altère pas le pack de preuves source.
Dépannage
| Erreur | Cause | Solution |
|---|---|---|
| Source de preuves non reconnue | Pas de JSON de résultat direct ou de manifest.json de pack. |
Passez le fichier de résultat, le répertoire du pack de preuves ou la racine d'exécution de confiance. |
| L'import MLflow échoue | Le mode live manque du package déclaré. | Installez mlflow>=2.10,<4 ou utilisez --mode dry-run. |
| Erreur de confirmation preview/all | Un téléchargement d'image live n'a pas été reconnu. | Vérifiez la destination, puis passez --confirm-medical-artifact-upload. |
| Image référencée non trouvée | Les chemins de résultats ont bougé après l'inférence. | Passez les chemins actuels avec --image et --mask. |