使用 NVIDIA Clara 構(gòu)建的醫(yī)療成像 AI 模型現(xiàn)在可以在云計(jì)算的 MD.ai 上本地運(yùn)行,從而使用現(xiàn)代 web 瀏覽器實(shí)現(xiàn)協(xié)作模型驗(yàn)證和快速注釋項(xiàng)目。這些 NVIDIA Clara 模型可免費(fèi)用于任何 MD.ai 合作研究項(xiàng)目,如器官或腫瘤分割。
人工智能解決方案已被證明有助于簡化放射學(xué)和企業(yè)成像工作流程。然而,創(chuàng)建、共享、測(cè)試和縮放計(jì)算機(jī)視覺模型的過程并不像所有模式、條件和結(jié)果那樣簡化。需要幾個(gè)關(guān)鍵組件來創(chuàng)建穩(wěn)健的模型,并支持最多樣化的采集設(shè)備和患者群體。這些關(guān)鍵組件可以包括為未注成像研究創(chuàng)建基本事實(shí)的能力,以及在全球范圍內(nèi)合作評(píng)估模型與驗(yàn)證數(shù)據(jù)的使用的能力。
MD.ai 的實(shí)時(shí)協(xié)作標(biāo)注平臺(tái)和英偉達(dá) Clara 深度學(xué)習(xí)培訓(xùn)框架有助于創(chuàng)建更健壯的模型構(gòu)建和協(xié)作。
在這篇文章中,我們將介紹 Clara Train MMAR 的基礎(chǔ)知識(shí),以及準(zhǔn)備使用 MD.ai 所需的步驟。只需幾個(gè)步驟,您就可以在 MD.ai 上部署這些預(yù)訓(xùn)練模型中的任何一個(gè),以實(shí)現(xiàn)無縫的基于 web 的評(píng)估和協(xié)作。在 MD.ai 上部署之后,這些模型可以用于任何現(xiàn)有或新的 MD.ai 項(xiàng)目。
圖 1 。培訓(xùn)和驗(yàn)證 AI 模型所需的工作流程 。
NVIDIA Clara Train
Clara 訓(xùn)練框架是一個(gè)基于 Python 的應(yīng)用程序包 NVIDIA Clara Train SDK. 該框架旨在基于 NVIDIA 研究人員內(nèi)部構(gòu)建的優(yōu)化、即用、預(yù)訓(xùn)練的醫(yī)學(xué)成像模型,在醫(yī)學(xué)成像領(lǐng)域快速實(shí)施深度學(xué)習(xí)解決方案。
Clara 培訓(xùn)框架使用模型的標(biāo)準(zhǔn)結(jié)構(gòu) 醫(yī)學(xué)模型檔案 ( MMAR ),其中包含預(yù)培訓(xùn)模型以及定義用于培訓(xùn)、微調(diào)、驗(yàn)證和推理的端到端開發(fā)工作流的腳本。
圖 2.Clara Train SDK 和 MONAI 深度學(xué)習(xí)框架高級(jí)架構(gòu)。
Clara Train v4.0 + SDK 使用基于組件的體系結(jié)構(gòu),該體系結(jié)構(gòu)構(gòu)建于基于 PyTorch 的開源框架 MONAI (人工智能醫(yī)療開放網(wǎng)絡(luò)) 。 MONAI 提供了醫(yī)療成像領(lǐng)域優(yōu)化的基礎(chǔ)功能,可用于在本機(jī) PyTorch 范式中構(gòu)建培訓(xùn)工作流。 Clara Train SDK 使用這些基礎(chǔ)組件(如優(yōu)化的數(shù)據(jù)加載程序、轉(zhuǎn)換、丟失函數(shù)、優(yōu)化器和度量)來實(shí)現(xiàn)打包為 MMAR 的端到端培訓(xùn)工作流。
MD.ai
MD.ai 提供了一個(gè)基于 web 的云本地注釋平臺(tái),支持臨床醫(yī)生和研究人員團(tuán)隊(duì)之間通過共享工作空間進(jìn)行實(shí)時(shí)協(xié)作。您還可以加載多個(gè)深度學(xué)習(xí)模型以進(jìn)行實(shí)時(shí)評(píng)估。
該平臺(tái)為數(shù)據(jù)集構(gòu)建和 AI 項(xiàng)目創(chuàng)建提供了一個(gè)簡單無縫的界面。它為用戶提供了一套廣泛的工具,用于注釋數(shù)據(jù)和構(gòu)建機(jī)器學(xué)習(xí)算法,以加速人工智能在醫(yī)學(xué)中的應(yīng)用,特別關(guān)注醫(yī)學(xué)成像。
圖 3 。顯示大腦分割的 MD.ai 用戶界面 。
將此功能與在 MD.ai 平臺(tái)上快速部署 Clara 訓(xùn)練模型 MMAR 的能力相結(jié)合,可以為您提供一個(gè)端到端的工作流,該工作流涵蓋快速模型開發(fā)、模型訓(xùn)練、微調(diào)、推理以及快速評(píng)估和可視化。這種端到端的能力簡化了模型從研發(fā)到生產(chǎn)的過程。
解決方案概述
Clara Train 的起點(diǎn)是NGC Clara Train 采集。 在這里,您可以找到 Clara Train SDK 容器、一組免費(fèi)提供的、經(jīng)過預(yù)訓(xùn)練的模型,以及一組 Jupyter 筆記本電腦,其中介紹了 SDK 的主要概念。所有 Clara Train 模型共享前面提到的 MMAR 格式。
Clara Train MMAR 定義了一個(gè)標(biāo)準(zhǔn)結(jié)構(gòu),用于存儲(chǔ)定義模型開發(fā)工作流所需的文件,以及執(zhí)行模型進(jìn)行驗(yàn)證和推斷時(shí)生成的文件。該結(jié)構(gòu)定義如下:
ROOT config config_train.json config_finetune.json config_inference.json config_validation.json config_validation_ckpt.json environment.json commands set_env.sh train.sh train with single GPU train_multi_gpu.sh train with 2 GPUs finetune.sh transfer learning with CKPT infer.sh inference with TS model validate.sh validate with TS model validate_ckpt.sh validate with CKPT validate_multi_gpu.sh validate with TS model on 2 GPUs validate_multi_gpu_ckpt.sh validate with CKPT on 2 GPUs export.sh export CKPT to TS model resources log.config ... docs license.txt Readme.md ... models model.pt model.ts final_model.pt eval all evaluation outputs: segmentation / classification results metrics reports, etc.
所有提供用于 Clara Train 的預(yù)訓(xùn)練模型,以及使用 Clara Train 框架開發(fā)的自定義模型都使用此結(jié)構(gòu)。為了準(zhǔn)備與 MD.ai 一起使用的 MMAR ,我們假設(shè)一個(gè)預(yù)先訓(xùn)練的模型,并將重點(diǎn)放在部署的幾個(gè)關(guān)鍵組件上。
第一個(gè)組件是 environment.json 文件,它定義了模型的公共參數(shù),包括數(shù)據(jù)集路徑和模型檢查點(diǎn)。例如, Clara 序列分段任務(wù)中的 environment.json 文件定義了以下參數(shù):
{ "DATA_ROOT": "/workspace/data/Task09_Spleen_nii", "DATASET_JSON": "/workspace/data/Task09_Spleen_nii/dataset_0.json", "PROCESSING_TASK": "segmentation", "MMAR_EVAL_OUTPUT_PATH": "eval", "MMAR_CKPT_DIR": "models", "MMAR_CKPT": "models/model.pt" "MMAR_TORCHSCRIPT": "models/model.ts" }
準(zhǔn)備與 MD.ai 集成的模型時(shí),請(qǐng)確保 MMAR 的models/
目錄中包含經(jīng)過培訓(xùn)的MMAR_CKPT
和MMAR_TORCHSCRIPT
。它們分別通過執(zhí)行捆綁的train.sh
和export.sh
生成。
-
train.sh
腳本執(zhí)行模型訓(xùn)練,這需要輸入數(shù)據(jù)集使用DATA_ROOT
和DATASET_JSON
,并生成 MMAR _ CKPT 。 -
infer.sh
腳本將此檢查點(diǎn)序列化到用于推斷的MMAR_TORCHSCRIPT
中。
對(duì)于預(yù)訓(xùn)練模型,提供了檢查點(diǎn)和 TorchScript ,您可以關(guān)注推理管道。使用 MMAR 的infer.sh
腳本執(zhí)行推斷:
1 #!/usr/bin/env bash 2 my_dir="$(dirname "$0")" 3 . $my_dir/set_env.sh 4 echo "MMAR_ROOT set to $MMAR_ROOT" 5 6 CONFIG_FILE=config/config_validation.json 7 ENVIRONMENT_FILE=config/environment.json 8 python3 -u -m medl.apps.evaluate \ 9 -m $MMAR_ROOT \ 10 -c $CONFIG_FILE \ 11 -e $ENVIRONMENT_FILE \ 12 --set \ 13 DATASET_JSON=$MMAR_ROOT/config/dataset_0.json \ 14 output_infer_result=true \ 15 do_validation=false
此腳本對(duì)environment.json中定義的完整數(shù)據(jù)集的config_validation.json中定義的驗(yàn)證子集進(jìn)行推斷。如果參考測(cè)試數(shù)據(jù)隨 MMAR 一起提供,則必須定義該數(shù)據(jù)的路徑。集成 MMAR 時(shí), MD.ai 直接處理數(shù)據(jù)集,這些值作為集成的一部分被覆蓋。
要在 MD.AI 上部署您自己的預(yù)訓(xùn)練 AI 模型進(jìn)行推理,您必須已經(jīng)有一個(gè)現(xiàn)有項(xiàng)目或在平臺(tái)上創(chuàng)建一個(gè)新項(xiàng)目。項(xiàng)目還必須包含用于測(cè)試模型的數(shù)據(jù)集。有關(guān)更多信息,請(qǐng)參閱 立項(xiàng) 。
接下來,要部署 AI 模型,必須將推理代碼轉(zhuǎn)換為與平臺(tái)兼容的特定格式。以下文件是成功部署的最低要求:
config.yaml
mdai_deploy.py
requirements.txt
model-weights
對(duì)于 NVIDIA Clara 型號(hào),我們已為您進(jìn)一步簡化了此功能,無需從頭開始編寫這些文件。我們?yōu)?NGC 目錄支持的每個(gè)不同類別的深度學(xué)習(xí)模型提供了框架代碼:分類、分段等。您可以下載特定于模型的框架代碼,進(jìn)行一些調(diào)整,這些調(diào)整將在本文后面介紹,然后將模型上傳到 MD.ai 上進(jìn)行推斷。
推理步驟
準(zhǔn)備好 MMAR 后,下面介紹如何直接使用它在 MD.ai 上運(yùn)行模型。這篇文章將引導(dǎo)您了解一個(gè)已經(jīng)部署在平臺(tái)上的示例細(xì)分模型 在 MD.ai 上運(yùn)行分段模型的框架代碼 ,它實(shí)際上是 NVIDIA 的 CT spleen segmentation 模型的代碼。
現(xiàn)在,要使用相同的 MMAR 格式部署 肝臟和腫瘤分割 模型,請(qǐng)執(zhí)行以下步驟:
- 下載分割模型的框架代碼。
- 從 NGC 目錄下載用于肝臟和腫瘤分割模型的 MMAR。
-
在下載的框架代碼中,用下載的 MMAR 文件夾替換
/workspace/clara_pt_spleen_ct_segmentation_1
文件夾。 -
在
/workspace/config_mdai.json
文件中,進(jìn)行以下更改:
1 { 2 “type” : “segmentation”, 3 “root_folder”: “clara_pt_spleen_ct_segmentation_1”, 4 “out_classes” : 2, 5 “data_list_key”: “test” 6 }
- root_folder– 將此鍵值替換為下載的 MMAR 文件夾的名稱,例如肝臟和腫瘤示例的 clara _ pt _ liver _和_ tumor _ ct _ segmentation _ 1 。
- out_classes– 將此值替換為模型的輸出類數(shù),如本例中的 3 (背景: 0 、肝臟: 1 和腫瘤: 2 )。
- data_list_key– 替換為 MMAR 的 config / config _ interference.json 文件的 data _ list _ key 屬性中提到的密鑰名稱,例如 testing 。
-
在
/mdai
文件夾中,進(jìn)行以下更改:
-
在
config.yaml
文件,中,將clara_version
鍵更改為您的模型使用的適當(dāng)版本(例如, 3.1.01 或 4.0 )。
1 base_image: nvidia 2 clara_version: 4.0 3 device_type: gpu
- 在[EZX29 ],中添加了任何額外的依賴項(xiàng),比英偉達(dá) Clara 基本圖像和文件中已經(jīng)存在的那些依賴性要多。
這將為您的模型在 MD.ai 上的部署做好準(zhǔn)備。脾臟和肝臟腫瘤分割模型都已部署在 MD.ai 平臺(tái)上,并且是 可供評(píng)估 。
分類模型也可以執(zhí)行類似的步驟,盡管我們正在努力進(jìn)一步簡化這種集成。有關(guān)將胸部 X 光分為 15 種異常的示例 NVIDIA 模型的骨架代碼,請(qǐng)參見 GitHub 上的 示例:用于胸部 x 光疾病分類的 NVIDIA MMAR 。該型號(hào)也是 部署在公共站點(diǎn)上 。
當(dāng)代碼準(zhǔn)備就緒時(shí),必須將其包裝在 zip 文件中,以便將其上載到 MD.ai 上進(jìn)行推斷。
您的模型現(xiàn)在可以在 MD.ai 中對(duì)您選擇的任何數(shù)據(jù)集進(jìn)行嘗試了!
最好的是,所有模型只需在MD.ai平臺(tái)上部署一次。一旦NVIDIA Clara 模型部署到MD.ai上,它就可以通過使用模型克隆功能在任何MD.ai項(xiàng)目中使用。下面是一個(gè)例子,通過復(fù)制[EZX37 ]值,將英偉達(dá)肝分割模型克隆為一個(gè)新的MD AI項(xiàng)目:
未來特征
我們正致力于簡化集成,以盡量減少部署 MMAR 所需的步驟,并計(jì)劃消除所有代碼修改,以便只需單擊一個(gè)按鈕即可輕松部署。
MD.ai 計(jì)劃預(yù)先部署 NGC 上可用的所有模型,以便您可以通過從我們的公共項(xiàng)目克隆直接使用它們,從而避免您自己部署 MMAR 的過程。我們還將創(chuàng)建 NVIDIA Clara 入門包,這樣您就可以輕松地開始使用預(yù)裝到項(xiàng)目中的選定型號(hào)。
另一個(gè)重要的計(jì)劃是增加對(duì)在 MD.AI 上訓(xùn)練 AI 模型的支持。當(dāng)我們有了這個(gè)平臺(tái),您可以有效地使用英偉達(dá) AI 輔助注釋產(chǎn)品在平臺(tái)上幫助用戶注釋得更快更容易,而不是從頭開始。
總結(jié)
在本文中,我們重點(diǎn)介紹了每個(gè)平臺(tái)的關(guān)鍵組件以及在 MD.ai 上快速部署使用 NVIDIA Clara 構(gòu)建的醫(yī)療成像模型所需的步驟。
關(guān)于作者
Chinmay Singhal 是 MD.ai 的機(jī)器學(xué)習(xí)工程師。他的工作圍繞 MD.ai 機(jī)器學(xué)習(xí)模型部署平臺(tái)的設(shè)計(jì)和開發(fā)展開。他在紐約大學(xué)獲得了數(shù)據(jù)科學(xué)碩士學(xué)位,專注于深度學(xué)習(xí)。
Leon Chen 是 MD.ai 的聯(lián)合創(chuàng)始人兼首席執(zhí)行官,負(fù)責(zé)構(gòu)建醫(yī)療 ai 的未來 IDE 。他是哈佛大學(xué)培訓(xùn)的內(nèi)科醫(yī)生、 Kaggle 碩士、 Keras.js 等流行開源軟件的創(chuàng)造者和電子音樂家。
Kris Kersten 是 NVIDIA 的解決方案架構(gòu)師,專注于 AI ,致力于擴(kuò)展 ML 和 DL 解決方案,以解決當(dāng)今醫(yī)療領(lǐng)域最緊迫的問題。在加入 NVIDIA 之前, Kris 曾在 Cray 超級(jí)計(jì)算機(jī)公司工作,研究從低級(jí)緩存基準(zhǔn)測(cè)試到大規(guī)模并行模擬的硬件和軟件性能特征。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4989瀏覽量
103074 -
云計(jì)算
+關(guān)注
關(guān)注
39文章
7823瀏覽量
137417 -
AI
+關(guān)注
關(guān)注
87文章
30898瀏覽量
269128
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論