就在剛剛,輝達再一次證明了自己的AI創新領域的領導地位。
它全新發佈的Nemotron-4 340B,是一系列具有開創意義的開源模型,有可能徹底改變訓練LLM的合成資料生成方式!
論文地址:https://d1qx31qr3h6wln.cloudfront.net/publications/Nemotron_4_340B_8T_0.pdf
這一突破性進展,標誌著AI行業的一個重要里程碑——
從此,各行各業都無需依賴大量昂貴的真實世界資料集了,用合成資料,就可以建立性能強大的特定領域大語言模型!
現在,Nemotron-4 340B已經取得了輝煌戰績,直接超越了Mixtral 8x22B、Claude sonnet、Llama3 70B、Qwen 2,甚至可以和GPT-4一較高下!
其實,以前這個模型就曾登上大模型競技場LMSys Chatbot Arena,當時它的別名是「june-chatbot」
具體來說,Nemotron-4 340B包括基礎模型Base、指令模型Instruct和獎勵模型Reward,並建構了一個高品質合成資料生成的完整流程。
模型支援4K上下文窗口、50多種自然語言和40多種程式語言,訓練資料截止到2023年6月。
訓練資料方面,輝達採用了高達9兆個token。其中,8兆用於預訓練,1兆用於繼續訓練以提高品質。
值得一提的是,指令模型的訓練是在98%的合成資料上完成的。
結果顯示,Nemotron-4-340B-Base在常識推理任務,如ARC-Challenge、MMLU和BigBench Hard基準測試中,可以和Llama-3 70B、Mixtral 8x22B和Qwen-2 72B模型媲美。
而Nemotron-4-340B-Instruct,在指令跟隨和聊天能力方面也超越了相應的指令模型。
Nemotron-4-340B-Reward在發表時,在RewardBench上實現了最高精準性,甚至超過了GPT-4o-0513和Gemini 1.5 Pro-0514這樣的專有模型。
在BF16精度下,模型的推理需要8塊H200,或16塊H100/A100 80GB。如果是在FP8精度下,則只需8塊H100。
除此之外,Nemotron-4 340B還有一個非常顯著的特點——對商用十分友好的許可。
高級深度學習研究工程師Somshubra Majumdar對此表示大讚:「是的,你可以用它生成你想要的所有資料」
無與倫比的合成資料生成
Nemotron-4 340B指令模型,可以幫助開發者生成合成訓練資料。
這些多樣化的合成資料,模仿了真實世界的資料特徵,因而資料質量明顯提升,從而提升了各領域定製LLM的性能和穩定性。
而且,為了進一步提高AI生成資料的質量,開發者還可以用Nemotron-4 340B 獎勵模型,來篩選高品質的響應。
它會根據有用性、正確性、一致性、複雜性和冗長性這5個屬性,對響應評分。
另外,研究者可以使用自己的專用資料,再結合HelpSteer2資料集,定製Nemotron-4 340B 基礎模型,以建立自己的指令或獎勵模型。
用NeMo微調,用TensorRT-LLM最佳化推理
所有Nemotron-4 340B模型都利用張量平行性經過TensorRT-LLM最佳化,這種模型平行性可以將單個權重矩陣分割到多個GPU和伺服器上,從而實現大規模高效推理。
其中,基礎模型可以使用NeMo框架進行定製,以適應特定的用例或領域。廣泛的預訓練資料使得我們可以對它進行微調,並且為特定的下游任務提供更準確的輸出。
通過NeMo框架,輝達提供了多種定製方法,包括監督微調和參數高效微調方法,如低秩適應(LoRA)。
為了提高模型質量,開發者可以使用NeMo Aligner和由Nemotron-4 340B獎勵模型標註的資料集來對齊模型。
在各行業的潛在影響:從醫療到金融及其他領域
在醫療領域,如果能生成高品質合成資料,可能會帶來藥物發現、個性化醫療和醫學影像方面的突破。
在金融領域,基於合成資料訓練的定製大語言模型,則可能會徹底改變欺詐檢測、風險評估和客戶服務。
在製造業和零售業方面,特定領域的LLM可以實現預測性維護、供應鏈最佳化和個性化客戶體驗。
不過,Nemotron-4 340B的發佈,也提出了一些隱憂,比如資料隱私和安全怎樣保證?
隨著以後合成資料的普及,企業是否有防護措施來保護敏感資訊,並防止濫用?
如果用合成資料訓練AI模型,是否會引發倫理問題,比如資料中的偏見和不精準可能引發意料外的後果?
但至少在目前,越來越多跡象表明,只有合成資料才是未來。
預訓練
預訓練資料是基於三種不同類型的混合,共有9T token。其中,前8T用於正式預訓練階段,最後1T用於繼續預訓練階段。
與Nemotron-4-15B-Base類似,Nemotron-4-340B-Base基於的也是僅解碼器Transformer架構。
具體來說,模型使用因果注意力掩碼來確保序列的一致性,並採用旋轉位置嵌入(RoPE)、SentencePiece分詞器、分組查詢注意力(GQA),以及在MLP層中使用平方ReLU啟動。
此外,模型沒有偏置項,丟棄率為零,輸入輸出嵌入不繫結。
模型超參數如表1所示,有94億個嵌入參數和3316億個非嵌入參數。
Nemotron-4-340B-Base使用768個DGX H100節點進行訓練,每個節點包含8個基於NVIDIA Hopper架構的H100 80GB SXM5 GPU。
每個H100 GPU在進行16位浮點(BF16)運算時,峰值吞吐量為989 teraFLOP/s(不含稀疏運算)。
輝達採用了8路張量平行、12路交錯流水線平行和資料平行相結合的方法,並使用了分佈式最佳化器,將最佳化器狀態分片到資料平行副本上,以減少訓練的記憶體佔用。
表2總結了批大小增加的3個階段,包括每次迭代時間,以及GPU利用率(MFU)等,其中100%是理論峰值。
在這一部分,我們報告了 Nemotron-4-340B-Base 的評估結果。我們將該模型
表3是Nemotron-4-340B-Base與Llama-3 70B、Mistral 8x22和Qwen-2 72B三款開源模型的比較結果。
可以看到,Nemotron-4-340B-Base在常識推理任務以及像BBH這樣的流行基準測試中拿下了SOTA,並在MMLU和HumanEval等程式碼基準測試中位列第二。
獎勵模型建構
獎勵模型在模型對齊中起著至關重要的作用,是訓練強指令跟隨模型時用於偏好排序和質量過濾的重要評判者。
為了開發一個強大的獎勵模型,輝達收集了一個包含10k人類偏好資料的資料集——HelpSteer2。
與成對排名模型不同,多屬性回歸獎勵模型在區分真實有用性和無關偽影(如僅因長度而偏好較長但無用的回覆)方面更有效。此外,回歸模型在預測細粒度獎勵、捕捉相似回覆之間的有用性細微差別方面表現更好。
回歸獎勵模型建立在Nemotron-4-340B-Base模型之上,通過用一個新的獎勵「頭」替換模型的最終softmax層。
這個「頭」是一個線性投影,將最後一層的隱藏狀態對應到一個包含HelpSteer屬性(有用性、正確性、一致性、複雜性、冗長性)的五維向量。
在推理過程中,這些屬性值可以通過加權求和聚合為一個總體獎勵。
資料對齊
值得注意的是,在整個對齊過程中,輝達僅使用了大約20K的人工標註資料,而資料生成管線則生成了用於監督微調和偏好微調的98%以上的資料。
生成合成提示,是合成資料生成(SDG)的第一步。
這些提示在不同維度上的多樣性至關重要,包括任務多樣性(如寫作、開放問答、封閉問答)、主題多樣性(如STEM、人文、日常生活)和指令多樣性(如JSON輸出、段落數量、是或否回答)。
對此,輝達使用Mixtral-8x7B-Instruct-v0.1作為生成器,分別對這些任務的合成提示進行了生成。
為了收集多樣化的主題,輝達先引導生成器輸出一組多樣化的宏觀主題,然後再為每個合成的宏觀主題生成相關的子主題。
加上人工收集的,最終得到的主題達到了3K個。
用於合成提示生成的提示如下:
為了提升對於對齊模型至關重要的指令跟隨能力,就需要生成合成的指令跟隨提示(例如,「寫一篇關於機器學習的文章,你的回答應包含三個段落」)。
具體來說,先隨機選擇一些合成提示。對於每個合成提示,從「可驗證」指令範本中隨機生成一個合成指令(例如,「你的回答應包含三個段落」)。然後,使用手動定義的範本將提示和指令連接在一起。
除了單輪指令跟隨提示外,輝達還建構了多輪指令跟隨提示,這些指令適用於所有未來的對話(例如「根據以下指令回答問題和所有後續問題:[指令開始]用三個段落回答。[指令結束]」)。
此外,輝達還建構了第二輪指令跟隨提示,可以根據給定的指令修改之前的回答。
為了在偏好微調中提高模型的多輪對話能力,輝達建構了兩輪提示來建立偏好資料集。
具體來說,提示包含一個使用者問題,一個助手回答,和另一個使用者問題,形式為「使用者:XXX;助手:XXX;使用者:XXX;」。
輝達從ShareGPT中獲取第一個使用者提示,並使用中間指令模型生成助手回答和下一輪問題。
為了更好地模擬真實世界的使用者請求,輝達將LMSYS-Chat-1M中的提示按平衡比例進行組合,並將其分為兩個不同的集合,一個用於監督學習,另一個用於偏好學習。
在監督學習部分,輝達移除了LMSYS中被標記為潛在不安全的提示,以避免引發不良對話。但在偏好學習部分則進行了保留,以便模型能夠學習如何區分安全和不安全的響應。
從圖3中可以看到,合成提示的平均有用性高於LMSYS提示。由於簡單提示更容易「有用」,這意味著LMSYS提示比合成單輪提示平均來說更難且更複雜。
通過監督微調,模型就可以學習到,如何以對話形式與使用者互動。
輝達通過提示指令模型生成基於輸入提示的響應,來啟動合成對話。
為了培養多輪對話能力,他們把每個對話設計成包含三輪,好讓對話流程更加動態、更有互動性。
通過迭代角色扮演,模型會交替模擬助手和使用者的角色。
輝達發現,為了在使用者回合中引導所需的行為,就需要提供明確的提示來定義不同的使用者個性。
並且,附上對話歷史是至關重要的。
他們對使用者回合進行了後處理,排除了禮貌陳述(如「謝謝你...」,「當然,我很高興...」)來模擬真實世界的使用者問題。
生成演示資料,是採用的貪婪採樣方法。
此外,輝達會使用Nemotron4-340B-Reward評估對話質量,為每個樣本分配一個分數,並過濾掉那些低於預定閾值的樣本。
這就提供了額外的質量控制層,保證保留下來的都是高品質資料。
輝達使用了10K人工標註的HelpSteer2偏好資料,來訓練Nemotron-4-340B-Reward。
不過,他們還需要具有更廣泛提示領域、更高品質響應的偏好資料,這些響應來自頂級的中間模型,並在可能的情況下包含額外的真實訊號。
因此,輝達生成了三元組形式的合成偏好資料(提示,選擇的響應,被拒絕的響應)。
偏好封包含合成的單輪提示、指令跟隨提示、雙輪提示,以及來自真實世界的提示,包括ShareGPT提示、LMSYS提示、GSM8K和MATH訓練資料集中的提示。
對於每個提示,輝達都使用了隨機的中間模型生成響應。
通過多個模型生成響應,就能確保偏好資料集具有多樣化的響應,以供模型學習。
此外,他們還生成了更具挑戰性的合成偏好示例,這些示例是根據MT-Bench從表現最好的模型中多次隨機生成的響應,這樣就可以進一步提升模型的性能。
對於每個提示給出的多個響應,輝達都需要對其偏好排序進行判斷,並選擇出被選中的響應和被拒絕的響應。
一些任務可以使用基準真相(例如GSM8K和MATH訓練資料集中的答案)或驗證器(例如指令跟隨響應可以用 Python程序驗證)來評估。
大多數提示,是沒有客觀答案的。因此,輝達嘗試了以大語言模型為裁判和以獎勵模型為裁判。
在第一種情況中,輝達向裁判的大語言模型提供提示和兩個響應,並要求其比較這兩個響應。
為了避免位置偏差,他們會交換響應順序後,再次詢問大語言模型。當大語言模型兩次判斷一致時,就會選出有效的三元組(提示、被選中的、被拒絕的)。
另外,為了進一步探索了以獎勵模型為裁判的情況,輝達要求Nemotron-4-340B-Reward 預測每個(提示、響應)對的獎勵,並根據獎勵決定偏好排序。
獎勵基準得分顯示以,獎勵模型為裁判的精準性,要高於以大語言模型為裁判。
特別是在Chat-Hard類別中,選擇的響應和被拒絕的響應難以區分,以獎勵模型為裁判的表現,要遠優於以大語言模型為裁判,平均精準率為0.87對0.54。
在這個過程中,輝達注意到:Chat-Hard類別的評分對於合成資料生成中的偏好排序特別重要。
因此,在後來的資料集迭代中,他們轉而使用以獎勵模型為裁判。
如前所述,高品質的資料對於模型的對齊至關重要。
在資料合成過程中,需要一個對齊的大語言模型來精準遵循指令。
這就引發了一系列重要的問題:哪個模型最適合作為生成器?生成器的強度與資料質量之間有何關係?如何改進資料生成器?
受到弱到強泛化的啟發,輝達開發了一種新穎的迭代方法,逐步最佳化資料。這種方法結合了對齊訓練與資料合成的優勢,使它們能夠相互增強,並且持續改進。
圖4展示了從弱到強的迭代對齊的工作流程。
首先,使用一個初始對齊模型來生成對話和偏好資料。然後,通過監督微調和偏好調優,利用它們對更好的基礎模型進行對齊。
有趣的是,輝達發現,教師模型並不會限制學生模型的上限——
隨著基礎模型和對齊資料的改進,新對齊的模型能夠顯著超過初始對齊模型。注意,對齊過程與基礎模型的預訓練是平行進行的。
在第一次迭代中,輝達選擇了Mixtral-8x7B-Instruct-v0.1作為初始對齊模型,因為它是一個具有許可的強大模型。
生成的資料用於訓練Nemotron-4-340B-Base的一個中間檢查點,稱為340B-Interm-1-Base。
值得注意的是,340B-Interm-1-Base的表現優於Mixtral 8x7B基礎模型,這反過來使得最終的340B-Interm-1-Instruct模型,能夠超過Mixtral-8x7B-Instruct-v0.1模型。
這就證明,可以通過弱監督引出模型強大的能力。
在第二次迭代中,輝達使用生成的340B-Interm-1-Instruct模型,作為新的資料生成器。
由於它比Mixtral-8x7B-Instruct-v0.1更強,第二次迭代生成的合成資料質量就更高。
生成的資料用於訓練340B-Interm-2-Base模型,使其升級為340B-Interm-2-Chat模型。
這個迭代過程形成了一個自我強化的飛輪效應,改進主要來自兩個方面——
(1)當使用相同的資料集時,基礎模型的強度直接影響指令模型的強度,基礎模型越強,指令模型也越強;
(2)當使用相同的基礎模型時,資料集的質量決定了指令模型的效果,資料質量越高,指令模型也越強。
在整個對齊過程中,輝達進行了多輪資料生成和改進,不斷提升模型的質量。
此外,輝達還結合了多個補充資料集,以賦予模型特定的能力。
主題連貫性和細粒度指令跟隨是,指令模型的重要能力。
因此,輝達結合了CantTalkAboutThis訓練集,其中包括了覆蓋廣泛主題的合成對話,並故意插入干擾回合以分散聊天機器人對主要主題的注意力。
這就能幫助模型,在任務導向的互動中更好地專注於預定的主題。
某些任務可能由於需要特定的能力(如網際網路訪問或即時知識)而無法由模型獨立完成。
為減少這種情況下的幻覺,輝達採用少樣本方法,使用人類編寫的示例來提示大語言模型生成各種問題。
然後,他們會明確要求大語言模型以拒絕的方式回應,收集這些回應,並將其與相應的問題配對。
這些配對資料就可以用於訓練模型,讓它們能夠更好地處理無法完成的任務。
Open-Platypus已被證明可以提高STEM和邏輯知識。因此,輝達將具有許可的子集(如PRM800K、SciBench、ARB 、openbookQA)納入訓練資料中。
基於文件的問答是大語言模型的重要用例。
輝達利用FinQA資料集提高了數值的推理能力,使用人工標註資料提高了上下文問答的精準性,並使用 wikitablequestions資料集,增強了模型對半結構化資料的理解。
此外,輝達還使用了一部分來自Glaive AI的樣本,以增強模型在函數呼叫方面的能力。
監督微調(Supervised Fine-tuning,SFT)是模型對齊的第一步。
為了改善傳統SFT方法存在的缺陷,輝達設計了一種兩階段的SFT策略,使模型能夠依次、有計畫地學習不同的行為。
結果顯示,這種方法在所有下游任務中都產生了更好的效果。
為了在不影響其他任務的情況下提高編碼和推理能力,輝達選擇先在編碼資料上進行SFT。
為了獲得大量的資料,輝達開發了一種名為Genetic Instruct的全新方法——通過對進化過程的模擬,利用自我指令和嚮導編碼器突變,從少量高品質種子生成大量合成樣本。
過程中,輝達還引入了一種適應度函數,利用LLM評估生成指令及其解決方案的正確性和質量。
然後,通過這些評估和檢查的樣本會被新增到種群池中,進化過程會持續進行,直到達到目標種群規模。
最終,經過廣泛的去重和過濾後,輝達保留了大約80萬條樣本用於程式碼SFT訓練。
第二階段,就是通用SFT了。
這裡,輝達採用的是一個包含20萬樣本的混合資料集。
為了減輕遺忘的風險,資料混合中還包括了前一個程式碼SFT階段的2%的程式碼生成樣本。
在完成監督微調後,輝達繼續通過偏好微調來改進模型。
在這個階段,模型將學習偏好示例,其形式是:提示,選擇的響應,被拒絕的響應。
DPO演算法通過最佳化策略網路,來最大化選擇和被拒絕響應之間的隱含獎勵差距。
在策略學習區分選擇和被拒絕的響應時,可以觀察到,隨著差距的增加,選擇和被拒絕響應的機率都在一致地下降,即使選擇的響應是高品質的。
根據經驗,當訓練時間足夠長時,策略網路容易過擬合,一個指標(例如,MT-Bench)的改進通常伴隨著其他指標(例如,零樣本MMLU)的退化。
為瞭解決這些問題,輝達在選擇的響應上新增了加權的SFT損失,以補充原始的DPO損失。
額外的SFT損失有助於防止策略網路大幅偏離偏好資料,特別是因為偏好資料不是從參考策略生成的。
為了避免模型學習低品質的選擇響應,當沒有可用的真實值時,輝達使用了Nemotron-4-340B-Reward來挑選高品質的選擇響應示例。最終,這產生了一個包含16萬示例的偏好資料集。
為瞭解決DPO存在的過擬合問題,輝達提出了一種新演算法——獎勵感知偏好最佳化(RPO)。它嘗試使用由策略網路定義的隱含獎勵近似獎勵差距。
基於此,便得到了一個新的損失函數:
結果顯示,隨著RPO迭代次數的增加,模型還可以持續地在所有任務上獲得提升。
經過三次RPO訓練迭代後的檢查點,就是最終的Nemotron-4-340B-Instruct。
輝達對Nemotron-4-340B-Instruct進行了全面的自動基準測試評估:
正如表5所示,Nemotron-4-340B-Instruct在當前可用的開源模型中表現出色,具備很強的競爭力。
對齊訓練包括:程式碼SFT、通用SFT、DPO和三輪RPO。
表6展示了模型最終的成績,並量化了每個對齊階段的中間模型的性能:
除了自動評估外,輝達模型進行了人類評估。其中,標註員被提供了136個提示,分為10個不同的任務類別。
基於「有用性」和「真實性」這兩個維度,輝達詳細定義了5個質量等級的具體內容,從而在減少了主觀性的同時,提升了可靠性。
在標註設計中,每個提示都與固定模型集合中的三個不同響應配對。每個提示的響應順序是隨機的,所有提示和響應都由同一組標註員進行評估。
標註完成後,將評分轉換為相對於GPT-4-1106-preview的相對勝/平/負率。
從圖5中可以看到,除了提取和重寫任務外,Nemotron-4-340B-Instruct的勝率與GPT-4-1106-preview相當或更好,特別是在多輪對話中表現出色。
整體來說,Nemotron-4-340B-Instruct的勝:平:負比率為28.19%:46.57%:25.24%。
從表7中則可以看到,與GPT-4-1106-preview相比,標註員認為Nemotron-4-340B-Instruct的響應長度更為合適(79.41%對74.02%)。
值得注意的是,這一優勢主要來自較低的長/冗長響應率(20.10%對25.74%)。
作者
(新智元)