0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于醫(yī)療圖像的深度學(xué)習(xí)開源框架

科技綠洲 ? 來源:NVIDIA英偉達(dá) ? 作者:NVIDIA英偉達(dá) ? 2022-04-07 10:27 ? 次閱讀

一個(gè)完整的醫(yī)療影像推理流程一般包含數(shù)據(jù)的前處理、AI 推理以及數(shù)據(jù)后處理這幾部分。通常情況下,我們可以通過 TensorRT, TensorFlow 或者 PyTorch 這些框架來實(shí)現(xiàn) GPU 加速的 AI 推理部分,然而數(shù)據(jù)前后處理部分往往是放在 CPU 上執(zhí)行的。對(duì)于一些比較大的數(shù)據(jù),比如 CT 或者 MR 這種 3D 圖像,CPU 上的數(shù)據(jù)前后處理會(huì)成為整個(gè)推理流程的瓶頸,導(dǎo)致推理的時(shí)延變長,GPU 使用效率不高。醫(yī)療影像推理的另一個(gè)需要考慮的問題是如何實(shí)現(xiàn)高效的部署。我們往往需要部署多個(gè)醫(yī)療影像 AI 應(yīng)用,那么如何去調(diào)度多個(gè)模型,如何并發(fā)處理多個(gè)請求,并充分利用 GPU 資源成為挑戰(zhàn)。

什么是 MONAI

MONAI 是一個(gè)專門針對(duì)醫(yī)療圖像的深度學(xué)習(xí)開源框架。MONAI 致力于:

發(fā)展一個(gè)學(xué)術(shù)界、工業(yè)界和臨床研究人員共同合作的社區(qū);

為醫(yī)療圖像創(chuàng)建最先進(jìn)的端到端工作流;

為研究人員提供創(chuàng)建和評(píng)估深度學(xué)習(xí)模型的優(yōu)化和標(biāo)準(zhǔn)化的方法。

MONAI 中包含一系列的 transforms 對(duì)醫(yī)療圖像數(shù)據(jù)進(jìn)行前后處理。在 MONAI 0.7 中,我們在 transforms 中引入基于 PyTorch Tensor 的計(jì)算,許多 transforms 既支持 NumPy array,也支持 PyTorch Tensor 作為輸入類型和計(jì)算后端。當(dāng)以 PyTorch Tensor 作為輸入數(shù)據(jù)時(shí),我們可以使用 GPU 來加速數(shù)據(jù)前后處理的計(jì)算。

什么是 NVIDIA Triton 推理服務(wù)器

Triton 推理服務(wù)器是一個(gè)開源的 AI 模型部署軟件,可以簡化深度學(xué)習(xí)推理的大規(guī)模部署。它能夠?qū)Χ喾N框架(TensorFlow、TensorRT、PyTorch、ONNX Runtime 或自定義框架),在任何基于 GPU 或 CPU 的環(huán)境上(云、數(shù)據(jù)中心、邊緣)大規(guī)模部署經(jīng)過訓(xùn)練的 AI 模型。Triton 可提供高吞吐量推理,以實(shí)現(xiàn) GPU 使用率的最大化。

在較新的版本中,Triton 增加了 Python backend 這一新特性,Python backend 的目標(biāo)是讓使用者可以更加容易的部署 Python 寫的模型,無需再去編寫任何 C++ 代碼。在一些場景下,我們的推理流程中可能會(huì)出現(xiàn)循環(huán)、條件判斷、依賴于運(yùn)行時(shí)數(shù)據(jù)的控制流和其他自定義邏輯與模型混合執(zhí)行。使用 Triton Python backend,開發(fā)人員可以更加容易地在自己的推理流程中實(shí)現(xiàn)這些控制流,并且在 Python 模型中調(diào)用 Triton 部署的其他模型。

使用 MONAI 和 Triton 高效搭建和部署 GPU 加速的醫(yī)療影像推理流程

在本文介紹的例子中,我們將使用 MONAI 中 GPU 加速的數(shù)據(jù)處理以及 Triton 的 Python backend 來構(gòu)建一個(gè) GPU 加速的醫(yī)療影像推理流程。通過這個(gè)例子,讀者可以了解到,在 GPU 上進(jìn)行數(shù)據(jù)處理所帶來的性能增益,以及如何使用 Triton 進(jìn)行高效的推理部署。

整個(gè)推理流程如下圖所示,包含數(shù)據(jù)預(yù)處理,AI 模型推理,和數(shù)據(jù)后處理三部分。

