醫療AI公司繞不開的選擇難題:開源框架與專用晶片

AIBigbull2050發表於2020-05-14
2020-05-14 09:54
導語:有些問題的答案已經非常明顯。

就像程式設計師討論“什麼才是世界上最好的語言?”這一終極命題一樣。在醫療AI領域,圍繞晶片和AI開源框架的討論也一直熱度不減。

《後浪》影片一夜刷屏。

其實在AI時代,晶片和開源框架也有諸多不斷趕超“前浪”的攪局者和顛覆者。

為了搶佔市場、營造生態,科技巨頭也都推出了自己的開源深度學習框架,如Google的TensorFlow、Amazon的MXNet、Facebook的Pytorch和Microsoft的CNTK等。

而在國內,也有百度飛獎、曠視MegEngine等框架進入越來越多開發者的視野。

但這個行業無時不刻都在洗牌中。

有開發者向雷鋒網表示,大名鼎鼎的Caffe因其靈活性等相對較差,導致使用者逐年流失。雖然Caffe2在一定程度上進行了改善,但是已經錯過了重要的框架發展視窗期。

新勢力也逐漸崛起。

今年4月底,英偉達也與倫敦國王學院共同宣佈了Project MONAI的開源alpha版本。MONAI是AI Medical Open Network的縮寫。這個框架針對醫療保健研究人員的需求進行了最佳化,並且可以與PyTorch和Ignite等深度學習框架一起執行。

這個框架推出之時,國內就有學者評價到,“為醫學影像研究者量身打造,是真正的良心之作。”

當然,除了開源框架,AI晶片也一直都是行業巨頭酣戰的領域,英特爾、英偉達以及眾多AI專用晶片公司的醫療AI相關產品層出不窮。

作為開源框架和晶片的“首席體驗官”,演算法工程師們如何看待晶片、開源框架等領域的諸多選擇,我們採訪了四家主流醫療AI公司的技術人員。

雷鋒網:你們會選擇哪種深度學習開源框架?Pytorch還是Caffe、TensorFlow?各家的優缺點都有哪些?

柏視醫療董事長陸遙:快速驗證模型效果使用Pytorch,工業化部署使用TensorFlow。

TensorFlow: TensorFlow提供全面的服務,無論是Python,C++,JAVA,Go,甚至是JavaScript,Julia,C#;TensorFlow良好的文件和社群支援,大大降低了學習成本;提供直觀的視覺化計算圖;模型能夠快速的部署在各種硬體機器上,從高效能的計算機到移動裝置,再到更小的更輕量的智慧終端。但構建TensorFlow深度學習框架需要更復雜的程式碼,還要重複地多次構建靜態圖。不過到2.0以後,tensorflow將keras融合進來,很多操作都簡化了。

Pytorch:Pytorch的風格和python很像,使用的是動態圖,搭建模型比較快,方便除錯,能夠很快驗證方法的有效性,新手上手快,而且庫足夠簡單,跟NumPy、SciPy等可以無縫連線;設計簡單,動態地設計網路,而無需定義靜態網路圖,非常靈活。但pytorch在生產環境部署還不成熟。

Caffe:Caffe 是一個優先考慮表達、速度和模組化來設計的框架。支援 C、C++、Python等介面以及命令列介面。但是,Caffe 不支援精細粒度網路層,給定體系結構,對迴圈網路和語言建模的總體支援相當差,必須用低階語言建立複雜的層型別,使用門檻很高。雖然開源比Pytorch和Tensorflow要早一點,早期的很多機器視覺的演算法是基於Caffe框架,但是Caffe社群比較前兩個框架要小很多,更新迭代的也比較慢。

連心醫療演算法經理Fisher:我們目前用的主要是Tensorflow以及依據Tensorflow的Keras框架,選擇Tensorflow的主要原因是市場佔有率大、社群支援好,而且最主要的是工業部署非常成熟。

Pytorch現在研究人員用的比較多,最主要的優點是其動態圖的實現方案,對於測試等非常友好。但是,在工業部署上,和Tensorflow還是有一定差距。目前,這兩個框架選擇的人比較多。

Caffe用的人已經在逐漸減少,主要還是其靈活性等相對較差,雖然Caffe2在一定程度上進行了改善,但是已經錯過了重要的框架發展視窗期。

聯影智慧研發科學家:相比其他兩個,Pytorch在演算法實現靈活度更強,比較貼近機器學習研發工程師。同時學術界對Pytorch的支援也較為強大,整個圈子比較活躍。因為我們部署這塊都是採用內部開發的部署框架,所以我們更為看中訓練研發階段框架的靈活性和高效性。

