本發(fā)明涉及深度學(xué)習(xí),特別涉及一種氨基酸序列的三維結(jié)構(gòu)推理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、alphafold模型使用深度學(xué)習(xí)方法,僅根據(jù)蛋白質(zhì)的氨基酸序列來推理蛋白質(zhì)的三維結(jié)構(gòu),對(duì)生物學(xué)研究和醫(yī)學(xué)研究都有著有潛在的價(jià)值。
2、然而alphafold模型所需要的計(jì)算量較大,在中央處理器(cpu,centralprocessing?unit?/?processor)上推理較慢,難以在實(shí)際使用中得到廣泛的應(yīng)用,為此,研究人員嘗試在gpgpu(general?purpose?computing?on?gpu,在圖形處理器上進(jìn)行通用計(jì)算)、人工智能加速器等高性能計(jì)算單元上進(jìn)行推理,然而高性能計(jì)算單元往往存在內(nèi)存受限的問題,并且蛋白質(zhì)的三維結(jié)構(gòu)在推理時(shí)動(dòng)態(tài)性較強(qiáng),而高性能計(jì)算單元無法很好的處理動(dòng)態(tài)性較強(qiáng)的推理運(yùn)算。
3、為此,上述技術(shù)問題亟待本領(lǐng)域技術(shù)人員解決。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種氨基酸序列的三維結(jié)構(gòu)推理方法、裝置、設(shè)備及介質(zhì),能夠解決高性能計(jì)算單元內(nèi)存受限以及無法很好的處理動(dòng)態(tài)性較強(qiáng)的推理運(yùn)算的問題,其具體方案如下:
2、第一方面,本技術(shù)公開了一種氨基酸序列的三維結(jié)構(gòu)推理方法,應(yīng)用于推理設(shè)備,包括:
3、根據(jù)待推理氨基酸序列的長(zhǎng)度信息確定目標(biāo)維度信息;
4、將目標(biāo)推理模型拆分為與本地第一處理器的運(yùn)算特點(diǎn)相適配的第一子模型及與本地第二處理器的運(yùn)算特點(diǎn)相適配的第二子模型;所述第二處理器為與所述第一處理器的類型不同且滿足預(yù)設(shè)高性能條件的處理器,所述第二處理器中的內(nèi)存單元通過預(yù)設(shè)連接通道對(duì)所述推理設(shè)備的設(shè)備內(nèi)存進(jìn)行訪問;
5、將所述第一子模型和所述第二子模型分別相應(yīng)分配至所述第一處理器和所述第二處理器;
6、通過所述第一處理器利用所述第一子模型對(duì)所述待推理氨基酸序列進(jìn)行運(yùn)算,得到第一運(yùn)算結(jié)果;
7、通過所述第二處理器利用基于所述目標(biāo)維度信息確定的拆分單位對(duì)所述第二子模型、所述第二子模型的權(quán)重?cái)?shù)據(jù)以及所述第一運(yùn)算結(jié)果進(jìn)行拆分,然后將拆分后子模型編譯為可執(zhí)行文件,并利用拆分后權(quán)重?cái)?shù)據(jù)與所述可執(zhí)行文件對(duì)拆分后運(yùn)算結(jié)果進(jìn)行運(yùn)算,得到多個(gè)第二運(yùn)算結(jié)果;
8、通過所述第二處理器對(duì)多個(gè)所述第二運(yùn)算結(jié)果進(jìn)行拼接,并利用對(duì)拼接結(jié)果進(jìn)行處理后得到的處理結(jié)果確定所述待推理氨基酸序列的三維結(jié)構(gòu)。
9、可選的,所述通過所述第二處理器利用基于所述目標(biāo)維度信息確定的拆分單位對(duì)所述第二子模型、所述第二子模型的權(quán)重?cái)?shù)據(jù)以及所述第一運(yùn)算結(jié)果進(jìn)行拆分之前,還包括:
10、通過所述預(yù)設(shè)連接通道將保存在所述設(shè)備內(nèi)存中的所述第二子模型的權(quán)重?cái)?shù)據(jù)拷貝至所述內(nèi)存單元,以便從所述內(nèi)存單元中獲取所述第二子模型的權(quán)重?cái)?shù)據(jù)。
11、可選的,所述通過所述第一處理器利用所述第一子模型對(duì)所述待推理氨基酸序列進(jìn)行運(yùn)算,得到第一運(yùn)算結(jié)果,包括:
12、通過所述第一處理器利用所述第一子模型將所述待推理氨基酸序列與預(yù)設(shè)基因數(shù)據(jù)庫中的氨基酸序列進(jìn)行比對(duì),得到第一多序列比對(duì)矩陣;
13、通過所述第一處理器利用所述第一子模型將所述待推理氨基酸序列與預(yù)設(shè)結(jié)構(gòu)數(shù)據(jù)庫中的結(jié)構(gòu)數(shù)據(jù)進(jìn)行比對(duì),得到第一結(jié)構(gòu)比對(duì)矩陣;
14、相應(yīng)的,通過所述第二處理器對(duì)所述第一運(yùn)算結(jié)果進(jìn)行拆分,包括:
15、通過所述第二處理器對(duì)所述第一多序列比對(duì)矩陣和所述第一結(jié)構(gòu)比對(duì)矩陣進(jìn)行拆分,得到包含拆分后第一多序列比對(duì)矩陣和拆分后第一結(jié)構(gòu)比對(duì)矩陣的所述拆分后運(yùn)算結(jié)果;
16、并且,所述可執(zhí)行文件包括共享所述拆分后權(quán)重?cái)?shù)據(jù)的多個(gè)神經(jīng)網(wǎng)絡(luò)組件;相應(yīng)的,所述利用拆分后權(quán)重?cái)?shù)據(jù)與所述可執(zhí)行文件對(duì)拆分后運(yùn)算結(jié)果進(jìn)行運(yùn)算,得到多個(gè)第二運(yùn)算結(jié)果,包括:
17、根據(jù)所述拆分后權(quán)重?cái)?shù)據(jù)與所述神經(jīng)網(wǎng)絡(luò)組件對(duì)所述拆分后第一多序列比對(duì)矩陣與所述拆分后第一結(jié)構(gòu)比對(duì)矩陣進(jìn)行運(yùn)算,以分別得到與所述拆分后第一多序列比對(duì)矩陣對(duì)應(yīng)的多個(gè)所述第二運(yùn)算結(jié)果以及與所述拆分后第一結(jié)構(gòu)比對(duì)矩陣對(duì)應(yīng)的多個(gè)所述第二運(yùn)算結(jié)果。
18、可選的,所述根據(jù)所述拆分后權(quán)重?cái)?shù)據(jù)與所述神經(jīng)網(wǎng)絡(luò)組件對(duì)所述拆分后第一多序列比對(duì)矩陣與所述拆分后第一結(jié)構(gòu)比對(duì)矩陣進(jìn)行運(yùn)算之后,還包括:
19、對(duì)所述內(nèi)存單元中的所述第二子模型的權(quán)重?cái)?shù)據(jù)進(jìn)行釋放。
20、可選的,所述通過所述第二處理器對(duì)多個(gè)所述第二運(yùn)算結(jié)果進(jìn)行拼接,包括;
21、通過所述第二處理器對(duì)與所述拆分后第一多序列比對(duì)矩陣對(duì)應(yīng)的多個(gè)所述第二運(yùn)算結(jié)果進(jìn)行拼接,得到第二多序列比對(duì)矩陣;
22、通過所述第二處理器對(duì)與所述拆分后第一結(jié)構(gòu)比對(duì)矩陣對(duì)應(yīng)的多個(gè)所述第二運(yùn)算結(jié)果進(jìn)行拼接,得到第二結(jié)構(gòu)比對(duì)矩陣。
23、可選的,在利用對(duì)拼接結(jié)果進(jìn)行處理后得到的處理結(jié)果確定所述待推理氨基酸序列的三維結(jié)構(gòu)的過程中,包括:
24、基于預(yù)設(shè)注意力機(jī)制對(duì)所述第二多序列比對(duì)矩陣與所述第二結(jié)構(gòu)比對(duì)矩陣進(jìn)行處理,得到目標(biāo)權(quán)重矩陣;其中,所述目標(biāo)權(quán)重矩陣中包含與所述待推理氨基酸序列相匹配的多個(gè)目標(biāo)氨基酸序列的權(quán)重值。
25、可選的,所述利用對(duì)拼接結(jié)果進(jìn)行處理后得到的處理結(jié)果確定所述待推理氨基酸序列的三維結(jié)構(gòu),包括:
26、對(duì)所述目標(biāo)權(quán)重矩陣與所述第一多序列比對(duì)矩陣進(jìn)行外積運(yùn)算,并根據(jù)外積運(yùn)算結(jié)果的平均值確定所述待推理氨基酸序列的特征,以便根據(jù)所述待推理氨基酸序列的特征得到所述待推理氨基酸序列的三維結(jié)構(gòu)。
27、第二方面,本技術(shù)公開了一種氨基酸序列的三維結(jié)構(gòu)推理裝置,應(yīng)用于推理設(shè)備,包括:
28、維度確定模塊,用于根據(jù)待推理氨基酸序列的長(zhǎng)度信息確定目標(biāo)維度信息;
29、第一拆分模塊,用于將目標(biāo)推理模型拆分為與本地第一處理器的運(yùn)算特點(diǎn)相適配的第一子模型及與本地第二處理器的運(yùn)算特點(diǎn)相適配的第二子模型;所述第二處理器為與所述第一處理器的類型不同且滿足預(yù)設(shè)高性能條件的處理器,所述第二處理器中的內(nèi)存單元通過預(yù)設(shè)連接通道對(duì)所述推理設(shè)備的設(shè)備內(nèi)存進(jìn)行訪問;
30、模型分配模塊,用于將所述第一子模型和所述第二子模型分別相應(yīng)分配至所述第一處理器和所述第二處理器;
31、第一運(yùn)算模塊,用于通過所述第一處理器利用所述第一子模型對(duì)所述待推理氨基酸序列進(jìn)行運(yùn)算,得到第一運(yùn)算結(jié)果;
32、第二拆分模塊,用于通過所述第二處理器利用基于所述目標(biāo)維度信息確定的拆分單位對(duì)所述第二子模型、所述第二子模型的權(quán)重?cái)?shù)據(jù)以及所述第一運(yùn)算結(jié)果進(jìn)行拆分;
33、第二運(yùn)算模塊,用于將拆分后子模型編譯為可執(zhí)行文件,并利用拆分后權(quán)重?cái)?shù)據(jù)與所述可執(zhí)行文件對(duì)拆分后運(yùn)算結(jié)果進(jìn)行運(yùn)算,得到多個(gè)第二運(yùn)算結(jié)果;
34、三維結(jié)構(gòu)確定模塊,用于通過所述第二處理器對(duì)多個(gè)所述第二運(yùn)算結(jié)果進(jìn)行拼接,并利用對(duì)拼接結(jié)果進(jìn)行處理后得到的處理結(jié)果確定所述待推理氨基酸序列的三維結(jié)構(gòu)。
35、第三方面,本技術(shù)公開了一種電子設(shè)備,包括:
36、存儲(chǔ)器,用于保存計(jì)算機(jī)程序;
37、處理器,用于執(zhí)行所述計(jì)算機(jī)程序,以實(shí)現(xiàn)前述公開的氨基酸序列的三維結(jié)構(gòu)推理方法。
38、第四方面,本技術(shù)公開了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于保存計(jì)算機(jī)程序;其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)前述公開的氨基酸序列的三維結(jié)構(gòu)推理方法。
39、可見,本技術(shù)提出了一種氨基酸序列的三維結(jié)構(gòu)推理方法,應(yīng)用于推理設(shè)備,包括:根據(jù)待推理氨基酸序列的長(zhǎng)度信息確定目標(biāo)維度信息;將目標(biāo)推理模型拆分為與本地第一處理器的運(yùn)算特點(diǎn)相適配的第一子模型及與本地第二處理器的運(yùn)算特點(diǎn)相適配的第二子模型;所述第二處理器為與所述第一處理器的類型不同且滿足預(yù)設(shè)高性能條件的處理器,所述第二處理器中的內(nèi)存單元通過預(yù)設(shè)連接通道對(duì)所述推理設(shè)備的設(shè)備內(nèi)存進(jìn)行訪問;將所述第一子模型和所述第二子模型分別相應(yīng)分配至所述第一處理器和所述第二處理器;通過所述第一處理器利用所述第一子模型對(duì)所述待推理氨基酸序列進(jìn)行運(yùn)算,得到第一運(yùn)算結(jié)果;通過所述第二處理器利用基于目標(biāo)維度信息確定的拆分單位對(duì)第二子模型、所述第二子模型的權(quán)重?cái)?shù)據(jù)以及所述第一運(yùn)算結(jié)果進(jìn)行拆分,然后將拆分后子模型編譯為可執(zhí)行文件,并利用拆分后權(quán)重?cái)?shù)據(jù)與可執(zhí)行文件對(duì)拆分后運(yùn)算結(jié)果進(jìn)行運(yùn)算,得到多個(gè)第二運(yùn)算結(jié)果;通過第二處理器對(duì)多個(gè)第二運(yùn)算結(jié)果進(jìn)行拼接,并利用對(duì)拼接結(jié)果進(jìn)行處理后得到的處理結(jié)果確定所述待推理氨基酸序列的三維結(jié)構(gòu)。
40、有益效果:針對(duì)本技術(shù)中的推理架構(gòu),內(nèi)存與計(jì)算單元的單元內(nèi)存相互連接,如此一來,計(jì)算單元可借助于與單元內(nèi)存相互連接的內(nèi)存實(shí)現(xiàn)推理運(yùn)算,解決了高性能計(jì)算單元在推理時(shí)單元內(nèi)存的受限的問題。進(jìn)一步的,本技術(shù)將目標(biāo)推理模型拆分為第一子模型與第二子模型,并將第一子模型分配至中央處理器及將所述第二子模型分配至計(jì)算單元,以便由中央處理器與高性能計(jì)算單元分別完成與各自相適配的推理運(yùn)算,減輕了高性能計(jì)算單元的工作負(fù)載,進(jìn)一步改善了高性能計(jì)算單元在推理時(shí)單元內(nèi)存的受限的問題。此外,本技術(shù)由高性能計(jì)算單元完成對(duì)涉及較多運(yùn)算量的第二子模型的運(yùn)算,在解決內(nèi)存受限的問題的同時(shí)提高了運(yùn)算性能。此外,本技術(shù)提出將拆分后子模型編譯為可執(zhí)行文件,如此一來,實(shí)現(xiàn)將動(dòng)態(tài)的推理運(yùn)算轉(zhuǎn)換為靜態(tài)計(jì)算圖,解決了高性能計(jì)算單元無法很好的處理動(dòng)態(tài)性較強(qiáng)的推理運(yùn)算的問題。