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