匯醫慧影演算法總監劉鵬飛:Pytorch上手難度低,除錯方便,程式碼寫起來比較pythonic,但目前對部署的支援相對較弱,TensorFlow對部署支援比較好,但相對上手難度高,除錯困難。Caffe是第一代深度學習框架,雖然仍然用於成熟模型部署,但基於Caffe的模型研發成本比較高,比如,很多情況下使用者需要自己實現反向傳播程式碼,不適用於快速模型開發和迭代。

雷鋒網 (公眾號:雷鋒網):如何評價國內的開源框架,如百度飛槳、曠視MegEngine等?

柏視醫療董事長陸遙:國內的開源框架,比如百度的飛槳和最近推出的清華大學Jittor、曠視的MegEngine和華為的MindSpore,這都是很好的嘗試,但是國內開源框架都面臨和Caffe一樣的問題,使用者較少,資源比Pytorch、Tensorflow少很多,和Pytorch和Tensorflow框架的相容性不好,在這些框架上做開發的難度相對比較大。因此,國內這些框架的社群還是比較小。

百度在飛槳的推廣上做了很多的工作,可能也發現在通用框架上,和這些國外成熟框架競爭所面臨的困境。近期推出的影像AI專用框架,是一個不錯的想法,因為Pytorch和Tensorflow這類框架是針對通用性設計的,在細分領域並不算非常好。如果影像AI這一塊,飛槳能做的足夠出色,吸引更多的研發者進來,做好生態,也能形成自己的社群,希望國內開源框架的生態越做越好。

連心醫療演算法經理Fisher:我們一直和飛槳有合作,在春節期間還一起推出了新冠肺炎的檢測模型。

最近除了百度,華為以及曠視等也都推出了自己的框架,百度應該是國內開發最早、發展最成熟的框架。

國內框架的優點是中文的支援友好,和企業直接合作較多以及硬體的直接融合開發等,但是致命的缺點在於其學術界的缺位。

放眼最新的論文,其開源的程式碼基本都是Tensorflow以及PyTorch的實現。當然如果是比較火熱的論文,框架一般也都會及時把相應的程式碼跟上,但是如果不是大熱的論文,都需要自己再復現一下論文。

在目前工程師基本都要掌握Tensorflow和Pytorch兩種框架的情景下,讓他們再去掌握第三種框架是缺乏動力的。

聯影智慧研發科學家:基本沒有太多接觸,主要還是基於飛槳的應用以及開原始碼,資料這方面比較少,暫時沒有Pytorch和Tensorflow生態圈龐大。所以無論上手,學習,成本都會相應增高。

雷鋒網:如何評價英偉達剛剛開源的醫療AI專用框架MONAI?是否會取代Pytorch在醫療界的位置?

柏視醫療董事長陸遙:MONAI使用PyTorch深度學習框架,旨在提供一種開源、標準化程度高、使用者友好、可復現性好、易於整合、高質量的、針對醫療領域特定最佳化的深度學習框架。

從長期來看,這是趨勢,但需要吸引更加多的開發者加入,壯大社群的力量。

它和飛槳影像AI是一個思路,走的是細分領域,依託於英偉達自身的硬體基礎,在醫療AI影像上,可以做出更出色的效能。在醫療AI領域,和Pytorch相容,減少Pytorch使用者遷移到MONAI的難度,提高使用者對MONAI的使用率,可以實現和Pytorch共同發展。

MONAI在計算效率、並行化訓練和部署,以及醫療特定任務的支援上應該會有更好的效果,而Pytorch是一個更基礎通用的框架。二者各有所長,未來應該是相互促進的關係。

連心醫療演算法經理Fisher:簡單的總結就是,不會。

首先,我們要搞清楚MONAI是什麼,它在Github上的解釋是:MONAI is a PyTorch-based, open-source framework for deep learning in healthcare imaging。

也就是說,首先它和Pytorch並不是排他的關係,MONAI就是基於Pytorch構建的,包括官方的一些例子,都是會引入Torch,也就沒有了什麼取代。

在我看來,MONAI更像是一個基於Pytorch的醫療影像資料處理庫,針對醫療影像增添了許多影像處理的方法,彌補了Pytorch對於醫療影像的支援不足。

雷鋒網:你們購買哪個廠商的伺服器?為什麼?

柏視醫療董事長陸遙:伺服器的選購主要是考慮成本以及售後服務,在滿足基本配置要求的前提下,選用價格成本較低,售後服務較為完善的伺服器供應商。NVIDIA提供一站式解決方案,且計算效能優秀,是很好的選擇。

連心醫療演算法經理Fisher:目前,我們伺服器供應商有多家,其中DELL的機器較多,主要的原因還是DELL在端機上成熟的解決方案、穩定的品質。

聯影智慧研發科學家:目前購買過AMAX、NVIDIA DGX系列,前者用於部署、後者用於訓練,各有好處。NVIDIA DGX在整體解決方案上更為成熟,技術支援也會好些。

