| 名称 | medtech-model-evidence-export |
| 描述 | 从医疗AI推理运行或证据包中导出经过净化的元数据、参数、可复现性细节、质量指标和可选审查工件到MLflow。在推理后使用,包括NV-Generate运行;不用于实时训练跟踪、模型注册或临床使用。 |
| 开源协议 | Apache-2.0 allowed-tools: Bash permissions: [env, file_read, file_write, network, shell] metadata: |
| 作者 | “NVIDIA MedTech noreply@nvidia.com” |
医疗模型证据导出到MLflow
目的
在运行后将现有的医疗推理结果或证据包镜像到MLflow,并发出export_result JSON契约。保留原始证据包作为事实来源。训练技能应在其训练循环内添加MLflow。
说明
- 以默认的
dry-run模式运行scripts/export_evidence_pack.py。 - 检查
params、metrics、artifact_plan和mlflow.note.content。 - 仅在检查目标后选择
--mode local或--mode databricks。 - 除非目标被批准用于图像,否则保持
--artifact-policy metadata。 - 对于实时(live)模式中的
preview或all,还需传递--confirm-medical-artifact-upload。 - 保持
--source-ref、--note、配置文件名和工件文件名不包含患者或秘密标识符;务必先检查dry-run输出。
带有脚本助手的主机可以使用
run_script("scripts/export_evidence_pack.py", args=["PACK_OR_RESULT", "--mode", "dry-run"])。
可用脚本
| 脚本 | 用途 | 参数 |
|---|---|---|
scripts/export_evidence_pack.py |
通过MLflow导出事后推理证据。 | PACK_OR_RESULT --mode dry-run --artifact-policy metadata |
前提条件
- Python 3.10+。
- 对于
local或databricks模式,需要mlflow>=2.10,<4。 - 对于NIfTI质量指标和预览,需要
numpy>=1.24,<3和nibabel>=4,<6。 MLFLOW_TRACKING_URI可选择调用者管理的跟踪服务器。- Databricks模式使用调用者的
DATABRICKS_HOST、DATABRICKS_TOKEN或配置的Databricks配置文件。声明的网络端点是https://<caller-provided-mlflow-or-databricks-workspace>;不需要Docker和GPU。 - 本地模式可以在
<current-working-directory>/mlruns下写入MLflow存储。
示例
在未联系MLflow的情况下预览导出:
python skills/medtech-model-evidence-export/scripts/export_evidence_pack.py \
runs/inference_pack --mode dry-run --artifact-policy metadata
使用可复现性元数据直接导出NV-Generate结果:
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
记录下采样切片预览,但不记录原始NIfTI文件:
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额外上传发现或显式提供的NIfTI图像和掩码,受--max-artifact-mb限制。当结果JSON中不存在路径时,使用--image和--mask。
导出器记录:
- 标量运行和质量指标,包括CT的采样HU平均值/标准差/最小/最大值(否则为通用强度统计)、文档化的强度信噪比启发式、掩码前景百分比以及存在肿瘤标签映射时的映射肿瘤体积百分比;
- 生成参数、模型/检查点标识、RNG种子和配方哈希;
- 源配置摘要或
--source-ref,以及存在提示词时的提示词摘要; mlflow.note.content包含简短的人类可读运行摘要;- 默认情况下一个净化的元数据包,可选的PNG切片预览,以及仅在显式
all策略下的原始图像/掩码工件。
局限性
- 这是事后推理导出,不是实时训练曲线跟踪。
- 全局强度信噪比和下采样体积统计是工程检查,不是图像质量或临床性能声明。
- 预览和原始工件可能包含敏感的医疗信息。调用者必须在上传前批准目标和数据策略。
- 导出器不评估模型质量、注册模型或更改源证据包。
故障排除
| 错误 | 原因 | 修复 |
|---|---|---|
| 证据源无法识别 | 没有直接的结果JSON或包manifest.json。 |
传递结果文件、证据包目录或信任的运行根目录。 |
| MLflow导入失败 | 实时模式缺少声明的包。 | 安装mlflow>=2.10,<4或使用--mode dry-run。 |
| 预览/全部确认错误 | 实时图像上传未被确认。 | 检查目标,然后传递--confirm-medical-artifact-upload。 |
| 引用的图像未找到 | 推理后结果路径已移动。 | 使用--image和--mask传递当前路径。 |