醫療AI公司繞不開的選擇難題:開源框架與專用芯片
就像程序員討論“什麼才是世界上最好的語言?”這一終極命題一樣。在醫療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目前還有一些常用算子沒有完全支持。