匯醫慧影演算法總監劉鵬飛:伺服器基本就是NVIDIA GPU + Intel CPU。使用者基數大,社群比較成熟,遇到問題可以很容易找到解決方案。

雷鋒網:主要用哪家廠商的AI晶片?

柏視醫療董事長陸遙 英偉達。

連心醫療演算法經理Fisher 據我所知,在端側基本只能用英偉達的晶片,因為各家的框架都是構建於CUDA之上,而只有英偉達的卡才可以使用CUDA。

聯影智慧研發科學家:現在市面主流還是NVIDIA,無論是CUDA還是深度學習,NVIDIA的顯示卡對各個框架的支援都很好,而且可以相容三維渲染、並行程式設計,這方面較其他晶片來說優勢目前還是很大的。

匯醫慧影演算法總監劉鵬飛:這兩家的AI晶片我們都在用,目前實時性要求比較高應用主要還是基於NVIDIA晶片,計算量相對少的應用一般基於英特爾的晶片。

雷鋒網:英偉達的硬體和軟體包,有哪些優勢?尤其是CUDA

柏視醫療董事長陸遙:英偉達系列顯示卡最早能夠支援諸如Tensorflow 、Pytorch一類的深度學習框架的部署,技術起步早,國內外相關的研究者比較多,技術生態比較成熟。

英偉達還有專門針對深度學習最佳化的工具tensorRT,能夠更好地結合深度學習框架與顯示卡硬體資源之間的優勢,充分發揮顯示卡的計算效能。CUDA很好地封裝了一些對顯示卡硬體資源排程和使用的API介面,能夠讓研發人員方便高效地對顯示卡的計算資源進行利用,上手難度較低。

連心醫療演算法經理Fisher:正如上邊所說,雖然有一些解決方案也可以不用CUDA而使用OpenCL,但是基本工業界只有CUDA這一個選項,這主要是其統一的開發套件、非常豐富的庫以及NVCC所具備的PTX程式碼生成以及離線編譯等更成熟的編譯器特性。另外,眾多的開源框架也都是建立在CUDA之上。

聯影智慧研發科學家:CUDA有很長的一段發展歷史,沉澱比較多,資料也比較多,優勢很大。特別是現在除了CUDA C,還有Thrust這種C++庫,選擇餘地大。另外,CUDNN也可以和CUDA一起相容,所以除了深度學習,還可以做其他GPGPU並行程式設計,整體就非常方便。

匯醫慧影演算法總監劉鵬飛:對於效能要求比較高的場景,英偉達硬體軟體包是比較有優勢的。CUDA、TensorRT等工具都是經過高度最佳化,執行速度上有比較明顯的優勢。

雷鋒網:英特爾Xeon系列AI晶片在醫療領域應用頗多,其明顯大於GPU的視訊記憶體,是否在CT、MRI和病理這類比較大的影像處理上更有優勢?

柏視醫療董事長陸遙:醫療AI專用晶片,具有非常巨大的市場空間,人工智慧技術的快速發展,讓AI演算法在醫療領域已經得到了行業認可,但醫療行業有其行業特點:資料量大、高維度、多模態,視訊記憶體更大的晶片能夠加速AI演算法落地複雜的醫療環境。

對醫療AI專用晶片的選擇,記憶體是考慮因素之一,同時計算力也是一個考量的因素,在這點上英偉達更有優勢。所以選擇上,看個人更看重哪個因素。

英特爾的醫療AI專用晶片技術起步比較晚,在技術生態環境上暫時比不上英偉達,研發人員對英特爾系列的AI晶片的應用有一定的上手難度。對英特爾晶片的應用,很多技術人員還處於摸索階段。從研發效率和穩定性來考慮。目前,選擇英偉達的晶片是大多數的選擇。

更大視訊記憶體對醫療AI領域確實有著一定的優勢。隨著技術的發展,使用英特爾的醫療AI專用晶片做部署環境也是可以考慮的技術路線之一。

連心醫療演算法經理Fisher:從我個人角度來看,硬體是服務於專案的,而專案中硬體只是制約的一部分因素,更重要的是開發效率。誠然,視訊記憶體是會讓演算法有更多的可能性,但是開發效率會是工程上更關注的部分。

如果沒有良好的社群支援以及市場支援,再好的硬體也只能是和一些特定廠商的定製硬體選項而不是廣泛的工程選擇。就像顯示卡上NVIDIA和AMD的競爭,由於CUDA的存在以及已經發展起來的良好社群,如果想要進行科學計算,那麼可以說,英偉達是唯一的選項。

匯醫慧影演算法總監劉鵬飛:據我所知,目前英特爾的AI晶片主要應用在推理階段。在訓練階段,大家基本還是使用NVIDIA GPU。另外,對3D醫療影像來說,Intel OpenVino目前還有一些常用運算元沒有完全支援。







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2692104/,如需轉載,請註明出處,否則將追究法律責任。

相關文章