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

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

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

如何用基于NVIDIA GPU的RAPIDS cuML實(shí)現(xiàn)取代KRR?

jf_pJlTbmA9 ? 來(lái)源:NVIDIA ? 作者:NVIDIA ? 2023-07-05 16:30 ? 次閱讀

單細(xì)胞測(cè)量技術(shù)發(fā)展迅速,徹底改變了生命科學(xué)。我們已經(jīng)從測(cè)量幾十個(gè)細(xì)胞擴(kuò)展到數(shù)百萬(wàn)個(gè)細(xì)胞,從一種模式擴(kuò)展到多個(gè)高維模式。單個(gè)細(xì)胞水平上的大量信息為訓(xùn)練機(jī)器學(xué)習(xí)模型提供了一個(gè)很好的機(jī)會(huì),幫助我們更好地理解 intrinsic link of cell modalities ,這可能會(huì)對(duì)合成生物學(xué)和 drug target discovery 產(chǎn)生變革。

這篇文章介紹了模態(tài)預(yù)測(cè),并解釋了我們?nèi)绾斡没?NVIDIA GPU 的 RAPIDS cuML 實(shí)現(xiàn)取代基于 CPU 的 TSVD 和內(nèi)核嶺回歸( KRR ),從而加速了 NeurIPS Single-Cell Multi-Modality Prediction Challenge 的獲勝解決方案。

使用 cuML ,只修改了六行代碼,我們加速了基于 scikit 學(xué)習(xí)的獲勝解決方案,將訓(xùn)練時(shí)間從 69 分鐘縮短到 40 秒:速度提高了 103.5 倍!即使與 PyTorch 中開(kāi)發(fā)的復(fù)雜深度學(xué)習(xí)模型相比,我們觀察到 cuML 解決方案對(duì)于這種預(yù)測(cè)挑戰(zhàn)來(lái)說(shuō)更快更準(zhǔn)確。

多虧了單細(xì)胞技術(shù),我們可以測(cè)量同一單細(xì)胞內(nèi)的多種形態(tài),如 DNA 可達(dá)性( ATAC )、 mRNA 基因表達(dá)( GEX )和蛋白質(zhì)豐度( ADT )。圖 1 顯示了這些模式之間的內(nèi)在聯(lián)系。只有可獲得的 DNA 才能產(chǎn)生 mRNA ,而 mRNA 又被用作生產(chǎn)蛋白質(zhì)的模板。

當(dāng)期望從一個(gè)模態(tài)預(yù)測(cè)另一個(gè)模態(tài)時(shí),模態(tài)預(yù)測(cè)的問(wèn)題自然出現(xiàn)。在 2021 NeurIPS challenge 中,我們被要求預(yù)測(cè)從 ATAC 到 GEX 以及從 GEX 到 ADT 的信息流。

若一個(gè)機(jī)器學(xué)習(xí)模型能夠做出好的預(yù)測(cè),那個(gè)么它一定已經(jīng)了解了細(xì)胞的復(fù)雜狀態(tài),它可以為細(xì)胞生物學(xué)提供更深入的見(jiàn)解。擴(kuò)展我們對(duì)這些調(diào)控過(guò)程的理解,對(duì)于藥物靶點(diǎn)的發(fā)現(xiàn)也具有革命性意義。

模態(tài)預(yù)測(cè)是一個(gè)多輸出回歸問(wèn)題,它提出了獨(dú)特的挑戰(zhàn):

High cardinality.例如, GEX 和 ADT 信息分別以長(zhǎng)度為 13953 和 134 的矢量描述。

Strong bias.數(shù)據(jù)收集自 10 個(gè)不同的捐贈(zèng)者和 4 個(gè)地點(diǎn)。培訓(xùn)和測(cè)試數(shù)據(jù)來(lái)自不同的站點(diǎn)。捐贈(zèng)者和站點(diǎn)都強(qiáng)烈影響數(shù)據(jù)的分布。

稀疏、冗余和非線性。模態(tài)數(shù)據(jù)稀疏,列高度相關(guān)。

