0
作者 | 青暮
編輯 | 岑峰
如今,深度學(xué)習(xí)再次向人類(lèi)表明:計(jì)算機(jī)不是單純地復(fù)刻人類(lèi)的思維邏輯并加速的機(jī)器,它也可以產(chǎn)生新的思維方式。
如果說(shuō)圖像識(shí)別、機(jī)器翻譯、語(yǔ)音生成等等應(yīng)用都還是小試牛刀,其表現(xiàn)都還在人類(lèi)預(yù)料之中,那么百億甚至千億參數(shù)規(guī)模的預(yù)訓(xùn)練模型展現(xiàn)的多任務(wù)能力,便是人類(lèi)不斷地體會(huì)驚訝的開(kāi)始,也是接近理解自身的開(kāi)始。
難以想象,當(dāng)初僅僅作為NLP子領(lǐng)域之一的自監(jiān)督學(xué)習(xí)語(yǔ)言模型,卻在擴(kuò)大了參數(shù)規(guī)模、采用了Transformer架構(gòu)之后,在2018年橫掃11項(xiàng)NLP任務(wù),成為AI社區(qū)人盡皆知、3年時(shí)間引用量接近3萬(wàn)的BERT。
自那以后,基于預(yù)訓(xùn)練構(gòu)造大型語(yǔ)言模型便成為一種基本操作,這是大模型時(shí)代開(kāi)始的標(biāo)志。
到如今,作為AI的底座能力,大規(guī)模預(yù)訓(xùn)練模型已成為全球AI領(lǐng)域的技術(shù)新高地。
12月8日,鵬城實(shí)驗(yàn)室與百度聯(lián)合召開(kāi)發(fā)布會(huì),正式發(fā)布雙方共同研發(fā)的全球首個(gè)知識(shí)增強(qiáng)千億大模型——鵬城-百度·文心(模型版本號(hào):ERNIE 3.0 Titan),該模型參數(shù)規(guī)模達(dá)到2600億,是目前全球最大中文單體模型,在60多項(xiàng)任務(wù)中取得最好效果。
同時(shí),百度產(chǎn)業(yè)級(jí)知識(shí)增強(qiáng)大模型“文心”全景圖首次亮相。
中國(guó)工程院院士、鵬城實(shí)驗(yàn)室主任高文,百度首席技術(shù)官王海峰聯(lián)合發(fā)布鵬城-百度·文心
目前,鵬城-百度·文心已在機(jī)器閱讀理解、文本分類(lèi)、語(yǔ)義相似度計(jì)算等60多項(xiàng)任務(wù)中取得最好效果,并在30余項(xiàng)小樣本和零樣本任務(wù)上刷新基準(zhǔn)。
在鵬城-百度·文心背后,得益于鵬城實(shí)驗(yàn)室的算力系統(tǒng) “鵬城云腦Ⅱ”和百度自研的深度學(xué)習(xí)平臺(tái)“飛槳”強(qiáng)強(qiáng)聯(lián)手,解決了超大模型訓(xùn)練的多個(gè)公認(rèn)技術(shù)難題,使鵬城-百度·文心訓(xùn)練速度大幅提升,模型效果更優(yōu)。
為解決大模型應(yīng)用落地難題,百度團(tuán)隊(duì)首創(chuàng)大模型在線(xiàn)蒸餾技術(shù),模型參數(shù)壓縮率可達(dá)99.98%。
鵬城-百度·文心是百度文心“知識(shí)增強(qiáng)大模型”系列中十分重要的基礎(chǔ)通用大模型。
為推動(dòng)技術(shù)創(chuàng)新和落地應(yīng)用,百度文心既包含基礎(chǔ)通用的大模型,也包含了面向重點(diǎn)領(lǐng)域和重點(diǎn)任務(wù)的大模型,還提供豐富的工具與平臺(tái),支撐企業(yè)與開(kāi)發(fā)者進(jìn)行高效便捷的應(yīng)用開(kāi)發(fā)。
文心全景圖
此次發(fā)布的鵬城-百度·文心在ERNIE 3.0基礎(chǔ)上全新升級(jí),后者此前曾在國(guó)際權(quán)威的復(fù)雜語(yǔ)言理解任務(wù)評(píng)測(cè)SuperGLUE上超越谷歌的T5、OpenAI的GPT-3等大模型,以超越人類(lèi)水平0.8個(gè)百分點(diǎn)的成績(jī)登頂全球榜首。
百度是業(yè)界少有的專(zhuān)注攻關(guān)知識(shí)增強(qiáng)型預(yù)訓(xùn)練大模型的企業(yè),有知識(shí)加持的文本數(shù)據(jù)自然讓模型更有內(nèi)涵。此次升級(jí)的意義,不僅僅是簡(jiǎn)單地放大參數(shù)量,在這背后支撐的是堅(jiān)如磐石的根基——也就是基礎(chǔ)設(shè)施能力:鵬城實(shí)驗(yàn)室的E級(jí)超算,以及飛槳的超大模型訓(xùn)練與推理框架。
大規(guī)模預(yù)訓(xùn)練語(yǔ)言模型的基本訓(xùn)練方法是自監(jiān)督學(xué)習(xí),自監(jiān)督學(xué)習(xí)語(yǔ)言模型的一般過(guò)程,是基于前文或上下文,來(lái)預(yù)測(cè)被掩蓋的單詞或短語(yǔ),通俗來(lái)說(shuō)就是做填空題。
為什么這樣的學(xué)習(xí)范式有效?用反事實(shí)學(xué)習(xí)的原理簡(jiǎn)單理解就是,只要多試試一個(gè)單詞出現(xiàn)與否對(duì)另一個(gè)單詞出現(xiàn)與否的影響,就可以總結(jié)出兩者的關(guān)聯(lián)程度。
如果是在涉及現(xiàn)實(shí)知識(shí)的句子中訓(xùn)練,語(yǔ)言模型也可以學(xué)到這些知識(shí)。社區(qū)中也出現(xiàn)了從預(yù)訓(xùn)練語(yǔ)言模型中提取和構(gòu)建知識(shí)圖譜的研究。但問(wèn)題在于,從這些模型中提取出來(lái)的知識(shí)可靠度有限。
人們發(fā)現(xiàn),預(yù)訓(xùn)練語(yǔ)言模型傾向于依賴(lài)表面信號(hào)或統(tǒng)計(jì)線(xiàn)索來(lái)挖掘知識(shí),并且可以很輕易地被愚弄,比如“鳥(niǎo)可以__”和“鳥(niǎo)不可以__”,模型都會(huì)輸出“飛”。這些模型學(xué)習(xí)到的,似乎更多是語(yǔ)法規(guī)則,而不是現(xiàn)實(shí)知識(shí),比如給定一組概念 {狗, 飛盤(pán), 抓住, 扔},GPT2 會(huì)生成"狗將飛盤(pán)扔向足球運(yùn)動(dòng)員",T5 生成“狗抓住了飛盤(pán),并扔向足球運(yùn)動(dòng)員”,這兩者都不符合人類(lèi)的常識(shí)。
這就向我們提出了這些問(wèn)題:我們需要讓大模型做這種事嗎?現(xiàn)實(shí)知識(shí)的學(xué)習(xí)需要依靠大模型以外的手段嗎?大模型學(xué)不到現(xiàn)實(shí)知識(shí)嗎?
百度的回答是:需要;不需要;可以。
引入現(xiàn)實(shí)知識(shí),一個(gè)比較基本的方法是在模型本身引入歸納偏置,比如引入了空間平移對(duì)稱(chēng)性歸納偏置的多層感知機(jī),就是卷積神經(jīng)網(wǎng)絡(luò)。但這種操作過(guò)于基本,也就是在先驗(yàn)地獲取現(xiàn)實(shí)知識(shí)的同時(shí),會(huì)過(guò)早限制模型的通用性,同時(shí)在理論探索上也非常困難。
另一個(gè)比較直接的方法是,保留模型本身的通用性,在數(shù)據(jù)和任務(wù)上入手。我們之前提到,預(yù)訓(xùn)練語(yǔ)言模型的一個(gè)缺點(diǎn)是,過(guò)分關(guān)注語(yǔ)法關(guān)聯(lián),因?yàn)檎Z(yǔ)法關(guān)聯(lián)在句子中出現(xiàn)最多,而對(duì)現(xiàn)實(shí)知識(shí)關(guān)聯(lián)關(guān)注過(guò)少。
這其實(shí)也是因?yàn)?,人?lèi)很少在日常交互中,強(qiáng)調(diào)和重復(fù)已知的知識(shí),我們對(duì)于“鳥(niǎo)拍打著翅膀在天空飛翔”中隱藏的知識(shí)“鳥(niǎo)會(huì)飛翔是因?yàn)橛谐岚颉辈粫?huì)太在意,也不會(huì)刻意去表達(dá),因?yàn)樘^(guò)習(xí)以為常,這也就使得這些知識(shí)很少出現(xiàn)在模型接觸的數(shù)據(jù)中。歸根結(jié)底,人類(lèi)和語(yǔ)言模型接觸的并不是相同的數(shù)據(jù)源。
這種區(qū)別,就好像一個(gè)英語(yǔ)母語(yǔ)者可以輕易理解別人說(shuō)的英語(yǔ),而剛學(xué)習(xí)英語(yǔ)的中文母語(yǔ)者就需要字典的支持,字典凝結(jié)了大量的人類(lèi)知識(shí)。
那么,為了學(xué)習(xí)現(xiàn)實(shí)知識(shí),大模型需要什么樣的“字典”?
當(dāng)然是,知識(shí)圖譜。
更加關(guān)注現(xiàn)實(shí)
知識(shí)增強(qiáng)建模方法
正如上圖所示,對(duì)于“《夜鶯》是丹麥作家安徒生唯一的以中國(guó)為背景的童話(huà)故事。”這句話(huà),如果我們?cè)谳斎胫屑尤搿鞍餐缴?作品 夜鶯”這樣的實(shí)體關(guān)系,就可以讓模型更多關(guān)注“作品”這樣的關(guān)系,而不局限于關(guān)注“是”、“唯一的”等等常見(jiàn)的關(guān)系類(lèi)詞匯,從而對(duì)現(xiàn)實(shí)知識(shí)有更多的積累。
百度早就開(kāi)始挖掘知識(shí)增強(qiáng)型預(yù)訓(xùn)練模型的潛力,2019年3月,百度就已經(jīng)發(fā)布了第一代知識(shí)增強(qiáng)的預(yù)訓(xùn)練模型 ERNIE1.0。到今年7月,百度還訓(xùn)練出了百億參數(shù)規(guī)模的知識(shí)增強(qiáng)型預(yù)訓(xùn)練模型——ERNIE 3.0。這是當(dāng)時(shí)業(yè)界首次在百億級(jí)預(yù)訓(xùn)練模型中引入大規(guī)模知識(shí)圖譜。
這種方法被稱(chēng)為平行預(yù)訓(xùn)練方法(Universal Knowledge-Text Prediction),也就是將大規(guī)模知識(shí)圖譜的實(shí)體關(guān)系與大規(guī)模文本數(shù)據(jù)同時(shí)輸入到預(yù)訓(xùn)練模型中進(jìn)行聯(lián)合掩碼訓(xùn)練。
這種做法可以促進(jìn)結(jié)構(gòu)化知識(shí)和無(wú)結(jié)構(gòu)文本之間的信息共享,從而大幅提升模型對(duì)于知識(shí)的記憶和推理能力。
ERNIE 3.0在中文和英文數(shù)據(jù)集上均表現(xiàn)優(yōu)越,其中在中文方面,ERNIE 3.0在54個(gè)數(shù)據(jù)集上均取得SOTA,同時(shí)零樣本能力表現(xiàn)優(yōu)越,另外在英文方面,ERNIE 3.0在國(guó)際權(quán)威的復(fù)雜語(yǔ)言理解任務(wù)評(píng)測(cè)SuperGLUE上超越谷歌的T5、OpenAI的GPT-3等大模型,以超越人類(lèi)水平0.8個(gè)百分點(diǎn)的成績(jī)登頂全球榜首。
通過(guò)知識(shí)圖譜的加持,ERNIE 3.0已經(jīng)學(xué)富五車(chē),但它的能力展現(xiàn)需要稍加克制,否則便顯得才華橫溢而又語(yǔ)無(wú)倫次。也就是說(shuō),ERNIE 3.0需要進(jìn)行可控學(xué)習(xí)。
通過(guò)將模型預(yù)測(cè)出的文本屬性和原始文本進(jìn)行拼接,構(gòu)造從指定屬性生成對(duì)應(yīng)文本的預(yù)訓(xùn)練數(shù)據(jù),模型通過(guò)對(duì)該數(shù)據(jù)的學(xué)習(xí),實(shí)現(xiàn)不同類(lèi)型的零樣本生成能力。用戶(hù)可以將指定的體裁、情感、長(zhǎng)度、主題、關(guān)鍵詞等屬性自由組合,無(wú)需標(biāo)注任何樣本,便可生成不同類(lèi)型的文本。
另外,百度還提出了可信學(xué)習(xí),讓ERNIE 3.0學(xué)習(xí)到的知識(shí)更加可靠。
具體來(lái)說(shuō),通過(guò)自監(jiān)督的對(duì)抗訓(xùn)練,讓模型學(xué)習(xí)區(qū)分?jǐn)?shù)據(jù)是真實(shí)的還是模型偽造的,使得模型對(duì)生成結(jié)果真實(shí)性具備判斷能力,從而讓模型可以從多個(gè)候選中選擇最可靠的生成結(jié)果。
高可信的可控生成預(yù)訓(xùn)練
學(xué)成出師的ERNIE 3.0,變得更加強(qiáng)大,和龐大——2600億參數(shù)的鵬城-百度·文心。
架構(gòu)設(shè)計(jì)上,鵬城-百度·文心采用了雙層的語(yǔ)義表示,從而可以同時(shí)處理情感分析等語(yǔ)言理解任務(wù),以及機(jī)器翻譯等語(yǔ)言生成任務(wù)。它還能做無(wú)標(biāo)注數(shù)據(jù)的零樣本學(xué)習(xí)(Zero-shot Learning)和有標(biāo)注數(shù)據(jù)的微調(diào)訓(xùn)練(Fine-tuning)。
鵬城-百度·文心模型結(jié)構(gòu)圖
目前,鵬城-百度·文心已在機(jī)器閱讀理解、文本分類(lèi)、語(yǔ)義相似度計(jì)算等60多項(xiàng)任務(wù)中取得最好結(jié)果。
在落地場(chǎng)景應(yīng)用中,模型僅利用少量標(biāo)注數(shù)據(jù)甚至無(wú)需標(biāo)注數(shù)據(jù),就能解決新場(chǎng)景的任務(wù)已成為AI工業(yè)大生產(chǎn)的關(guān)鍵。鵬城-百度·文心在30余項(xiàng)小樣本和零樣本任務(wù)上均取得了最優(yōu)效果。
鵬城-百度·文心小樣本學(xué)習(xí)效果
鵬城-百度·文心零樣本學(xué)習(xí)效果
傳統(tǒng)的機(jī)器學(xué)習(xí)或深度學(xué)習(xí)依賴(lài)海量的數(shù)據(jù),樣本量過(guò)小容易過(guò)擬合,模型表達(dá)能力不足。但某些實(shí)際場(chǎng)景下樣本很難收集,小樣本學(xué)習(xí)致力于在數(shù)據(jù)資源比較稀少的情況下訓(xùn)練出比較好的模型。
例如在醫(yī)學(xué)領(lǐng)域,部分罕見(jiàn)病例(或新型病例)的數(shù)據(jù)信息極少。可以利用小樣本學(xué)習(xí)能力的特點(diǎn),針對(duì)性的解決這種病例。
從百億級(jí)到千億級(jí)的跨越,不是簡(jiǎn)單的線(xiàn)性擴(kuò)展過(guò)程。
正如摩爾定律在發(fā)展過(guò)程中,隨著器件尺寸越來(lái)越小,晶體管結(jié)構(gòu)設(shè)計(jì)變得越來(lái)越重要,人們不再簡(jiǎn)單粗暴地考慮尺寸縮小問(wèn)題,而是耗費(fèi)很大的成本去探索晶體管的新型材料、器件結(jié)構(gòu)和工作原理,從而更好地控制其工作電流。
預(yù)訓(xùn)練模型也是一樣。同時(shí),不同于稀疏專(zhuān)家模型比如 Switch Transformer可以輕易地?cái)U(kuò)展到萬(wàn)億參數(shù)規(guī)模,對(duì)于單體模型而言,擴(kuò)展一個(gè)數(shù)量級(jí)也是非常困難的大工程。
一方面是并行策略。百億大模型的訓(xùn)練一般用單臺(tái)V100就可以實(shí)現(xiàn),采用數(shù)據(jù)并行可以進(jìn)一步加速。但是,千億大模型是無(wú)法用單機(jī)負(fù)載的,比如對(duì)于2600億參數(shù)的鵬城-百度·文心,一般至少需要32臺(tái)V100才能負(fù)載,而這需要分布式訓(xùn)練的算法來(lái)合理編排部署訓(xùn)練模型。
而且,還需要混合使用多種分布式的并行策略,比如層內(nèi)Tensor并行、層間流水線(xiàn)并行、數(shù)據(jù)并行、Shard數(shù)據(jù)并行、優(yōu)化器并行,同時(shí)疊加offload策略、重計(jì)算策略。這要求深度學(xué)習(xí)框架能夠支持這些策略的靈活配置,保證收斂性的同時(shí),讓用戶(hù)方便地使用這些算法。Paddle之前也曾就此提出4D訓(xùn)練的概念,也就是混合并行的四個(gè)常見(jiàn)維度——層內(nèi)、層間、數(shù)據(jù)、優(yōu)化器。
另外一方面是收斂算法。模型越大,訓(xùn)練成本越高,進(jìn)而對(duì)模型的收斂效率的要求越高。比如鵬城-百度·文心在訓(xùn)練過(guò)程中,就需要通過(guò)學(xué)習(xí)率預(yù)熱策略、漸進(jìn)式學(xué)習(xí)策略以及優(yōu)化的大批量(batch)優(yōu)化策略,來(lái)實(shí)現(xiàn)模型的高效收斂,進(jìn)而保證最終訓(xùn)練效果。
而且,長(zhǎng)時(shí)間的大規(guī)模訓(xùn)練對(duì)集群穩(wěn)定性和調(diào)度也是一個(gè)考驗(yàn)。機(jī)器都是有出錯(cuò)概率的,集群越大出錯(cuò)的概率也就越大。而目前單體模型一般采用的高性能訓(xùn)練模式中,只要單臺(tái)機(jī)器出錯(cuò)就會(huì)影響整體過(guò)程,底層帶來(lái)的不穩(wěn)定性會(huì)對(duì)訓(xùn)練的進(jìn)度和運(yùn)維帶來(lái)直接的影響。Paddle和集群調(diào)度結(jié)合可以在訓(xùn)練過(guò)程中屏蔽掉出錯(cuò)的機(jī)器,減少因而造成的重新調(diào)度的時(shí)間損耗。
總之,訓(xùn)練一個(gè)千億的大模型是對(duì)框架、算法、集群調(diào)度的全流程的一個(gè)考驗(yàn)。
深度學(xué)習(xí)本身是一個(gè)工程性質(zhì)很強(qiáng)的學(xué)科,而大模型訓(xùn)練的第一步也正是:選擇正確的基礎(chǔ)設(shè)施。
因此,為了實(shí)現(xiàn)這次升級(jí),百度在基礎(chǔ)設(shè)施上下了大功夫,而基礎(chǔ)設(shè)施的核心是算力以及訓(xùn)練框架。
首先,在算力方面,鵬城-百度·文心模型基于百度百舸集群初始化,然后采用“鵬城云腦II”高性能集群訓(xùn)練。
“鵬城云腦II”是由鵬城實(shí)驗(yàn)室聯(lián)合國(guó)內(nèi)優(yōu)勢(shì)科研力量研發(fā)的我國(guó)首個(gè)國(guó)產(chǎn)自主E級(jí)AI算力平臺(tái)。在國(guó)際超算排行榜上,“鵬城云腦II”實(shí)力超群,曾兩奪IO 500總榜和10節(jié)點(diǎn)榜雙料冠軍,并在權(quán)威AI基準(zhǔn)測(cè)試MLPerf和AIPerf也收獲頗豐,獲得多次榜單冠軍。
這些成績(jī)充分展現(xiàn)了“鵬城云腦II”優(yōu)越的智能計(jì)算性能和軟硬件系統(tǒng)協(xié)同水平,也為鵬城-百度·文心大模型強(qiáng)大技術(shù)能力奠定基礎(chǔ)。
其次,在訓(xùn)練框架方面,鵬城-百度·文心面臨著適配性問(wèn)題。
超大規(guī)模模型的訓(xùn)練和推理給深度學(xué)習(xí)框架帶來(lái)很大考驗(yàn),需要利用大規(guī)模集群分布式計(jì)算才能在可接受時(shí)間內(nèi)完成訓(xùn)練或推理的計(jì)算要求,同時(shí)面臨著模型參數(shù)量單機(jī)無(wú)法加載、多機(jī)通信負(fù)載重、并行效率低等難題。
早在今年四月,國(guó)產(chǎn)深度學(xué)習(xí)框架百度飛槳就發(fā)布了4D混合并行技術(shù),可支持千億參數(shù)規(guī)模語(yǔ)言模型的高效分布式訓(xùn)練。但鵬城-百度·文心的訓(xùn)練任務(wù)對(duì)深度學(xué)習(xí)框架帶來(lái)了全新的挑戰(zhàn)。
分布式訓(xùn)練的基本步驟有四個(gè):分配所需資源;對(duì) NN 模型進(jìn)行分區(qū);將每個(gè)分區(qū)分配給指定的設(shè)備;以特定順序獨(dú)立執(zhí)行任務(wù)并進(jìn)行必要的通信;并監(jiān)控資源狀態(tài),調(diào)整訓(xùn)練流程。
分布式訓(xùn)練的基本步驟
不同模型通常需要適配不同的并行策略,這些策略受到以上四個(gè)步驟,也就是:資源分配、模型分區(qū)、任務(wù)放置和分布式執(zhí)行的影響。
但現(xiàn)有的框架通常因?yàn)閷?zhuān)門(mén)性、啟發(fā)自受限的實(shí)踐、對(duì)并行性支持不足、與資源管理解耦等原因,導(dǎo)致無(wú)法實(shí)現(xiàn)端到端的分布式訓(xùn)練,也就是無(wú)法在考慮以上所有步驟的情況下,進(jìn)行全局優(yōu)化。
具體而言,一方面,鵬城-百度·文心的模型結(jié)構(gòu)設(shè)計(jì)引入諸多小形狀的張量計(jì)算,導(dǎo)致層間計(jì)算量差異較大,流水線(xiàn)負(fù)載不均衡;另一方面,“鵬城云腦II”的自有軟件棧需要深度學(xué)習(xí)框架高效深度適配,才能充分發(fā)揮其集群的領(lǐng)先算力優(yōu)勢(shì)。
針對(duì)以上挑戰(zhàn),并綜合考慮當(dāng)前主流硬件、模型的特點(diǎn)與發(fā)展趨勢(shì),飛槳設(shè)計(jì)并研發(fā)了具備更強(qiáng)擴(kuò)展能力的端到端自適應(yīng)大規(guī)模分布式訓(xùn)練架構(gòu)。
在這項(xiàng)研究中,百度從系統(tǒng)的端到端角度來(lái)設(shè)計(jì)分布式框架,通過(guò)考慮上圖中分布式訓(xùn)練的所有基本步驟來(lái)滿(mǎn)足上述通用自適應(yīng)要求。
架構(gòu)圖概覽
首先,采用統(tǒng)一的分布式計(jì)算視圖和統(tǒng)一的異構(gòu)資源視圖來(lái)表示任意的并行性和資源配置。然后,基于這兩種統(tǒng)一表示,開(kāi)發(fā)了全局成本模型和全局規(guī)劃器。
在全局成本模型的驅(qū)動(dòng)下,可以利用全局規(guī)劃器來(lái)根據(jù)給定的神經(jīng)網(wǎng)絡(luò)模型和集群的配置自動(dòng)選擇更好的并行策略,包括分區(qū)和放置決策。
許多研究表明,前向和后向計(jì)算的調(diào)度順序?qū)π阅芎蛢?nèi)存利用率都有比較大的影響。尤其是,對(duì)于分布式訓(xùn)練來(lái)說(shuō),計(jì)算和通信盡可能地重疊以達(dá)到高水平的性能是極其重要的。
為此,團(tuán)隊(duì)還優(yōu)化了分布式異步執(zhí)行器,它可以盡可能地自動(dòng)重疊計(jì)算和通信,也就是盡可能減少同步化,并支持不同粒度和復(fù)雜的控制流。
最后,通過(guò)分布式訓(xùn)練框架和平臺(tái)調(diào)度器之間更好的內(nèi)置交互,來(lái)實(shí)現(xiàn)容錯(cuò)和彈性的分布式訓(xùn)練,從而提高整體資源利用率。當(dāng)硬件故障、有空閑資源或資源緊張時(shí), 彈性資源管理模塊能感知硬件資源變化,如故障、擴(kuò)容、縮容,來(lái)自動(dòng)重新構(gòu)建資源視圖,并觸發(fā)飛槳框架的各個(gè)模塊來(lái)自動(dòng)的做出反應(yīng),如模型切分、硬件映射、流水執(zhí)行,在不中斷訓(xùn)練的情況下,彈性調(diào)度集群可用資源,來(lái)進(jìn)一步提升訓(xùn)練的性能。
飛槳超大模型訓(xùn)練框架
論文鏈接:https://arxiv.org/abs/2112.02752
模塊化或者解耦通常是為了更好的靈活性,但該架構(gòu)的設(shè)計(jì)注意到了背后的基本原則:解耦只是一種實(shí)現(xiàn)相關(guān)模塊分離的機(jī)制,不應(yīng)妨礙全局優(yōu)化。
總體而言,該架構(gòu)可以針對(duì)不同的模型和硬件,抽象成統(tǒng)一的分布式計(jì)算視圖和資源視圖,并通過(guò)硬件感知細(xì)粒度切分和映射功能,搜索出最優(yōu)的模型切分和硬件組合策略,將數(shù)據(jù)、模型參數(shù)、梯度、優(yōu)化器狀態(tài)按照最優(yōu)策略分配到不同的計(jì)算卡上,達(dá)到節(jié)省存儲(chǔ)、負(fù)載均衡、提升訓(xùn)練性能的目的;同時(shí)當(dāng)資源變化時(shí),整個(gè)框架的各個(gè)模塊能自動(dòng)的做出反應(yīng)。
飛槳自適應(yīng)大規(guī)模分布式訓(xùn)練架構(gòu)使得鵬城-百度·文心的訓(xùn)練性能較傳統(tǒng)分布式訓(xùn)練方法提升了2.1倍,并行效率高達(dá)91.7%。此外,為進(jìn)一步提高模型訓(xùn)練的穩(wěn)定性,飛槳的容錯(cuò)功能,可以在不中斷訓(xùn)練的情況下自動(dòng)替換故障機(jī)器,加強(qiáng)模型訓(xùn)練的魯棒性。
在推理方面,飛槳基于分布式推理框架Paddle Serving,通過(guò)多機(jī)多卡的張量模型并行、流水線(xiàn)并行等一系列優(yōu)化技術(shù),獲得最佳配比和最優(yōu)吞吐。通過(guò)統(tǒng)一內(nèi)存尋址(Unified Memory)、算子融合、模型IO優(yōu)化、量化加速等方式,鵬城-百度·文心的推理速度得到進(jìn)一步提升。
具備了內(nèi)涵和根基的鵬城-百度·文心,大步走向現(xiàn)實(shí)應(yīng)用。但在邁出這一步之前,百度還多考慮了一步。
眾所周知,大模型訓(xùn)練、推理所消耗的資源極其昂貴和密集。
此前,Paddle Serving已提供了超大模型的高速推理方案,但為了進(jìn)一步打造大模型時(shí)代的綠色落地方案,降低大模型成本應(yīng)用成本,百度團(tuán)隊(duì)首創(chuàng)大模型在線(xiàn)蒸餾技術(shù)。
在線(xiàn)蒸餾技術(shù)
通俗來(lái)說(shuō),這種蒸餾技術(shù)采用了“一師多徒”、“多代傳承”的形式。
具體而言,“一師多徒”技術(shù)在鵬城-百度·文心學(xué)習(xí)的過(guò)程中周期性地將知識(shí)信號(hào)傳遞給若干個(gè)學(xué)生模型同時(shí)訓(xùn)練,達(dá)到蒸餾階段一次性產(chǎn)出多種尺寸的學(xué)生模型的目的。
相對(duì)傳統(tǒng)蒸餾技術(shù),該技術(shù)極大節(jié)省了因大模型額外蒸餾計(jì)算以及多個(gè)學(xué)生的重復(fù)知識(shí)傳遞帶來(lái)的算力消耗問(wèn)題。
這種新穎的蒸餾方式利用了鵬城-百度·文心規(guī)模優(yōu)勢(shì),在蒸餾完成后保證了學(xué)生模型的效果和尺寸豐富性,方便不同性能需求的應(yīng)用場(chǎng)景使用。
此外,百度還發(fā)現(xiàn),鵬城-百度·文心與學(xué)生模型尺寸差距千倍以上,模型蒸餾難度極大甚至失效。
為此,研究團(tuán)隊(duì)引入了“多代傳承”,也就是助教模型進(jìn)行蒸餾的技術(shù),利用助教作為知識(shí)傳遞的橋梁以縮短學(xué)生模型和鵬城-百度·文心表達(dá)空間相距過(guò)大的問(wèn)題,從而促進(jìn)蒸餾效率的提升。
鵬城-百度·文心壓縮版模型效果
鵬城-百度·文心在線(xiàn)蒸餾方案的效果非常顯著,模型壓縮率達(dá)到99.98%。壓縮版模型僅保留0.02%參數(shù)卻能達(dá)到和原有模型相當(dāng)?shù)男ЧO啾戎苯佑?xùn)練參數(shù)規(guī)模是自身2倍的BERT Base模型,鵬城-百度·文心在5項(xiàng)任務(wù)準(zhǔn)確率上絕對(duì)提升了2.5%,而相對(duì)于同等規(guī)模的RoBERTa Base,準(zhǔn)確率則絕對(duì)提升了3.4%。
大模型的開(kāi)發(fā)和應(yīng)用不僅僅關(guān)系到企業(yè)和用戶(hù),它的影響邊界非常廣闊,涉及的人群也非常多樣,包括了:數(shù)據(jù)運(yùn)維人員、模型研發(fā)人員、下游應(yīng)用開(kāi)發(fā)人員、軟件和硬件開(kāi)發(fā)人員、領(lǐng)域?qū)<业鹊?,每個(gè)人都有責(zé)任讓大模型產(chǎn)生更好的社會(huì)價(jià)值。百度作為模型研發(fā)者這一角色,亦深刻意識(shí)到了自身的義務(wù)。
文心大模型也已通過(guò)百度飛槳平臺(tái)逐步對(duì)外開(kāi)源開(kāi)放,它代表著百度對(duì)人工智能下一代范式的展望——同質(zhì)化。
如今,NLP 領(lǐng)域幾乎所有的 SOTA 模型都是少數(shù)幾個(gè)基于 Transformer 的大模型進(jìn)化而來(lái)。
而在整個(gè)AI社區(qū)中,一場(chǎng)范式轉(zhuǎn)變正在蔓延。隨著B(niǎo)ERT、GPT-3、DALL-E等大規(guī)模預(yù)訓(xùn)練模型相繼出現(xiàn),人們意識(shí)到,大模型似乎就相當(dāng)于通用模型。無(wú)論是圖像、語(yǔ)音還是蛋白質(zhì)序列預(yù)測(cè),都在見(jiàn)證這場(chǎng)范式轉(zhuǎn)變——同質(zhì)化。
這種圖景似乎指向了認(rèn)知科學(xué)中一個(gè)非常著名的概念——全局工作空間理論(GWT)。GWT是一種意識(shí)模型,最初由美國(guó)心理學(xué)家Bernard J. Baars等人提出,是當(dāng)代主要的神經(jīng)科學(xué)意識(shí)理論之一。
該理論提議將大腦分為執(zhí)行不同功能的專(zhuān)用模塊,模塊與模塊之間具有長(zhǎng)距離連接。通過(guò)注意選擇的過(guò)程確定輸入或任務(wù)要求后,專(zhuān)用模塊內(nèi)的信息可以在不同模塊之間傳播與共享。
而基于深度學(xué)習(xí)大模型的通用性,來(lái)實(shí)現(xiàn)GWT似乎已經(jīng)不再遙不可及。近年來(lái)有論文曾提出,可以通過(guò)深度學(xué)習(xí)“全局隱工作空間”將不同的專(zhuān)用預(yù)訓(xùn)練網(wǎng)絡(luò)關(guān)聯(lián)起來(lái),并通過(guò)Transformer的注意力機(jī)制進(jìn)行選擇性關(guān)聯(lián)。
這些專(zhuān)用網(wǎng)絡(luò)可能涉及:感知(物體識(shí)別,檢測(cè),分割,語(yǔ)音識(shí)別...),運(yùn)動(dòng)(機(jī)器人手臂控制,語(yǔ)音生成…),語(yǔ)言(文本理解,機(jī)器翻譯,文本-語(yǔ)音轉(zhuǎn)換...),記憶存儲(chǔ),或更高級(jí)別的與認(rèn)知和行為相關(guān)的功能(直觀(guān)物理引擎,RL策略,任務(wù)嵌入...)。
在這個(gè)多模態(tài)專(zhuān)家網(wǎng)絡(luò)族群中,百度的足跡已經(jīng)不止于語(yǔ)言、知識(shí),也跨越到了圖像領(lǐng)域。
2020年7月,百度提出了知識(shí)增強(qiáng)視覺(jué)-語(yǔ)言預(yù)訓(xùn)練模型 ERNIE-ViL,首次將場(chǎng)景圖(Scene Graph)知識(shí)融入多模態(tài)預(yù)訓(xùn)練。
本次發(fā)布的鵬城-百度·文心將進(jìn)一步解決 AI 技術(shù)在應(yīng)用中缺乏領(lǐng)域和場(chǎng)景化數(shù)據(jù)等關(guān)鍵難題,降低門(mén)檻,加快人工智能大規(guī)模產(chǎn)業(yè)應(yīng)用。
雷峰網(wǎng)(公眾號(hào):雷峰網(wǎng))雷峰網(wǎng)雷峰網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。