poYBAGJOS2uATpffAABiV1WiS1c316.png

通過 EnsureType 這個(gè) transform,我們將輸入數(shù)據(jù)轉(zhuǎn)換成 PyTorch Tensor 并放到 GPU 上,這樣之后的數(shù)據(jù)預(yù)處理操作都會(huì)在 GPU 上進(jìn)行。我們使用 Triton 的 Torch backend 來作為 3DUnet 的推理后端,輸出的結(jié)果為 GPU 上的 Torch Tensor,并作為后處理模塊的輸入,在 GPU 上進(jìn)行后處理計(jì)算。

使用 Triton 的 Python backend,我們可以非常容易的將整個(gè)流程串聯(lián)起來,即:按照 Triton Python backend 要求的模型結(jié)構(gòu)構(gòu)建前后處理的 Python 代碼,并在其中調(diào)用 3DUnet 的推理。以下是我們例子中的代碼片段。

poYBAGJOS5eAMny-AABypJrUjdg017.png

pYYBAGJOS7qAN2UEAACfh8SRwIw492.png

poYBAGJOS9mAaaQjAABme3OM1uo123.png

以 MSD Spleen 3D 數(shù)據(jù)作為輸入,經(jīng)過整個(gè)推理流程,將得到分割后的脾臟區(qū)域以及其輪廓。

poYBAGJOTACAWpo0AABesPaaKaw293.png

性能測試

我們在 RTX 8000 上對(duì)整個(gè)推理流程進(jìn)行了性能測試,以了解 Triton 及 MONAI 不同特性對(duì)性能的影響。

HTTP vs. gRPC vs. shared memory

目前 Triton 支持 HTTP, gRPC 和共享內(nèi)存等方式進(jìn)行數(shù)據(jù)通信。由于三維醫(yī)學(xué)圖像通常很大,通信帶來的開銷不容忽視。對(duì)于許多常見的醫(yī)學(xué)圖像人工智能應(yīng)用,客戶端與服務(wù)器位于同一臺(tái)機(jī)器上,因此使用共享內(nèi)存是減少發(fā)送/接收開銷的一種可行方法。在測試中,我們比較了客戶端和服務(wù)器之間使用不同通信方式對(duì)性能的影響。所有過程(前/后處理和AI推理)都在 GPU 上。我們可以得出結(jié)論,當(dāng)數(shù)據(jù)傳輸量很大時(shí),使用共享內(nèi)存將大大減少延遲。

poYBAGJOTAmAS6zJAAB09pI1hSM743.png

Pre/Post-processing on GPU vs. CPU

接著我們測試了分別在 GPU 和 CPU 進(jìn)行前后數(shù)據(jù)處理時(shí),整個(gè)推理流程的速度??梢钥吹?,當(dāng)使用 GPU 進(jìn)行數(shù)據(jù)處理時(shí),可以實(shí)現(xiàn) 12 倍的加速。

pYYBAGJOTBCAJyScAABpLNl58GM805.png