在這篇文章中,我們專(zhuān)注于 GEX 到 ADT 預(yù)測(cè)的任務(wù),以證明單個(gè) – GPU 解決方案的效率。我們的方法可以擴(kuò)展到使用多節(jié)點(diǎn)多 GPU 架構(gòu)的具有更大數(shù)據(jù)量和更高基數(shù)的其他單細(xì)胞模態(tài)預(yù)測(cè)任務(wù)。

使用 TSVD 和 KRR 算法進(jìn)行多目標(biāo)回歸

作為基線,我們使用了密歇根大學(xué)鄧凱文教授的 NeurIPS 模態(tài)預(yù)測(cè)挑戰(zhàn)“ GEX 到 ADT ”的 first-place solution 。核心模型的工作流程如圖 2 所示。訓(xùn)練數(shù)據(jù)包括 GEX 和 ADT 信息,而測(cè)試數(shù)據(jù)只有 GEX 信息。

任務(wù)是預(yù)測(cè)給定 GEX 的測(cè)試數(shù)據(jù)的 ADT 。為了解決數(shù)據(jù)的稀疏性和冗余性,我們應(yīng)用截?cái)嗥娈愔捣纸猓?TSVD )來(lái)降低 GEX 和 ADT 的維數(shù)。

特別是,兩種 TSVD 模型分別適用于 GEX 和 ADT :

對(duì)于 GEX , TSVD 適合訓(xùn)練和測(cè)試的級(jí)聯(lián)數(shù)據(jù)。

對(duì)于 ADT , TSVD 僅適合訓(xùn)練數(shù)據(jù)。

在鄧的解決方案中, GEX 的維度從 13953 大幅降低到 300 , ADT 從 134 大幅降低到 70 。

主成分 300 和 70 的數(shù)量是通過(guò)交叉驗(yàn)證和調(diào)整獲得的模型的超參數(shù)。然后將訓(xùn)練數(shù)據(jù)的 GEX 和 ADT 的簡(jiǎn)化版本與 RBF 核一起饋送到 KRR 中。根據(jù)鄧的方法,在推理時(shí),我們使用經(jīng)過(guò)訓(xùn)練的 KRR 模型執(zhí)行以下任務(wù):

預(yù)測(cè)測(cè)試數(shù)據(jù)的 ADT 的簡(jiǎn)化版本。

應(yīng)用 TSVD 的逆變換。

恢復(fù)測(cè)試數(shù)據(jù)的 ADT 預(yù)測(cè)。

model-overview.png

圖 2.模型概述。塊表示輸入和輸出數(shù)據(jù),塊旁邊的數(shù)字表示尺寸。

通常, TSVD 是對(duì)稀疏數(shù)據(jù)執(zhí)行降維的最常用選擇,通常在特征工程期間使用。在這種情況下, TSVD 用于減少特征( GEX )和目標(biāo)( ADT )的尺寸。目標(biāo)的降維使下游多輸出回歸模型更加容易,因?yàn)?TSVD 輸出在列之間更加獨(dú)立。

選擇 KRR 作為多輸出回歸模型。與 SVM 相比, KRR 同時(shí)計(jì)算輸出的所有列,而 SVM 一次預(yù)測(cè)一列,因此 KRR 可以像 SVM 一樣學(xué)習(xí)非線性,但速度更快。

使用 cuML 實(shí)現(xiàn) GPU 加速解決方案

cuML 是 RAPIDS 庫(kù)之一。它包含一套 GPU 加速機(jī)器學(xué)習(xí)算法,可提供許多高度優(yōu)化的模型,包括 TSVD 和 KRR 。您可以將基線模型從 scikit 學(xué)習(xí)實(shí)現(xiàn)快速調(diào)整為 cuML 實(shí)現(xiàn)。

I在下面的代碼示例中,我們只需要更改六行代碼,其中三行是導(dǎo)入。為簡(jiǎn)單起見(jiàn),省略了許多預(yù)處理和實(shí)用程序代碼。

Baseline sklearn implementation:

