有些問題的答案已經(jīng)沒有懸念。
就像程序員討論“什么才是世界上最好的語言?”這一終極命題一樣。在醫(yī)療 AI 領(lǐng)域,圍繞芯片和 AI 開源框架的討論也一直熱度不減。《后浪》視頻一夜刷屏。
其實(shí)在 AI 時(shí)代,芯片和開源框架也有諸多不斷趕超“前浪”的攪局者和顛覆者。為了搶占市場、營造生態(tài),科技巨頭也都推出了自己的開源深度學(xué)習(xí)框架,如 Google 的 TensorFlow、Amazon 的 MXNet、Facebook 的 Pytorch 和 Microsoft 的 CNTK 等。而在國內(nèi),也有百度飛獎、曠視 MegEngine 等框架進(jìn)入越來越多開發(fā)者的視野。
但這個行業(yè)無時(shí)不刻都在洗牌中。有開發(fā)者向雷鋒網(wǎng) AI 掘金志表示,大名鼎鼎的 Caffe 因其靈活性等相對較差,導(dǎo)致用戶逐年流失。雖然 Caffe2 在一定程度上進(jìn)行了改善,但是已經(jīng)錯過了重要的框架發(fā)展窗口期。新勢力也逐漸崛起。今年 4 月底,英偉達(dá)也與倫敦國王學(xué)院共同宣布了 Project MONAI 的開源 alpha 版本。MONAI 是 AI Medical Open Network 的縮寫。
這個框架針對醫(yī)療保健研究人員的需求進(jìn)行了優(yōu)化,并且可以與 PyTorch 和 Ignite 等深度學(xué)習(xí)框架一起運(yùn)行。這個框架推出之時(shí),國內(nèi)就有學(xué)者評價(jià)到,“為醫(yī)學(xué)影像研究者量身打造,是真正的良心之作。”當(dāng)然,除了開源框架,AI 芯片也一直都是行業(yè)巨頭酣戰(zhàn)的領(lǐng)域,英特爾、英偉達(dá)以及眾多 AI 專用芯片公司的醫(yī)療 AI 相關(guān)產(chǎn)品層出不窮。
作為開源框架和芯片的“首席體驗(yàn)官”,算法工程師們?nèi)绾慰创酒?、開源框架等領(lǐng)域的諸多選擇,我們采訪了四家主流醫(yī)療 AI 公司的技術(shù)人員。
AI 掘金志:你們會選擇哪種深度學(xué)習(xí)開源框架?Pytorch 還是 Caffe、TensorFlow?各家的優(yōu)缺點(diǎn)都有哪些?
柏視醫(yī)療董事長陸遙:快速驗(yàn)證模型效果使用 Pytorch,工業(yè)化部署使用 TensorFlow。
TensorFlow:TensorFlow 提供全面的服務(wù),無論是 Python,C++,JAVA,Go,甚至是 JavaScript,Julia,C#;TensorFlow 良好的文檔和社區(qū)支持,大大降低了學(xué)習(xí)成本;提供直觀的可視化計(jì)算圖;模型能夠快速的部署在各種硬件機(jī)器上,從高性能的計(jì)算機(jī)到移動設(shè)備,再到更小的更輕量的智能終端。但構(gòu)建 TensorFlow 深度學(xué)習(xí)框架需要更復(fù)雜的代碼,還要重復(fù)地多次構(gòu)建靜態(tài)圖。不過到2.0 以后,tensorflow 將 keras 融合進(jìn)來,很多操作都簡化了。
Pytorch:Pytorch 的風(fēng)格和 python 很像,使用的是動態(tài)圖,搭建模型比較快,方便調(diào)試,能夠很快驗(yàn)證方法的有效性,新手上手快,而且?guī)熳銐蚝唵?,?NumPy、SciPy 等可以無縫連接;設(shè)計(jì)簡單,動態(tài)地設(shè)計(jì)網(wǎng)絡(luò),而無需定義靜態(tài)網(wǎng)絡(luò)圖,非常靈活。但 pytorch 在生產(chǎn)環(huán)境部署還不成熟。
Caffe:Caffe 是一個優(yōu)先考慮表達(dá)、速度和模塊化來設(shè)計(jì)的框架。支持 C、C++、Python 等接口以及命令行接口。但是,Caffe 不支持精細(xì)粒度網(wǎng)絡(luò)層,給定體系結(jié)構(gòu),對循環(huán)網(wǎng)絡(luò)和語言建模的總體支持相當(dāng)差,必須用低級語言建立復(fù)雜的層類型,使用門檻很高。雖然開源比 Pytorch 和 Tensorflow 要早一點(diǎn),早期的很多機(jī)器視覺的算法是基于 Caffe 框架,但是 Caffe 社區(qū)比較前兩個框架要小很多,更新迭代的也比較慢。
連心醫(yī)療算法經(jīng)理 Fisher:我們目前用的主要是 Tensorflow 以及依據(jù) Tensorflow 的 Keras 框架,選擇 Tensorflow 的主要原因是市場占有率大、社區(qū)支持好,而且最主要的是工業(yè)部署非常成熟。
Pytorch 現(xiàn)在研究人員用的比較多,最主要的優(yōu)點(diǎn)是其動態(tài)圖的實(shí)現(xiàn)方案,對于測試等非常友好。但是,在工業(yè)部署上,和 Tensorflow 還是有一定差距。目前,這兩個框架選擇的人比較多。
Caffe 用的人已經(jīng)在逐漸減少,主要還是其靈活性等相對較差,雖然 Caffe2 在一定程度上進(jìn)行了改善,但是已經(jīng)錯過了重要的框架發(fā)展窗口期。
聯(lián)影智能研發(fā)科學(xué)家:相比其他兩個,Pytorch 在算法實(shí)現(xiàn)靈活度更強(qiáng),比較貼近機(jī)器學(xué)習(xí)研發(fā)工程師。同時(shí)學(xué)術(shù)界對 Pytorch 的支持也較為強(qiáng)大,整個圈子比較活躍。因?yàn)槲覀儾渴疬@塊都是采用內(nèi)部開發(fā)的部署框架,所以我們更為看中訓(xùn)練研發(fā)階段框架的靈活性和高效性。
匯醫(yī)慧影算法總監(jiān)劉鵬飛:Pytorch 上手難度低,調(diào)試方便,代碼寫起來比較 pythonic,但目前對部署的支持相對較弱,TensorFlow 對部署支持比較好,但相對上手難度高,調(diào)試?yán)щy。
Caffe 是第一代深度學(xué)習(xí)框架,雖然仍然用于成熟模型部署,但基于 Caffe 的模型研發(fā)成本比較高,比如,很多情況下用戶需要自己實(shí)現(xiàn)反向傳播代碼,不適用于快速模型開發(fā)和迭代。
AI 掘金志:如何評價(jià)國內(nèi)的開源框架,如百度飛槳、曠視 MegEngine 等?
柏視醫(yī)療董事長陸遙:國內(nèi)的開源框架,比如百度的飛槳和最近推出的清華大學(xué) Jittor、曠視的 MegEngine 和華為的 MindSpore,這都是很好的嘗試,但是國內(nèi)開源框架都面臨和 Caffe 一樣的問題,使用者較少,資源比 Pytorch、Tensorflow 少很多,和 Pytorch 和 Tensorflow 框架的兼容性不好,在這些框架上做開發(fā)的難度相對比較大。
因此,國內(nèi)這些框架的社區(qū)還是比較小。百度在飛槳的推廣上做了很多的工作,可能也發(fā)現(xiàn)在通用框架上,和這些國外成熟框架競爭所面臨的困境。
近期推出的影像 AI 專用框架,是一個不錯的想法,因?yàn)?Pytorch 和 Tensorflow 這類框架是針對通用性設(shè)計(jì)的,在細(xì)分領(lǐng)域并不算非常好。如果影像 AI 這一塊,飛槳能做的足夠出色,吸引更多的研發(fā)者進(jìn)來,做好生態(tài),也能形成自己的社區(qū),希望國內(nèi)開源框架的生態(tài)越做越好。
連心醫(yī)療算法經(jīng)理 Fisher:我們一直和飛槳有合作,在春節(jié)期間還一起推出了新冠肺炎的檢測模型。最近除了百度,華為以及曠視等也都推出了自己的框架,百度應(yīng)該是國內(nèi)開發(fā)最早、發(fā)展最成熟的框架。國內(nèi)框架的優(yōu)點(diǎn)是中文的支持友好,和企業(yè)直接合作較多以及硬件的直接融合開發(fā)等,但是致命的缺點(diǎn)在于其學(xué)術(shù)界的缺位。
放眼最新的論文,其開源的代碼基本都是 Tensorflow 以及 PyTorch 的實(shí)現(xiàn)。當(dāng)然如果是比較火熱的論文,框架一般也都會及時(shí)把相應(yīng)的代碼跟上,但是如果不是大熱的論文,都需要自己再復(fù)現(xiàn)一下論文。在目前工程師基本都要掌握 Tensorflow 和 Pytorch 兩種框架的情景下,讓他們再去掌握第三種框架是缺乏動力的。
聯(lián)影智能研發(fā)科學(xué)家:基本沒有太多接觸,主要還是基于飛槳的應(yīng)用以及開源代碼,資料這方面比較少,暫時(shí)沒有 Pytorch 和 Tensorflow 生態(tài)圈龐大。所以無論上手,學(xué)習(xí),成本都會相應(yīng)增高。
AI 掘金志:如何評價(jià)英偉達(dá)剛剛開源的醫(yī)療 AI 專用框架 MONAI?是否會取代 Pytorch 在醫(yī)療界的位置?
柏視醫(yī)療董事長陸遙:MONAI 使用 PyTorch 深度學(xué)習(xí)框架,旨在提供一種開源、標(biāo)準(zhǔn)化程度高、用戶友好、可復(fù)現(xiàn)性好、易于集成、高質(zhì)量的、針對醫(yī)療領(lǐng)域特定優(yōu)化的深度學(xué)習(xí)框架。
從長期來看,這是趨勢,但需要吸引更加多的開發(fā)者加入,壯大社區(qū)的力量。它和飛槳影像 AI 是一個思路,走的是細(xì)分領(lǐng)域,依托于英偉達(dá)自身的硬件基礎(chǔ),在醫(yī)療 AI 影像上,可以做出更出色的性能。在醫(yī)療 AI 領(lǐng)域,和 Pytorch 兼容,減少 Pytorch 用戶遷移到 MONAI 的難度,提高用戶對 MONAI 的使用率,可以實(shí)現(xiàn)和 Pytorch 共同發(fā)展。
MONAI 在計(jì)算效率、并行化訓(xùn)練和部署,以及醫(yī)療特定任務(wù)的支持上應(yīng)該會有更好的效果,而 Pytorch 是一個更基礎(chǔ)通用的框架。二者各有所長,未來應(yīng)該是相互促進(jìn)的關(guān)系。連心醫(yī)療算法經(jīng)理 Fisher:簡單的總結(jié)就是,不會。
首先,我們要搞清楚 MONAI 是什么,它在 Github 上的解釋是:MONAI is a PyTorch-based, open-source framework for deep learning in healthcare imaging。也就是說,首先它和 Pytorch 并不是排他的關(guān)系,MONAI 就是基于 Pytorch 構(gòu)建的,包括官方的一些例子,都是會引入 Torch,也就沒有了什么取代。
在我看來,MONAI 更像是一個基于 Pytorch 的醫(yī)療圖像數(shù)據(jù)處理庫,針對醫(yī)療圖像增添了許多圖像處理的方法,彌補(bǔ)了 Pytorch 對于醫(yī)療圖像的支持不足。
AI 掘金志:你們購買哪個廠商的服務(wù)器?為什么?
柏視醫(yī)療董事長陸遙:服務(wù)器的選購主要是考慮成本以及售后服務(wù),在滿足基本配置要求的前提下,選用價(jià)格成本較低,售后服務(wù)較為完善的服務(wù)器供應(yīng)商。NVIDIA 提供一站式解決方案,且計(jì)算性能優(yōu)秀,是很好的選擇。連心醫(yī)療算法經(jīng)理 Fisher:目前,我們服務(wù)器供應(yīng)商有多家,其中 DELL 的機(jī)器較多,主要的原因還是 DELL 在端機(jī)上成熟的解決方案、穩(wěn)定的品質(zhì)。
聯(lián)影智能研發(fā)科學(xué)家:目前購買過 AMAX、NVIDIA DGX 系列,前者用于部署、后者用于訓(xùn)練,各有好處。NVIDIA DGX 在整體解決方案上更為成熟,技術(shù)支持也會好些。
匯醫(yī)慧影算法總監(jiān)劉鵬飛:服務(wù)器基本就是 NVIDIA GPU + Intel CPU。用戶基數(shù)大,社區(qū)比較成熟,遇到問題可以很容易找到解決方案。
AI 掘金志:主要用哪家廠商的 AI 芯片?
柏視醫(yī)療董事長陸遙:英偉達(dá)。連心醫(yī)療算法經(jīng)理 Fisher:據(jù)我所知,在端側(cè)基本只能用英偉達(dá)的芯片,因?yàn)楦骷业目蚣芏际菢?gòu)建于 CUDA 之上,而只有英偉達(dá)的卡才可以使用 CUDA。聯(lián)影智能研發(fā)科學(xué)家:現(xiàn)在市面主流還是 NVIDIA,無論是 CUDA 還是深度學(xué)習(xí),NVIDIA 的顯卡對各個框架的支持都很好,而且可以兼容三維渲染、并行編程,這方面較其他芯片來說優(yōu)勢目前還是很大的。
匯醫(yī)慧影算法總監(jiān)劉鵬飛:這兩家的 AI 芯片我們都在用,目前實(shí)時(shí)性要求比較高應(yīng)用主要還是基于 NVIDIA 芯片,計(jì)算量相對少的應(yīng)用一般基于英特爾的芯片。
AI 掘金志:英偉達(dá)的硬件和軟件包,有哪些優(yōu)勢?尤其是 CUDA
柏視醫(yī)療董事長陸遙:英偉達(dá)系列顯卡最早能夠支持諸如 Tensorflow 、Pytorch 一類的深度學(xué)習(xí)框架的部署,技術(shù)起步早,國內(nèi)外相關(guān)的研究者比較多,技術(shù)生態(tài)比較成熟。
英偉達(dá)還有專門針對深度學(xué)習(xí)優(yōu)化的工具 tensorRT,能夠更好地結(jié)合深度學(xué)習(xí)框架與顯卡硬件資源之間的優(yōu)勢,充分發(fā)揮顯卡的計(jì)算性能。CUDA 很好地封裝了一些對顯卡硬件資源調(diào)度和使用的 API 接口,能夠讓研發(fā)人員方便高效地對顯卡的計(jì)算資源進(jìn)行利用,上手難度較低。
連心醫(yī)療算法經(jīng)理 Fisher:正如上邊所說,雖然有一些解決方案也可以不用 CUDA 而使用 OpenCL,但是基本工業(yè)界只有 CUDA 這一個選項(xiàng),這主要是其統(tǒng)一的開發(fā)套件、非常豐富的庫以及 NVCC 所具備的 PTX 代碼生成以及離線編譯等更成熟的編譯器特性。另外,眾多的開源框架也都是建立在 CUDA 之上。
聯(lián)影智能研發(fā)科學(xué)家:CUDA 有很長的一段發(fā)展歷史,沉淀比較多,資料也比較多,優(yōu)勢很大。特別是現(xiàn)在除了 CUDA C,還有 Thrust 這種 C++庫,選擇余地大。另外,CUDNN 也可以和 CUDA 一起兼容,所以除了深度學(xué)習(xí),還可以做其他 GPGPU 并行編程,整體就非常方便。
匯醫(yī)慧影算法總監(jiān)劉鵬飛:對于性能要求比較高的場景,英偉達(dá)硬件軟件包是比較有優(yōu)勢的。CUDA、TensorRT 等工具都是經(jīng)過高度優(yōu)化,執(zhí)行速度上有比較明顯的優(yōu)勢。
AI 掘金志:英特爾 Xeon 系列 AI 芯片在醫(yī)療領(lǐng)域應(yīng)用頗多,其明顯大于 GPU 的顯存,是否在 CT、MRI 和病理這類比較大的圖像處理上更有優(yōu)勢?
柏視醫(yī)療董事長陸遙:醫(yī)療 AI 專用芯片,具有非常巨大的市場空間,人工智能技術(shù)的快速發(fā)展,讓 AI 算法在醫(yī)療領(lǐng)域已經(jīng)得到了行業(yè)認(rèn)可,但醫(yī)療行業(yè)有其行業(yè)特點(diǎn):數(shù)據(jù)量大、高維度、多模態(tài),顯存更大的芯片能夠加速 AI 算法落地復(fù)雜的醫(yī)療環(huán)境。對醫(yī)療 AI 專用芯片的選擇,內(nèi)存是考慮因素之一,同時(shí)計(jì)算力也是一個考量的因素,在這點(diǎn)上英偉達(dá)更有優(yōu)勢。
所以選擇上,看個人更看重哪個因素。英特爾的醫(yī)療 AI 專用芯片技術(shù)起步比較晚,在技術(shù)生態(tài)環(huán)境上暫時(shí)比不上英偉達(dá),研發(fā)人員對英特爾系列的 AI 芯片的應(yīng)用有一定的上手難度。對英特爾芯片的應(yīng)用,很多技術(shù)人員還處于摸索階段。從研發(fā)效率和穩(wěn)定性來考慮。目前,選擇英偉達(dá)的芯片是大多數(shù)的選擇。更大顯存對醫(yī)療 AI 領(lǐng)域確實(shí)有著一定的優(yōu)勢。隨著技術(shù)的發(fā)展,使用英特爾的醫(yī)療 AI 專用芯片做部署環(huán)境也是可以考慮的技術(shù)路線之一。
連心醫(yī)療算法經(jīng)理 Fisher:從我個人角度來看,硬件是服務(wù)于項(xiàng)目的,而項(xiàng)目中硬件只是制約的一部分因素,更重要的是開發(fā)效率。誠然,顯存是會讓算法有更多的可能性,但是開發(fā)效率會是工程上更關(guān)注的部分。如果沒有良好的社區(qū)支持以及市場支持,再好的硬件也只能是和一些特定廠商的定制硬件選項(xiàng)而不是廣泛的工程選擇。就像顯卡上 NVIDIA 和 AMD 的競爭,由于 CUDA 的存在以及已經(jīng)發(fā)展起來的良好社區(qū),如果想要進(jìn)行科學(xué)計(jì)算,那么可以說,英偉達(dá)是唯一的選項(xiàng)。
匯醫(yī)慧影算法總監(jiān)劉鵬飛:據(jù)我所知,目前英特爾的 AI 芯片主要應(yīng)用在推理階段。在訓(xùn)練階段,大家基本還是使用 NVIDIA GPU。另外,對 3D 醫(yī)療圖像來說,Intel OpenVino 目前還有一些常用算子沒有完全支持。