国精产品一二三区传媒公司,国产午夜精品一区二区三区软件 ,国产精品麻豆va在线播放,国产精品一区二区三区,亚洲综合

512塊A100,AlphaFold訓(xùn)練時(shí)間壓縮至67h:尤洋團(tuán)隊(duì)FastFold上線

來源: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í)間

精彩放送