from sklearn.decomposition import TruncatedSVD from sklearn.gaussian_process.kernels import RBF from sklearn.kernel_ridge import KernelRidge tsvd_gex = TruncatedSVD(n_components=300) tsvd_adt = TruncatedSVD(n_components=70) gex_train_test = tsvd_gex.fit_transform(gex_train_test) gex_train, gex_test = split(get_train_test) adt_train = tsvd_adt.fit_transform(adt_train) adt_comp = tsvd_adt.components_ y_pred = 0 for seed in seeds: gex_tr,_,adt_tr,_=train_test_split(gex_train, adt_train, train_size=0.5, random_state=seed) kernel = RBF(length_scale = scale) krr = KernelRidge(alpha=alpha, kernel=kernel) krr.fit(gex_tr, adt_tr) y_pred += (krr.predict(gex_test) @ adt_comp) y_pred /= len(seeds)

RAPIDS cuML implementation:

from cuml.decomposition import TruncatedSVD from cuml.kernel_ridge import KernelRidge import gctsvd_gex = TruncatedSVD(n_components=300) tsvd_adt = TruncatedSVD(n_components=70) gex_train_test = tsvd_gex.fit_transform(gex_train_test) gex_train, gex_test = split(get_train_test) adt_train = tsvd_adt.fit_transform(adt_train)adt_comp = tsvd_adt.components_.to_output('cupy')y_pred = 0 for seed in seeds: gex_tr,_,adt_tr,_=train_test_split(gex_train, adt_train, train_size=0.5, random_state=seed)krr = KernelRidge(alpha=alpha,kernel='rbf')krr.fit(gex_tr, adt_tr)gc.collect()y_pred += (krr.predict(gex_test) @ adt_comp) y_pred /= len(seeds)

cuML 內(nèi)核的語(yǔ)法與 scikit learn 略有不同。我們沒(méi)有創(chuàng)建獨(dú)立的內(nèi)核對(duì)象,而是在 KernelRidge 的構(gòu)造函數(shù)中指定了內(nèi)核類(lèi)型。這是因?yàn)?cuML 還不支持高斯過(guò)程。

另一個(gè)區(qū)別是當(dāng)前版本的 cuML 實(shí)現(xiàn)需要顯式垃圾收集。在這個(gè)特定的循環(huán)中創(chuàng)建了某種形式的引用循環(huán),并且在沒(méi)有垃圾收集的情況下不會(huì)自動(dòng)釋放對(duì)象。有關(guān)更多信息,請(qǐng)參閱 /daxiongshu/rapids_nips_blog GitHub 存儲(chǔ)庫(kù)中的完整筆記本。

后果

我們將 TSVD + KRR 的 cuML 實(shí)施與 CPU 基線和挑戰(zhàn)中的其他頂級(jí)解決方案進(jìn)行了比較。 GPU 解決方案在單個(gè) V100 GPU 上運(yùn)行, CPU 解決方案在雙 20 核 Intel Xeon CPU 上運(yùn)行。競(jìng)爭(zhēng)的度量是均方根誤差( RMSE )。

我們發(fā)現(xiàn), TSVD + KRR 的 cuML 實(shí)現(xiàn)比 CPU 基線快 103 倍,由于管道中的隨機(jī)性,分?jǐn)?shù)略有下降。然而,比分仍然比比賽中的任何其他車(chē)型都好。

我們還將我們的解決方案與兩種深度學(xué)習(xí)模型進(jìn)行了比較:

第四名解決方案:Multilayer Perceptron (MLP)

第二名解決方案:Graph Neural Network (GNN)

這兩個(gè)深度學(xué)習(xí)模型都在 PyTorch 中實(shí)現(xiàn),并在單個(gè) V100 GPU 上運(yùn)行。這兩個(gè)深度學(xué)習(xí)模型都有許多層,需要訓(xùn)練數(shù)百萬(wàn)個(gè)參數(shù),因此容易對(duì)該數(shù)據(jù)集進(jìn)行過(guò)度擬合。相比之下, TSVD + KRR 只需訓(xùn)練少于 30K 的參數(shù)。圖 4 顯示,由于其簡(jiǎn)單性, cuML TSVD + KRR 模型比深度學(xué)習(xí)模型更快、更準(zhǔn)確。

