來源:hao123百家號(hào) 時(shí)間:2022-03-07 12:25:37
機(jī)器之心報(bào)道
編輯:小舟、蛋醬
AlphaFold 雖好,但耗時(shí)且成本高,現(xiàn)在首個(gè)用于蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)模型的性能優(yōu)化方案來了。
蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)一直是結(jié)構(gòu)生物學(xué)中的一個(gè)重要的研究問題。直接從蛋白質(zhì)的氨基酸序列預(yù)測(cè)蛋白質(zhì)的三維結(jié)構(gòu)在許多領(lǐng)域都有廣泛的應(yīng)用,包括藥物設(shè)計(jì)、蛋白質(zhì)設(shè)計(jì)等。
預(yù)測(cè)蛋白質(zhì)結(jié)構(gòu)的方法主要有兩種:實(shí)驗(yàn)方法和計(jì)算方法。實(shí)驗(yàn)方法需要以高昂的時(shí)間和經(jīng)濟(jì)成本獲得更準(zhǔn)確的蛋白質(zhì)結(jié)構(gòu)。計(jì)算方法則能夠以低成本高吞吐量預(yù)測(cè)蛋白質(zhì)結(jié)構(gòu),因此提高計(jì)算方法的預(yù)測(cè)精度至關(guān)重要。借助深度神經(jīng)網(wǎng)絡(luò),AlphaFold 能夠周期性地以原子精度預(yù)測(cè)蛋白質(zhì)結(jié)構(gòu),但 AlphaFold 模型的訓(xùn)練和推理由于其特殊的性能特點(diǎn)和巨大的內(nèi)存消耗,既耗時(shí)又昂貴。
基于此,來自潞晨科技和上海交大的研究者提出了一種蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)模型的高效實(shí)現(xiàn) FastFold。 FastFold 包括一系列基于對(duì) AlphaFold 性能全面分析的 GPU 優(yōu)化。同時(shí),通過動(dòng)態(tài)軸并行和對(duì)偶異步算子,F(xiàn)astFold 提高了模型并行擴(kuò)展的效率,超越了現(xiàn)有的模型并行方法。
論文地址:https://arxiv.org/abs/2203.00854
實(shí)驗(yàn)結(jié)果表明,F(xiàn)astFold 將整體訓(xùn)練時(shí)間從 11 天減少到 67 小時(shí),并實(shí)現(xiàn)了 7.5 9.5 倍的長(zhǎng)序列推理加速。此外,研究者還將 FastFold 擴(kuò)展到 512 個(gè) A100 GPU 的超算集群上,聚合峰值性能達(dá)到了 6.02PetaFLOPs,擴(kuò)展效率達(dá)到 90.1%。
FastFold
不同于一般的 Transformer 模型,AlphaFold 在 GPU 平臺(tái)上的計(jì)算效率較低,主要面臨兩個(gè)挑戰(zhàn):1) 有限的全局批大小限制了使用數(shù)據(jù)并行性將訓(xùn)練擴(kuò)展到更多節(jié)點(diǎn),更大的批大小會(huì)導(dǎo)致準(zhǔn)確率更低。即使使用 128 個(gè)谷歌 TPUv3 訓(xùn)練 AlphaFold 也需要約 11 天; 2) 巨大的內(nèi)存消耗超出了當(dāng)前 GPU 的處理能力。在推理過程中,較長(zhǎng)的序列對(duì) GPU 內(nèi)存的需求要大得多,對(duì)于 AlphaFold 模型,一個(gè)長(zhǎng)序列的推理時(shí)間甚至可以達(dá)到幾個(gè)小時(shí)。
AlphaFold 模型架構(gòu)
作為首個(gè)用于蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)模型訓(xùn)練和推理的性能優(yōu)化工作,F(xiàn)astFold 成功引入了大型模型訓(xùn)練技術(shù),顯著降低了 AlphaFold 模型訓(xùn)練和推理的時(shí)間和經(jīng)濟(jì)成本。
FastFold 由 Evoformer 的高性能實(shí)現(xiàn)、AlphaFold 的主干結(jié)構(gòu)和一種稱為動(dòng)態(tài)軸并行(Dynamic Axial Parallelism,DAP)的模型并行新策略組成。
Evoformer
根據(jù)計(jì)算和存儲(chǔ)訪問的特點(diǎn),該研究將算子分為三大類:
1) GEMM。這類包括矩陣乘法、批矩陣 - 矩陣相乘和其他密集矩陣計(jì)算。來自 NVIDIA Tesla GPU 的張量核可以顯著加速 GEMM 算子;
2)批遞減算子。這類包括 LayerNorm、 Softmax 等,計(jì)算強(qiáng)度低于 GEMM 算子,并且更容易出現(xiàn)訪問瓶頸。
3)Element-wise 算子。這類包括 element-wise 的相加、相乘、dropout 和激活,是計(jì)算密集度最低的一類。
Evoformer 的注意力機(jī)制如下圖所示
值得注意的是,Evoformer 和原版 Transformer 之間有幾個(gè)關(guān)鍵區(qū)別:
該研究分析了 Evoformer 的復(fù)雜結(jié)構(gòu)并進(jìn)行了內(nèi)核融合,并針對(duì) Evoformer 中的特定操作和基于性能特征的特定內(nèi)核進(jìn)行了優(yōu)化,例如 Softmax 和 LayerNorm。高性能的 Evoformer 實(shí)現(xiàn)大大降低了訓(xùn)練和推理的經(jīng)濟(jì)成本。
動(dòng)態(tài)軸并行
在并行策略方面,該研究根據(jù) AlphaFold 的計(jì)算特征創(chuàng)新性地提出了動(dòng)態(tài)軸并行策略,在 AlphaFold 的特征的序列方向上進(jìn)行數(shù)據(jù)劃分,并使用 All_to_All 進(jìn)行通信。動(dòng)態(tài)軸并行(DAP)在擴(kuò)展效率方面優(yōu)于當(dāng)前的標(biāo)準(zhǔn)張量并行(Tensor Parallelism),DAP 具有以下幾個(gè)優(yōu)勢(shì):
支持 Evoformer 中的所有計(jì)算模塊;所需的通信量比張量并行小得多;顯存消耗比張量并行低;給通信優(yōu)化提供了更多的空間,如計(jì)算通信重疊。
通信優(yōu)化
在通信方面,該研究提出了由一對(duì)通信算子組成的對(duì)偶異步算子(Duality Async Operation)。
這種新方法在模型前向傳播的過程中,前一個(gè)通信算子觸發(fā)異步通信,然后在計(jì)算流上進(jìn)行一些沒有依賴性的計(jì)算,然后后一個(gè)通信算子阻塞,直到通信完成;在反向傳播的過程中,后一個(gè)算子將觸發(fā)異步通信,前一個(gè)算子阻塞通信。
利用對(duì)偶異步算子可以很容易地在 PyTorch 這樣的動(dòng)態(tài)框架上實(shí)現(xiàn)前向傳播和反向傳播中的計(jì)算和通信遮疊。
評(píng)估
研究者首先評(píng)估了 Evoformer 內(nèi) 核的性能改進(jìn),然后對(duì)端到端訓(xùn)練和推理性能進(jìn)行了評(píng)估。所有的實(shí)驗(yàn)都在 NVIDIA Tesla A100 平臺(tái)上進(jìn)行?;€是 AlphaFold 的官方實(shí)現(xiàn)和另一個(gè) OpenFold 開源 PyTorch 實(shí)現(xiàn)。官方實(shí)現(xiàn)的 AlphaFold 只有推理部分,而 OpenFold 則是根據(jù)原始 AlphaFold 論文復(fù)制訓(xùn)練和推理的。
A. Evoformer 性能
圖 8(a)和圖 9(a)分別展示了 Fused Softmax 和 LayerNorm 的性能比較。
對(duì)于 Fused Softmax,研究者比較了 PyTorch 原生內(nèi)核和 FastFold 優(yōu)化內(nèi)核的性能。注意力輸入序列的長(zhǎng)度是 x,注意力的隱藏大小是 y。從圖 8(a)可以看出,F(xiàn)astFold 內(nèi)核的性能可以提高 1.773.32 倍 。
對(duì)于 LayerNorm,研究者不僅比較了 PyTorch 原生內(nèi)核,還比較了 NVIDIA Apex 中高度優(yōu)化的 LayerNorm 內(nèi)核。如圖 9(a) ,F(xiàn)astFold 的性能比 PyTorch 和 Apex 分別提高了 5.538.65 倍 和 1.201.62 倍 。由于對(duì)有限范圍的特別優(yōu)化,相比于高度優(yōu)化的 Apex LayerNorm,F(xiàn)astFold 也實(shí)現(xiàn)了良好的性能改進(jìn)。
B. 端到端訓(xùn)練性能
在端到端訓(xùn)練表現(xiàn)的評(píng)估中,研究者使用官方 AlphaFold 文件中的訓(xùn)練參數(shù)進(jìn)行了盡可能多的測(cè)試。這樣可以更好地比較不同的方法或?qū)崿F(xiàn)在實(shí)際的訓(xùn)練場(chǎng)景中的工作方式。所有的訓(xùn)練實(shí)驗(yàn)都是在 128 節(jié)點(diǎn)的 GPU 超級(jí)計(jì)算機(jī)上進(jìn)行的。在超級(jí)計(jì)算機(jī)中,每個(gè)節(jié)點(diǎn)包括 4 臺(tái) NVIDIA Tesla A100,并且有 NVIDIA NVLink 用于 GPU 互連。
由于張量并行更多地依賴于設(shè)備之間的高速互連來進(jìn)行通信,在訓(xùn)練期間,模型并行通常用于節(jié)點(diǎn)以及訓(xùn)練期間節(jié)點(diǎn)之間的數(shù)據(jù)并行。研究者分別在模型并行和數(shù)據(jù)并行兩個(gè)級(jí)別測(cè)試了模型的訓(xùn)練性能,結(jié)果如圖 10 和圖 11 所示。在模型并行性方面,論文比較了張量并行和動(dòng)態(tài)軸并行兩種并行方法在初始訓(xùn)練和微調(diào)兩種訓(xùn)練設(shè)置下的 scalability。
如圖 10 所示,在初始訓(xùn)練和微調(diào)方面,DAP 的擴(kuò)展性能明顯優(yōu)于 TP。
擴(kuò)展結(jié)果如圖 11 所示。我們可以看到,在接下來的幾個(gè)平行里,基本上是線性規(guī)模的。微調(diào)訓(xùn)練的擴(kuò)展效率達(dá)到 90.1% 。
根據(jù)訓(xùn)練效果的評(píng)估結(jié)果,可以推算出 AlphaFold 的總體時(shí)間和經(jīng)濟(jì)成本。表 IV 列出并比較了 AlphaFold、 OpenFold 和 FastFold 三種實(shí)現(xiàn)的時(shí)間和經(jīng)濟(jì)成本。由于沒有公開的訓(xùn)練代碼,所以 AlphaFold 的數(shù)據(jù)來源于官方文件。
考慮到時(shí)間和經(jīng)濟(jì)成本,研究者選用了 256 個(gè) A100 進(jìn)行初始訓(xùn)練,然后在微調(diào)階段擴(kuò)展到 512 個(gè) A100。
基于這種設(shè)置,F(xiàn)astFold 可以將訓(xùn)練時(shí)間減少到 2.81 天。與需要 11 天訓(xùn)練的 AlphaFold 相比,訓(xùn)練的時(shí)間成本減少了 3.91 倍。與 OpenFold 相比,訓(xùn)練的時(shí)間成本降低了 2.98 倍,經(jīng)濟(jì)成本降低了 20% 。
在微調(diào)階段,F(xiàn)astFold 在 512 × A100 的設(shè)置下實(shí)現(xiàn)了 6.02 PetaFLOPs 的計(jì)算速度。由于時(shí)間和經(jīng)濟(jì)成本的顯著降低,F(xiàn)astFold 使得蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)模型的訓(xùn)練速度更快、成本更低,這將推動(dòng)相關(guān)模型的研究和開發(fā)效率,并促進(jìn)基于 Evoformer 的蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)模型的開發(fā)。
C. 端到端推理性能
針對(duì)短序列、長(zhǎng)序列和超長(zhǎng)序列,研究者對(duì)比了 FastFold、OpenFold、AlphaFold 的推理性能。所有推理實(shí)驗(yàn)均在由 8 個(gè) NVIDIA A100(帶有 NVLink)組成的 GPU 服務(wù)器上完成。
對(duì)于短序列,典型的氨基酸序列長(zhǎng)度不超過 1k,單個(gè)模型推理需要幾秒鐘到大約一分鐘。在這個(gè)序列范圍內(nèi),視頻內(nèi)存消耗相對(duì)較小,分布式推理的效率較低。
研究者在 1 個(gè) GPU 上比較了三種實(shí)現(xiàn)的推理延遲,結(jié)果如圖 12 所示:
對(duì)于長(zhǎng)度為 1k 到 2.5 k 的氨基酸序列的長(zhǎng)序列推斷,直接推理會(huì)遇到內(nèi)存容量問題,推理時(shí)間達(dá)到幾分鐘甚至幾十分鐘。對(duì)于 FastFold,采用分布式推理方法可以減少內(nèi)存容量的需求,顯著縮短推理時(shí)間。如圖 13 所示,當(dāng)使用分布式推理時(shí),F(xiàn)astFold 比 OpenFold 減少推理時(shí)間 7.59.5 倍 ,比 AlphaFold 減少推理時(shí)間 9.311.6 倍 。
如表 3 所示,對(duì)于 AlphaFold 和 OpenFold,當(dāng)序列長(zhǎng)度達(dá)到 3k 之上時(shí),都會(huì)遇到內(nèi)存不足 (OOM) 問題。然而,對(duì)于 FastFold,由于分布式推理方法,它可以利用 GPU 更多的計(jì)算和內(nèi)存來完成極長(zhǎng)的序列推理。此外,對(duì)于長(zhǎng)度高達(dá) 4k 的序列,F(xiàn)astFold 的推理延遲 在 10 分鐘之內(nèi)。
作者介紹
本文的作者之一尤洋現(xiàn)為新加坡國(guó)立大學(xué)計(jì)算機(jī)系任助理教授。2020 年,尤洋在加州大學(xué)伯克利分校計(jì)算機(jī)系獲得博士學(xué)位。
尤洋的主要研究方向是高性能計(jì)算與機(jī)器學(xué)習(xí)的交叉領(lǐng)域,當(dāng)前研究重點(diǎn)為大規(guī)模深度學(xué)習(xí)訓(xùn)練算法的分布式優(yōu)化。他曾其以一作作者的身份發(fā)表研究論文《Large Batch Optimization for Deep Learning :Training BERT in 76 Minutes》,提出了一種 LAMB 優(yōu)化器(Layer-wise Adaptive Moments optimizer for Batch training),將超大模型 BERT 的預(yù)訓(xùn)練時(shí)間由 3 天縮短到了 76 分鐘,刷新世界記錄。到目前為止,LAMB 仍為機(jī)器學(xué)習(xí)領(lǐng)域的主流優(yōu)化器,成果被 Google、Facebook、騰訊等科技巨頭在實(shí)際中使用。
2021 年 7 月,尤洋在北京中關(guān)村創(chuàng)辦了高性能計(jì)算公司「潞晨科技」。不久后,潞晨科技即宣布完成超千萬元種子輪融資,該公司創(chuàng)業(yè)目標(biāo)是「最大化人工智能開發(fā)速度的同時(shí),最小化人工智能模型部署成本」。
參考鏈接:
https://weibo.com/ttarticle/p/show?id=2309404742878697226261
標(biāo)簽: 訓(xùn)練時(shí)間
信用卡金卡和普卡區(qū)別有哪些?有什么辦理?xiàng)l件
銀行信用卡的等級(jí)大致分為三種,金卡、普卡和白金卡。每種卡片對(duì)于持卡人的資質(zhì)要求都是...
藥監(jiān)局發(fā)布消費(fèi)提示:化妝品小樣需在標(biāo)簽處呈現(xiàn)
廣東省藥監(jiān)局官方微信日前發(fā)布消費(fèi)提示類文章稱:近日,有關(guān)化妝品小樣的報(bào)道引起熱議。...
眼鏡成多家奢侈品巨頭布局賽道 眼鏡行業(yè)受捧
繼皮具、配飾之外,眼鏡正在成為多家奢侈品巨頭爭(zhēng)相布局的賽道。而這個(gè)背后,正是年輕一...
功效護(hù)膚賽道兩極分化 企業(yè)紛紛加碼研發(fā)
國(guó)內(nèi)功效護(hù)膚賽道呈現(xiàn)兩極分化:一邊是功效護(hù)膚巨頭手握營(yíng)收高速增長(zhǎng)的光鮮業(yè)績(jī),一邊則...
“少年航天科普特訓(xùn)營(yíng)”舉行,VR空間站引關(guān)注