域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)
8月11日-16日,第62屆國(guó)際計(jì)算語(yǔ)言學(xué)年會(huì)(Annual Meeting of the Association for Computational Linguistics,簡(jiǎn)稱 ACL)在泰國(guó)曼谷舉行。
云天勵(lì)飛大模型團(tuán)隊(duì)的論文《Generation Meets Verification: Accelerating Large Language Model Inference with Smart Parallel Auto-Correct Decoding》被錄用為ACL24的Findings長(zhǎng)文。這是云天勵(lì)飛大模型部分研究成果的階段性展示。
ACL 年會(huì)是計(jì)算語(yǔ)言學(xué)和自然語(yǔ)言處理領(lǐng)域國(guó)際排名第一的頂級(jí)學(xué)術(shù)會(huì)議,由國(guó)際計(jì)算語(yǔ)言學(xué)協(xié)會(huì)組織,每年召開(kāi)一次,在中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)推薦會(huì)議列表中被列為 A 類會(huì)議。
云天勵(lì)飛的入選論文提出了SPACE引擎—— 一種實(shí)現(xiàn)大模型推理無(wú)損加速的創(chuàng)新方案。在不同類型大模型測(cè)試的結(jié)果表明,使用SPACE引擎后,模型在HumanEval測(cè)試集上推理速度提升270%-400% ,推理結(jié)果質(zhì)量保持不變,可做到兼顧“算得快”和“算得準(zhǔn)”。
云天勵(lì)飛大模型團(tuán)隊(duì)的入選論文
主流推理方案難以做到“既要又要”
SPACE是S mart P arallel A uto-C orrect De coding的簡(jiǎn)稱,意為“智能并行自動(dòng)糾錯(cuò)解碼”。
這個(gè)推理方案有兩大特點(diǎn):一是采用半自回歸 推理模型,極大加快推理速度;二是在推理過(guò)程中加入驗(yàn)證 手段,能夠在提升推理速度的同時(shí),保證推理精度。
“半自回歸”是什么?為什么要加入驗(yàn)證的環(huán)節(jié)?在解釋這些問(wèn)題前,我們需要先了解一下當(dāng)前大模型是如何“工作”的。
打開(kāi)大語(yǔ)言模型的APP,我們?cè)趯?duì)話框輸入“大模型是什么?”,大模型會(huì)逐字逐句地輸出它的回答:“大模型是具有數(shù)千萬(wàn)參數(shù)的深度學(xué)習(xí)模型。”這個(gè)回答的過(guò)程看似很簡(jiǎn)單。但實(shí)際上,大模型在背后經(jīng)歷了多次“自回歸”的循環(huán)。
首先,大模型會(huì)根據(jù)我們輸入的內(nèi)容,先預(yù)測(cè)輸出的第一個(gè)字——“大”,然后把“大”字重新帶回到輸入端,基于“大”字預(yù)測(cè)下一個(gè)字應(yīng)該輸出什么。當(dāng)然,這個(gè)“預(yù)測(cè)”并不是憑空“瞎猜”,而是模型會(huì)根據(jù)前期訓(xùn)練過(guò)程中見(jiàn)過(guò)的數(shù)據(jù)綜合判斷,選擇概率最高的字,作為下一個(gè)輸出字。
在這個(gè)案例中,第二個(gè)輸出的字是“模”,輸出了第二個(gè)字后,大模型會(huì)再次把“大模”這兩個(gè)字帶回到輸入端,預(yù)測(cè)第三個(gè)生成的字。如此不斷循環(huán)往復(fù),直至完整的句子結(jié)束。
這個(gè)過(guò)程就是“自回歸”。
目前,自回歸是大模型推理采用的主流方案。 無(wú)論是ChatGPT、開(kāi)源的Llama,還是國(guó)內(nèi)的一眾大模型,主要都是采用自回歸的推理方案。
自回歸方案示意圖
自回歸方案的優(yōu)勢(shì)和弊端也十分明顯。優(yōu)勢(shì)是能夠確保生成的內(nèi)容準(zhǔn)確且有意義,而且上下文連貫。弊端是計(jì)算成本高、推理延時(shí)長(zhǎng)。
為了克服這些問(wèn)題,行業(yè)提出的解決方案是 “半自回歸” 和 “投機(jī)解碼” 。
“半自回歸”是在“自回歸”和“非自回歸”之間的一種折中方案。上文提到,“自回歸” 是用已生成的詞來(lái)預(yù)測(cè)下一個(gè)詞;“非自回歸” 則是“自回歸”的反面,一次性預(yù)測(cè)整個(gè)句子。“非自回歸” 方案能夠提升推理效率,但是輸出的精度卻大打折扣。“半自回歸”方案,則是綜合考慮了“自回歸”和“非自回歸”的優(yōu)缺點(diǎn),平衡大模型推理對(duì)速度和精度的要求。
但是,采用“半自回歸”方案又引發(fā)了新的問(wèn)題——一是大部分大模型用不了,二是精度無(wú)法達(dá)到產(chǎn)業(yè)要求。 主流大模型是按照自回歸的推理模式打造的,如果要采用半自回歸方案,則需要從頭開(kāi)始重新訓(xùn)練大模型。而訓(xùn)練一次大模型需要消耗大量的電力、算力、人力,幾乎沒(méi)有人會(huì)為了改變推理方案,把好不容易訓(xùn)練出來(lái)的大模型推倒重來(lái)。
另一個(gè)方案是“投機(jī)解碼”。 這一方案按照“草擬——驗(yàn)證” 的流程工作,首先需要引入一個(gè)參數(shù)量相對(duì)較小的輔助模型,由小模型先“草擬”出候選答案,再由大模型去驗(yàn)證候選答案正確與否。得益于小模型相比大模型推理速度快,并且大模型能夠同時(shí)對(duì)多個(gè)候選答案進(jìn)行驗(yàn)證,這樣的解碼方式既能夠保證輸出結(jié)果的精度,同時(shí)也能夠加快推理速度。
但是這個(gè)方案同樣存在弊端。一是需要先做出十分“靠譜”的小模型,要能夠又快又準(zhǔn)地“草擬”出答案,而這本身就具有一定難度。二是兩個(gè)模型之間要做到“書同文,車同軌,度同制”,在分詞器、詞表等方面做到高度一致,才能夠保證驗(yàn)證結(jié)果。
SPACE推理引擎——小小改造、大大提速
既然幾個(gè)方案都無(wú)法做到“既要又要”,有沒(méi)有一種方案,能只保留它們的優(yōu)點(diǎn),規(guī)避他們的缺點(diǎn)呢?這就是云天勵(lì)飛大模型團(tuán)隊(duì)提出的SPACE推理引擎。SPACE通過(guò)結(jié)合“半自回歸監(jiān)督微調(diào)”和“自動(dòng)修正解碼”兩種方案,使得大模型能夠在一次推理中生成多個(gè)結(jié)果,并且同步完成結(jié)果驗(yàn)證,保證生成結(jié)果的質(zhì)量。同時(shí),這套推理引擎適用于任何的大模型 。通過(guò)模型的微調(diào)和優(yōu)化,任何大模型采用該推理引擎時(shí),不僅無(wú)需再訓(xùn)練額外的輔助模型,還能提高推理效率,充分利用GPU等并行計(jì)算資源,達(dá)到較高的算力利用率。
自回歸方案(左)與SPACE方案(右)的區(qū)別
上文提到,多數(shù)大語(yǔ)言模型自帶“自回歸”的屬性,無(wú)法直接套用“半自回歸”的方案。對(duì)此,SPACE采用的是“半自回歸監(jiān)督微調(diào)”的方式,通過(guò)有監(jiān)督的訓(xùn)練,模型學(xué)會(huì)在遇到特殊的[MASK]標(biāo)識(shí)時(shí)提出一系列可能的候選字(如上圖所示)。這使得模型在推理時(shí)能夠進(jìn)行類似“猜測(cè)”的操作,輸出幾個(gè)最可能正確的候選字,從而具備半自回歸推理的能力。
簡(jiǎn)單來(lái)說(shuō),有了“半自回歸監(jiān)督微調(diào)”方案的加持,在推理時(shí)大模型自己就能夠做出“猜測(cè)”,輸出大概率是正確的多個(gè)字作為候選答案。
但是,就跟考試一樣,草稿上可以列出大量的內(nèi)容,但是填到考卷上的,必須得是正確答案。如何保證正確?這就需要對(duì)結(jié)果進(jìn)行驗(yàn)證,而這就是“自動(dòng)修正解碼”要做的工作。
具體來(lái)說(shuō),在推理時(shí),我們把大模型在上一步推理時(shí)自己生成的候選詞也輸入到模型中,讓模型進(jìn)行自我校驗(yàn),自行判斷這些候選答案是否正確。
判斷的方式也很簡(jiǎn)單,如果模型生成的詞與早先的候選答案相匹配,那就認(rèn)為候選詞是正確的?;仡櫹?在傳統(tǒng)的自回歸推理里面,如果一個(gè)詞是正確的,那么這個(gè)詞需要再重新輸入到語(yǔ)言模型中去推理產(chǎn)生下一個(gè)詞。
但是在SPACE這里卻不需要。由于我們已經(jīng)把候選詞提前輸入到模型中,并且這個(gè)候選詞被驗(yàn)證是正確的,所以這時(shí)候我們就可以直接從正確的候選詞里面獲取新的答案,從而節(jié)省了將答案重新輸入模型再進(jìn)行一次推理的時(shí)間。因此這種機(jī)制的優(yōu)勢(shì)在于,當(dāng)一個(gè)候選詞被驗(yàn)證為正確后,就無(wú)需再將其回輸模型生成下一個(gè)答案,從而減少了推理的時(shí)間。
作為類比,可以把傳統(tǒng)的自回歸推理比作4×100米接力賽跑:在常規(guī)比賽中,四名運(yùn)動(dòng)員需按順序逐個(gè)接棒完成全部賽程,這就好比自回歸方案,需要逐字推理。而在SPACE的方案中,四名運(yùn)動(dòng)員是同步起跑的,當(dāng)?shù)谝幻\(yùn)動(dòng)員沖刺完100米到達(dá)終點(diǎn)的同時(shí),其他運(yùn)動(dòng)員也到達(dá)了屬于各自百米賽段的終點(diǎn)。但是第一名運(yùn)動(dòng)員到達(dá)終點(diǎn)后需要進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),第二名運(yùn)動(dòng)員的成績(jī)即可確認(rèn),而后可以對(duì)第二名運(yùn)動(dòng)員進(jìn)行驗(yàn)證,并依此類推。
若某名運(yùn)動(dòng)員未能通過(guò)驗(yàn)證,那他就需要返回至屬于他的百米起跑線,重新起跑完成比賽。在最好的情況下,四個(gè)運(yùn)動(dòng)員每人都能通過(guò)驗(yàn)證,那么這個(gè)小組相當(dāng)于只需要花常規(guī)比賽1/4的時(shí)間,就能完成比賽,從而達(dá)到加速效果;在最差的情況下,每個(gè)運(yùn)動(dòng)員都未能通過(guò)驗(yàn)證,那么這時(shí)候需要花的時(shí)間就跟常規(guī)比賽一樣了。而能不能通過(guò)驗(yàn)證,主要取決于候選答案準(zhǔn)不準(zhǔn)確。
與此同時(shí),在SPACE模型的推理過(guò)程中,我們也在輸入中插入特殊的[MASK]標(biāo)識(shí),以此來(lái)引導(dǎo)大模型生成更新版的候選答案。在這種機(jī)制下,每一輪推理模型不僅驗(yàn)證了前一輪生成的候選詞的準(zhǔn)確性,也為接下來(lái)的推理提供了新的候選詞。
這種設(shè)計(jì)旨在增強(qiáng)候選詞的準(zhǔn)確度 ,因?yàn)槊慨?dāng)有新答案出現(xiàn)時(shí),原有的候選詞通過(guò)更新將變得更加精確。這個(gè)過(guò)程有如天氣預(yù)報(bào):我們每天都會(huì)對(duì)接下來(lái)一周的氣候情況做出預(yù)測(cè),并且隨著時(shí)間的推移,對(duì)未來(lái)特定一天的天氣預(yù)測(cè)準(zhǔn)確度會(huì)逐漸提升。這是因?yàn)殡S著時(shí)間的推移,我們累積了更多的傳感數(shù)據(jù),這使得我們能夠提供更為精確的天氣預(yù)測(cè)。
傳統(tǒng)的驗(yàn)證和修正方法,是上文提到的“投機(jī)解碼”,即需要先訓(xùn)練出一個(gè)靠譜的小模型,再用大模型去驗(yàn)證,小模型的生成質(zhì)量很大程度上影響了最終結(jié)果。
但SPACE提出了一種新的方案,不需要使用小模型,就能夠達(dá)到生成和驗(yàn)證的目的,而且驗(yàn)證工作和生成工作可以同步進(jìn)行。如此一來(lái),推理的效率和準(zhǔn)確率都能夠得到大幅提升。
讓我們?cè)倩氐介_(kāi)頭例子,當(dāng)我們輸入“大模型是什么?”,在SPACE推理模式下,大模型首先會(huì)同時(shí)生成“大模型是具有數(shù)千萬(wàn)參數(shù)的”這幾個(gè)詞,同時(shí)自動(dòng)修正解碼算法會(huì)立馬對(duì)生成的多個(gè)詞逐一進(jìn)行驗(yàn)證,并且僅保留驗(yàn)證結(jié)果正確的詞輸出作為最終答案,從而實(shí)現(xiàn)在一次大模型前向推理的過(guò)程中生成多個(gè)詞的效果,達(dá)到加速目的。
最后,讓我們來(lái)看看SPACE的效果。
我們?cè)谝槐婇_(kāi)源大語(yǔ)言模型上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)涵蓋了從60億到700億不同參數(shù)量的主流大語(yǔ)言模型。從下表中可以看到,SPACE在參數(shù)量更大的模型上,加速效果更明顯 。
此外,SPACE也能跟其他推理加速技術(shù),例如continue batching, flash attention, KV cache, quantization等,一起結(jié)合使用,從而帶來(lái)更快的推理速度。
為了驗(yàn)證這個(gè)觀點(diǎn),我們?cè)谝粋€(gè)主流推理框架TGI上實(shí)現(xiàn)了SPACE,實(shí)驗(yàn)證明在結(jié)合其他推理加速技術(shù)的情況下,SPACE帶來(lái)的加速效果也是同樣出眾。
大模型走入千行百業(yè),“推理”至關(guān)重要
訓(xùn)練和推理是大模型生命周期的兩個(gè)核心階段,訓(xùn)練是解決大模型“從無(wú)到有”的問(wèn)題,而推理解決的是大模型如何應(yīng)用到千行百業(yè)的問(wèn)題。
如果將去年定義為大模型爆發(fā)的元年,那么今年就是大模型應(yīng)用落地的元年,因此大模型的推理能力愈發(fā)受到重視。
云天勵(lì)飛為加速大模型的應(yīng)用做出了許多努力。在算力方面,去年公司推出大模型邊緣推理芯片DeepEdge10,近期推出IPU-X6000加速卡,可應(yīng)用于語(yǔ)言、視覺(jué)、多模態(tài)等各類大模型的推理加速。
在算法方面,云天勵(lì)飛提出SPACE推理引擎,大幅提升大模型推理速度。在應(yīng)用方面,云天勵(lì)飛自研大模型云天天書已經(jīng)在智慧政務(wù)、城市治理、智慧安防、智慧交通、智慧商業(yè)、智慧教育等多行業(yè)落地應(yīng)用,探索打造行業(yè)標(biāo)桿。
未來(lái),云天勵(lì)飛將繼續(xù)努力,在大模型相關(guān)技術(shù)的研發(fā)和應(yīng)用推廣方面做出更大貢獻(xiàn)。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!