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