專攻芯片設(shè)計(jì),英偉達(dá)推出定制版大語(yǔ)言模型ChipNeMo!
在剛剛開幕的ICCAD 2023大會(huì)上,英偉達(dá)團(tuán)隊(duì)展示了用AI模型測(cè)試芯片,引發(fā)了業(yè)界關(guān)注。
眾所周知,半導(dǎo)體設(shè)計(jì)是一項(xiàng)極具挑戰(zhàn)性的工作。
在顯微鏡下,諸如英偉達(dá)H100這樣的頂級(jí)芯片,看起來就像是一個(gè)精心規(guī)劃的大都市,這其中的數(shù)百億個(gè)晶體管則連接在比頭發(fā)絲還要細(xì)一萬(wàn)倍的街道上。
為了建造這樣一座數(shù)字巨城,需要多個(gè)工程團(tuán)隊(duì)長(zhǎng)達(dá)兩年時(shí)間的合作。
其中,一些小組負(fù)責(zé)確定芯片的整體架構(gòu),一些小組負(fù)責(zé)制作和放置各種超小型電路,還有一些小組負(fù)責(zé)進(jìn)行測(cè)試。每項(xiàng)工作都需要專門的方法、軟件程序和計(jì)算機(jī)語(yǔ)言。
ChipNeMo:英偉達(dá)版「芯片設(shè)計(jì)」大模型
最近,來自英偉達(dá)的研究團(tuán)隊(duì)開發(fā)了一種名為ChipNeMo的定制LLM,以公司內(nèi)部數(shù)據(jù)為基礎(chǔ)進(jìn)行訓(xùn)練,用于生成和優(yōu)化軟件,并為人類設(shè)計(jì)師提供幫助。
論文地址:https://research.nvidia.com/publication/2023-10_chipnemo-domain-adapted-llms-chip-design
研究人員并沒有直接部署現(xiàn)成的商業(yè)或開源LLM,而是采用了以下領(lǐng)域適應(yīng)技術(shù):自定義分詞器、領(lǐng)域自適應(yīng)持續(xù)預(yù)訓(xùn)練(DAPT)、具有特定領(lǐng)域指令的監(jiān)督微調(diào)(SFT),以及適應(yīng)領(lǐng)域的檢索模型。
結(jié)果表明,與通用基礎(chǔ)模型相比(如擁有700億個(gè)參數(shù)的Llama 2),這些領(lǐng)域適應(yīng)技術(shù)能夠顯著提高LLM的性能——
不僅在一系列設(shè)計(jì)任務(wù)中實(shí)現(xiàn)了類似或更好的性能,而且還使模型的規(guī)??s小了5倍之多(定制的ChipNeMo模型只有130億個(gè)參數(shù))。
具體來說,研究人員在三種芯片設(shè)計(jì)應(yīng)用中進(jìn)行了評(píng)估:工程助理聊天機(jī)器人、EDA腳本生成,以及錯(cuò)誤總結(jié)和分析。
其中,聊天機(jī)器人可以回答各類關(guān)于GPU架構(gòu)和設(shè)計(jì)的問題,并且?guī)椭簧俟こ處熆焖僬业搅思夹g(shù)文檔。
代碼生成器已經(jīng)可以用芯片設(shè)計(jì)常用的兩種專業(yè)語(yǔ)言,創(chuàng)建大約10-20行的代碼片段了。
代碼生成器
而最受歡迎分析工具,可以自動(dòng)完成維護(hù)更新錯(cuò)誤描述這一非常耗時(shí)的任務(wù)。
對(duì)此,英偉達(dá)首席科學(xué)家Bill Dally表示,即使我們只將生產(chǎn)力提高了5%,也是一個(gè)巨大的勝利。
而ChipNeMo,便是LLM在復(fù)雜的半導(dǎo)體設(shè)計(jì)領(lǐng)域,邁出的重要的第一步。
這也意味著,對(duì)于高度專業(yè)化的領(lǐng)域,完全可以利用其內(nèi)部數(shù)據(jù)來訓(xùn)練有用的生成式AI模型。
數(shù)據(jù)
為了構(gòu)建領(lǐng)域自適應(yīng)預(yù)訓(xùn)練(DAPT)所需的數(shù)據(jù),研究人員同時(shí)結(jié)合了英偉達(dá)自己的芯片設(shè)計(jì)數(shù)據(jù),以及其他公開可用的數(shù)據(jù)。
經(jīng)過采集、清洗、過濾,內(nèi)部數(shù)據(jù)訓(xùn)練語(yǔ)料庫(kù)共擁有231億個(gè)token,涵蓋設(shè)計(jì)、驗(yàn)證、基礎(chǔ)設(shè)施,以及相關(guān)的內(nèi)部文檔。
就公共數(shù)據(jù)而言,研究人員重用了Llama2中使用的預(yù)訓(xùn)練數(shù)據(jù),目的是在DAPT期間保留一般知識(shí)和自然語(yǔ)言能力。
在代碼部分,則重點(diǎn)關(guān)注了GitHub中與芯片設(shè)計(jì)相關(guān)的編程語(yǔ)言,如C++、Python和Verilog。
在監(jiān)督微調(diào) (SFT) 過程中,研究人員選取了可商用的通用聊天SFT指令數(shù)據(jù)集,并制作了的特定領(lǐng)域指令數(shù)據(jù)集。
為了快速、定量地評(píng)估各種模型的準(zhǔn)確性,研究人員還構(gòu)建了專門的評(píng)估標(biāo)準(zhǔn)——AutoEval,形式類似于MMLU所采用的多選題。
訓(xùn)練
ChipNeMo采用了多種領(lǐng)域適應(yīng)技術(shù),包括用于芯片設(shè)計(jì)數(shù)據(jù)的自定義分詞器、使用大量領(lǐng)域數(shù)據(jù)進(jìn)行領(lǐng)域自適應(yīng)預(yù)訓(xùn)練、使用特定領(lǐng)域任務(wù)進(jìn)行監(jiān)督微調(diào),以及使用微調(diào)檢索模型進(jìn)行檢索增強(qiáng)。
首先,預(yù)訓(xùn)練分詞器可以提高特定領(lǐng)域數(shù)據(jù)的分詞效率,保持通用數(shù)據(jù)集的效率和語(yǔ)言模型性能,并最大限度地減少重新訓(xùn)練/微調(diào)的工作量。
其次,研究人員采用了標(biāo)準(zhǔn)的自回歸語(yǔ)言建模目標(biāo),并對(duì)特定領(lǐng)域的數(shù)據(jù)進(jìn)行了更深入的預(yù)訓(xùn)練。
在DAPT之后,則進(jìn)一步利用監(jiān)督微調(diào)(SFT)來實(shí)現(xiàn)模型的對(duì)齊。
針對(duì)大模型的幻覺問題,研究人員選擇了檢索增強(qiáng)生成(RAG)的方法。
研究人員發(fā)現(xiàn),在RAG中使用與領(lǐng)域相適應(yīng)的語(yǔ)言模型可以顯著提高特定領(lǐng)域問題的答案質(zhì)量。
此外,使用適量的特定領(lǐng)域訓(xùn)練數(shù)據(jù)對(duì)現(xiàn)成的無監(jiān)督預(yù)訓(xùn)練稠密檢索模型進(jìn)行微調(diào),可顯著提高檢索準(zhǔn)確率。
結(jié)果
首先,自適應(yīng)的分詞器可以在各種芯片設(shè)計(jì)數(shù)據(jù)集中,將分詞效率提高1.6%至3.3%。
其次, ChipNeMo模型在芯片設(shè)計(jì)領(lǐng)域基準(zhǔn)AutoEval和開放領(lǐng)域?qū)W術(shù)基準(zhǔn)上的測(cè)試結(jié)果顯示:
1. DAPT模型在開放領(lǐng)域?qū)W術(shù)基準(zhǔn)上的準(zhǔn)確性略有下降。
2. DAPT對(duì)領(lǐng)域本身的任務(wù)產(chǎn)生了積極的影響。其中,模型對(duì)于內(nèi)部設(shè)計(jì)和電路設(shè)計(jì)的知識(shí)水平顯著提高。
3. 使用規(guī)模更大、性能更強(qiáng)的基礎(chǔ)模型,可以在特定領(lǐng)域任務(wù)中獲得更好的結(jié)果。
4. DAPT對(duì)域內(nèi)任務(wù)的改進(jìn)與模型大小呈正相關(guān),較大的模型在DAPT后對(duì)特定領(lǐng)域任務(wù)性能的提升更為明顯。
所有模型均使用128個(gè)A100 GPU進(jìn)行訓(xùn)練。研究人員估算了與ChipNeMo領(lǐng)域自適應(yīng)預(yù)訓(xùn)練相關(guān)的成本,如下表所示。
值得注意的是,DAPT占從頭開始預(yù)訓(xùn)練基礎(chǔ)模型總成本的不到1.5%。
RAG和工程助理聊天機(jī)器人
研究人員對(duì)使用和不使用RAG的多個(gè)ChipNeMo模型和Llama 2模型進(jìn)行了評(píng)估,結(jié)果如圖8所示:
- RAG可以大幅提升模型的得分,即便RAG未命中,分?jǐn)?shù)通常也會(huì)更高。
- ChipNeMo-13B-Chat獲得的分?jǐn)?shù)比類似規(guī)模的Llama2-13B-Chat更高。
- 使用RAG的ChipNeMo-13B-Chat與使用RAG的Llama2-70B-Chat獲得了相同的分?jǐn)?shù)(7.4)。當(dāng)RAG命中時(shí),Llama2-70B-Chat得分更高;但RAG未命中時(shí),具有領(lǐng)域適應(yīng)的ChipNeMo表現(xiàn)更好。
- 領(lǐng)域SFT使ChipNeMo-13B-Chat的性能提高了0.28(有 RAG)和0.33(無 RAG)。
EDA腳本生成
從圖9中可以看出,DAPT補(bǔ)足了模型對(duì)底層API的知識(shí),而領(lǐng)域域SFT進(jìn)一步改善了結(jié)果。
一個(gè)有趣的結(jié)果是,LLaMA2-70B似乎可以借助卓越的通用Python編碼能力,來解決尚未接受過訓(xùn)練的新問題。但由于它幾乎沒有接觸過Tcl代碼,因此在該工具上的表現(xiàn)較差。
而這也凸顯了DAPT在小眾或?qū)S芯幊陶Z(yǔ)言方面的優(yōu)勢(shì)。
Bug總結(jié)與分析
結(jié)果如圖10所示,ChipNeMo-13B-Chat模型在所有三項(xiàng)任務(wù)上均優(yōu)于基本LLaMA2-13B-Chat模型,分別將技術(shù)總結(jié)、管理總結(jié)和任務(wù)推薦的分?jǐn)?shù)提高了0.82、1.09和0.61。
此外,領(lǐng)域SFT也顯著提高了模型在管理總結(jié)和任務(wù)分配方面的性能。
不過,Llama2-70B-Chat模型在所有任務(wù)上表現(xiàn)都要比ChipNeMo-13B更加出色。
討論
雖然較大的Llama2 70B有時(shí)也可以達(dá)到與ChipNeMo相似的精度,如圖8、9和10所示。但考慮較小規(guī)模的模型所帶來的成本效益,也同樣重要。
比如,與Llama2 70B不同,英偉達(dá)的ChipNeMo 13B可以直接加載到單個(gè)A100 GPU的顯存中,且無需任何量化。這使得模型的推理速度可以得到大幅提升。與此同時(shí),相關(guān)研究也表明,8B模型的推理成本就要比62B模型低8-12倍。
因此,在生產(chǎn)環(huán)境中決定使用較大的通用模型還是較小的專用模型時(shí),必須考慮以下標(biāo)準(zhǔn):
- 訓(xùn)練和推理權(quán)衡:
較小的領(lǐng)域適應(yīng)模型可以媲美更大的通用模型。雖然領(lǐng)域適應(yīng)會(huì)產(chǎn)生額外的前期成本,但使用較小的模型可以顯著降低運(yùn)營(yíng)成本。
- 用例獨(dú)特性:
從圖6、9和10中可以看出,領(lǐng)域適應(yīng)模型模型在很少出現(xiàn)在公共領(lǐng)域的任務(wù)中表現(xiàn)極佳,如用專有語(yǔ)言或庫(kù)編寫代碼。而對(duì)于通用大模型來說,即使提供了精心挑選的上下文,也很難在這種情況下與領(lǐng)域適應(yīng)模型的準(zhǔn)確性相媲美。
- 領(lǐng)域數(shù)據(jù)可用性:
當(dāng)存在大量訓(xùn)練數(shù)據(jù)(數(shù)十億訓(xùn)練token)時(shí),領(lǐng)域適應(yīng)效果最好。對(duì)于積累了大量?jī)?nèi)部文檔和代碼的公司和項(xiàng)目來說,情況通常如此,但對(duì)于較小的企業(yè)或項(xiàng)目則不一定。
- 用例多樣性:
雖然可以針對(duì)特定任務(wù)微調(diào)通用模型,但領(lǐng)域適應(yīng)模型可以適用于領(lǐng)域中的各種任務(wù)。
總的來說,領(lǐng)域自適應(yīng)預(yù)訓(xùn)練模型(如ChipNeMo-13B-Chat)通??梢匀〉帽绕浠A(chǔ)模型更好的結(jié)果,并且可以縮小與規(guī)模更大的模型(如Llama2 70B)之間的差距。