審核編輯:彭菁
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9234

    瀏覽量

    85638
  • 醫(yī)療
    +關(guān)注

    關(guān)注

    8

    文章

    1824

    瀏覽量

    58815
  • 數(shù)據(jù)通信
    +關(guān)注

    關(guān)注

    2

    文章

    432

    瀏覽量

    33793
  • 人工智能
    +關(guān)注

    關(guān)注

    1792

    文章

    47425

    瀏覽量

    238948
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Nanopi深度學(xué)習(xí)之路(1)深度學(xué)習(xí)框架分析

    就能實(shí)現(xiàn)!還請關(guān)注我后面的日記。實(shí)際上我也是剛剛有時(shí)間學(xué)習(xí)深度學(xué)習(xí),我是個(gè)純初學(xué)者,但面對(duì)深度學(xué)習(xí)里的各種復(fù)雜理論和公式推導(dǎo),自己實(shí)現(xiàn)個(gè)小功
    發(fā)表于 06-04 22:32

    通過對(duì)比深度學(xué)習(xí)各大框架的優(yōu)缺點(diǎn)尋找最優(yōu)

    開源深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)正步入成熟,而現(xiàn)在有許多框架具備為個(gè)性化方案提供先進(jìn)的機(jī)器學(xué)習(xí)和人工智能的能力。那么如何決定哪個(gè)
    發(fā)表于 11-15 19:04 ?2.3w次閱讀
    通過對(duì)比<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>各大<b class='flag-5'>框架</b>的優(yōu)缺點(diǎn)尋找最優(yōu)

    你最看好哪個(gè)深度學(xué)習(xí)框架呢?

    開源深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)正步入成熟,而現(xiàn)在有許多框架具備為個(gè)性化方案提供先進(jìn)的機(jī)器學(xué)習(xí)和人工智能的能力。
    的頭像 發(fā)表于 09-21 17:02 ?6617次閱讀

    深度學(xué)習(xí)框架你了解多少

    開源深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)正步入成熟,而現(xiàn)在有許多框架具備為個(gè)性化方案提供先進(jìn)的機(jī)器學(xué)習(xí)和人工智能的能力。
    發(fā)表于 07-08 10:31 ?2220次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>框架</b>你了解多少

    曠視深度學(xué)習(xí)框架曠視天元宣布開源

    3月25日下午,曠視科技舉辦線上發(fā)布會(huì),宣布開源新一代AI生產(chǎn)力平臺(tái)Brain++的核心深度學(xué)習(xí)框架曠視天元(MegEngine)。
    的頭像 發(fā)表于 03-25 16:56 ?2433次閱讀

    深度學(xué)習(xí)框架大PK

    近年來,開發(fā)者社區(qū)中,「開源」成了新流行趨勢。 尤其是深度學(xué)習(xí)框架,自騰訊2017年將ncnn開源之后,各大AI實(shí)驗(yàn)室都「慷慨」的將自
    發(fā)表于 07-10 18:37 ?1312次閱讀

    深度學(xué)習(xí)技術(shù)在醫(yī)療圖像診斷中有什么樣的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《深度學(xué)習(xí)技術(shù)在醫(yī)療圖像診斷中有什么樣的應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 11-26 05:47 ?16次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>技術(shù)在<b class='flag-5'>醫(yī)療</b><b class='flag-5'>圖像</b>診斷中有什么樣的應(yīng)用

    天才黑客George Hotz開源了一個(gè)小型深度學(xué)習(xí)框架tinygrad

    最近,天才黑客 George Hotz 開源了一個(gè)小型深度學(xué)習(xí)框架 tinygrad,兼具 PyTorch 和 micrograd 的功能。tinygrad 的代碼數(shù)量不到 1000
    的頭像 發(fā)表于 12-16 09:36 ?4235次閱讀

    PyTorch開源深度學(xué)習(xí)框架簡介

    PyTorch 是一種開源深度學(xué)習(xí)框架,以出色的靈活性和易用性著稱。這在一定程度上是因?yàn)榕c機(jī)器學(xué)習(xí)開發(fā)者和數(shù)據(jù)科學(xué)家所青睞的熱門 Pytho
    的頭像 發(fā)表于 07-29 10:26 ?4484次閱讀

    深度學(xué)習(xí)中的圖像分割

    深度學(xué)習(xí)可以學(xué)習(xí)視覺輸入的模式,以預(yù)測組成圖像的對(duì)象類。用于圖像處理的主要深度
    的頭像 發(fā)表于 05-05 11:35 ?1280次閱讀

    深度學(xué)習(xí)框架pytorch入門與實(shí)踐

    的。PyTorch是一個(gè)開源深度學(xué)習(xí)框架,在深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將介紹PyTorc
    的頭像 發(fā)表于 08-17 16:03 ?1617次閱讀

    深度學(xué)習(xí)框架是什么?深度學(xué)習(xí)框架有哪些?

    深度學(xué)習(xí)框架是什么?深度學(xué)習(xí)框架有哪些?? 深度
    的頭像 發(fā)表于 08-17 16:03 ?2771次閱讀

    深度學(xué)習(xí)框架的作用是什么

    深度學(xué)習(xí)框架的作用是什么 深度學(xué)習(xí)是一種計(jì)算機(jī)技術(shù),它利用人工神經(jīng)網(wǎng)絡(luò)來模擬人類的學(xué)習(xí)過程。由于
    的頭像 發(fā)表于 08-17 16:10 ?1587次閱讀

    深度學(xué)習(xí)框架tensorflow介紹

    深度學(xué)習(xí)框架tensorflow介紹 深度學(xué)習(xí)框架TensorFlow簡介
    的頭像 發(fā)表于 08-17 16:11 ?2549次閱讀

    深度學(xué)習(xí)框架連接技術(shù)

    深度學(xué)習(xí)框架連接技術(shù) 深度學(xué)習(xí)框架是一個(gè)能夠幫助機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 08-17 16:11 ?791次閱讀