performance-training-comparison.png

圖 4.績(jī)效和培訓(xùn)時(shí)間對(duì)比。橫軸為對(duì)數(shù)刻度。

結(jié)論

由于其閃電般的速度和用戶(hù)友好的 API , RAPIDS cuML 對(duì)于加速單細(xì)胞數(shù)據(jù)的分析非常有用。通過(guò)少量的代碼更改,您可以提升現(xiàn)有的 scikit 學(xué)習(xí)工作流。

此外,在處理單細(xì)胞模態(tài)預(yù)測(cè)時(shí),我們建議從 cuML TSVD 開(kāi)始,以減少下游任務(wù)的數(shù)據(jù)維度和 KRR ,從而實(shí)現(xiàn)最佳加速。

使用 /daxiongshu/rapids_nips_blog GitHub 存儲(chǔ)庫(kù)上的代碼嘗試這個(gè) RAPIDS cuML 實(shí)現(xiàn)。

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

    關(guān)注

    14

    文章

    4793

    瀏覽量

    102423
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28875

    瀏覽量

    266204
  • 電池
    +關(guān)注

    關(guān)注

    84

    文章

    10184

    瀏覽量

    127022
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NVIDIA火熱招聘GPU高性能計(jì)算架構(gòu)師

    這邊是NVIDIA HR Allen, 我們目前在上海招聘GPU高性能計(jì)算架構(gòu)師(功能驗(yàn)證)的崗位,有意向的朋友歡迎發(fā)送簡(jiǎn)歷到 allelin@nvidia
    發(fā)表于 09-01 17:22

    NVIDIA-SMI:監(jiān)控GPU的絕佳起點(diǎn)

    nvidia-smi可執(zhí)行文件位于虛擬機(jī)管理程序上。如果在同一部署中您選擇在GPU上使用作為傳遞,那么GPU正在尋找訪客上的NVIDIA驅(qū)動(dòng)程序,因此
    發(fā)表于 09-04 15:18

    NVIDIA Vmware vSphere-6.5升級(jí)無(wú)法啟動(dòng)GPU

    我們已經(jīng)將esxi主機(jī)升級(jí)到6.5并將VIB升級(jí)到從Nvidia網(wǎng)站下載的受支持的NVIDIA-kepler-vSphere-6.5-367.64-369.71,但基本機(jī)器將無(wú)法啟動(dòng)GPU(PCI
    發(fā)表于 09-20 11:41

    購(gòu)買(mǎi)哪款Nvidia GPU

    Nvidia的NV 24核,224 GB RAM,1.4 GB臨時(shí)存儲(chǔ)。這是相當(dāng)昂貴的(每月費(fèi)用超過(guò)3,400美元),除非我承諾1年或3年的承諾,略有減少。我認(rèn)為如果我購(gòu)買(mǎi)GPU服務(wù)器,從長(zhǎng)遠(yuǎn)來(lái)看可能會(huì)更便
    發(fā)表于 09-26 15:30

    NVIDIA網(wǎng)格GPU-PSOD的支持結(jié)構(gòu)

    they blamed it on the nvidia gpu but they dont know if its a driver or hardware issue.Can a ticket be open
    發(fā)表于 10-10 16:15

    Nvidia GPU風(fēng)扇和電源顯示ERR怎么解決

    問(wèn)題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時(shí)候,如果機(jī)器鎖屏一段時(shí)間再打開(kāi)的時(shí)候鼠標(biāo)非常卡頓,或者說(shuō)顯示界面非常卡頓,使用nvidia-smi查看發(fā)現(xiàn),訓(xùn)練模型的GPU
    發(fā)表于 12-30 06:44

    在Ubuntu上使用Nvidia GPU訓(xùn)練模型

    問(wèn)題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時(shí)候,沒(méi)有問(wèn)題,過(guò)一會(huì)再訓(xùn)練出現(xiàn)非常卡頓,使用nvidia-smi查看發(fā)現(xiàn),顯示GPU的風(fēng)扇和電源報(bào)錯(cuò):解決方案自動(dòng)風(fēng)扇控制在
    發(fā)表于 01-03 08:24

    探求NVIDIA GPU極限性能的利器

    1、探求 NVIDIA GPU 極限性能的利器  在通常的 CUDA 編程中,用戶(hù)主要通過(guò) CUDA C/C++ 或 python 語(yǔ)言實(shí)現(xiàn) CUDA 功能的調(diào)用。在 NVIDIA 對(duì)
    發(fā)表于 10-11 14:35

    NVIDIA推出RAPIDS開(kāi)源GPU加速平臺(tái)

    HPE、IBM、Oracle、開(kāi)源社區(qū)、創(chuàng)業(yè)公司采用RAPIDS,顯著提升端到端預(yù)測(cè)數(shù)據(jù)分析能力。
    的頭像 發(fā)表于 10-17 14:36 ?4247次閱讀

    Nvidia宣布推出了一套新的開(kāi)源RAPIDS庫(kù)

    在德國(guó)慕尼黑舉行的GPU技術(shù)會(huì)議上,高性能GPU和人工智能領(lǐng)域的領(lǐng)導(dǎo)者Nvidia宣布推出了一套新的開(kāi)源RAPIDS庫(kù),用于GPU加速的分析
    的頭像 發(fā)表于 03-25 15:38 ?2259次閱讀

    GTC2022大會(huì)亮點(diǎn):RAPIDSNVIDIA備受歡迎的NVIDIA SDK之一

    GTC2022大會(huì)亮點(diǎn):RAPIDSNVIDIA備受歡迎的NVIDIA SDK之一,僅次于用于深度學(xué)習(xí)的cuDNN。
    的頭像 發(fā)表于 03-24 16:43 ?1239次閱讀
    GTC2022大會(huì)亮點(diǎn):<b class='flag-5'>RAPIDS</b>是<b class='flag-5'>NVIDIA</b>備受歡迎的<b class='flag-5'>NVIDIA</b> SDK之一

    NVIDIA RAPIDS加速器可將工作分配集群中各節(jié)點(diǎn)

    近期,該團(tuán)隊(duì)在 GPU 助力的服務(wù)器上測(cè)試了適用于 Apache Spark 的 NVIDIA RAPIDS 加速器,該軟件可將工作分配到集群中的各節(jié)點(diǎn)。
    的頭像 發(fā)表于 04-01 14:15 ?1042次閱讀

    具有RAPIDS cuMLGPU加速分層DBSCAN

      我們將通過(guò)快速示例演示 HDBSCAN 的 RAPIDS cuML 實(shí)現(xiàn)中當(dāng)前支持的功能,并將提供我們?cè)?GPU實(shí)現(xiàn)的一些實(shí)際示例和
    的頭像 發(fā)表于 04-18 16:15 ?3758次閱讀
    具有<b class='flag-5'>RAPIDS</b> <b class='flag-5'>cuML</b>的<b class='flag-5'>GPU</b>加速分層DBSCAN

    AutoML技術(shù)提高NVIDIA GPURAPIDS速度

      AutoGluon AutoML 工具箱使培訓(xùn)和部署尖端技術(shù)變得很容易 復(fù)雜業(yè)務(wù)問(wèn)題的精確機(jī)器學(xué)習(xí)模型。此外, AutoGluon 與 RAPIDS 的集成充分利用了 NVIDIA GPU 計(jì)算的潛力,使復(fù)雜模型的訓(xùn)練速度提
    的頭像 發(fā)表于 04-26 16:01 ?1970次閱讀
    AutoML技術(shù)提高<b class='flag-5'>NVIDIA</b> <b class='flag-5'>GPU</b>和<b class='flag-5'>RAPIDS</b>速度

    使用 RAPIDS 進(jìn)行更快的單細(xì)胞分析

    使用 RAPIDS-singlecell 進(jìn)行 GPU 加速的單細(xì)胞 RNA 分析
    的頭像 發(fā)表于 07-05 16:30 ?597次閱讀
    使用 <b class='flag-5'>RAPIDS</b> 進(jìn)行更快的單細(xì)胞分析