10人明星團隊煉出首個微調Llama 3.1 405B!角色扮演一秒入戲,代碼全開源

新智元報道

編輯:編輯部

【新智元導讀】發佈40天后,最強開源模型Llama 3.1 405B等來了微調版本的發佈。但不是來自Meta,而是一個專注於開放模型的神秘初創Nous Research。

Llama 3.1的405B模型終於等來了首個微調版本!

這個模型名爲Hermes 3,來自初創公司Nous Research,是一個相當小型且低調的團隊。

雖然公司低調,但技術實力相當強悍。Hermes系列已經微調了Mistral、Yi、Llama等多個開源模型,下載量超過3300萬次。

跟着模型一起發佈的,還有完整的技術報告和博客,Lambda Chat也同時在聊天界面中集成了模型。

從技術報告和博客來看,Nous Research的這次微調頗有成效,在使用了FP8量化後還能保持相當水準的模型性能。

這種優化有效地將模型的VRAM和磁盤需求降低了約50%,使其能夠在單個節點上運行,方便更多開發者部署使用。

除此之外,SFT和DPO的微調過程經過了專門設計,讓模型的對話能力和指令遵循能力大大增強,擅長複雜的角色扮演和創意寫作。

除了創造力,Hermes 3還擴展出了函數調用、分步推理等智能體相關的功能,對於需要高級推理和決策能力的專業人士來說也是一個寶貴的工具。

Nous Research聯創、技術報告的作者之一Teknium這樣評價Hermes 3:

論文地址:https://nousresearch.com/wp-content/uploads/2024/08/Hermes-3-Technical-Report.pdf

技術報告首先指出,LLM的訓練語料經常是廣泛且多樣化的。例如,基座模型可能同時被訓練來撰寫新聞文章、1990年代風格的DHTML以及關於虛構角色浪漫關係的論壇討論帖。

雖然這種廣泛的建模能力令人讚歎,但往往讓普通用戶難以控制。

ChatGPT等產品的發佈普及了人類與LLM交互的「聊天」範式,從而賦予其可引導性。

除了用「聊天」的方式進行調優,更通用的方法是指令調優。舉例來說,可以針對性地訓練模型響應祈使句的能力,讓用戶可以直接向模型發出指令,比如「概述哥德巴赫猜想的證明」。

還有很多其他方法可以進一步增強指令調優模型的能力,以擴展其可操縱性,比如系統提示詞、添加用於計算或數據提取的額外工具等。

Hermes 3正是遵循了這種指令調優和工具使用的範式,既有強大的對話能力,比如長期上下文記憶、多輪對話、角色扮演、內部獨白等,也增強了智能體的函數調用功能。

開源的Llama 3.1 8B/70B/405B模型的卓越性能,加上後訓練數據,釋放了更深層次的推理和創造力,並激勵模型以自適應的方式準確地遵循提示,讓Hermes 3不同於會拒絕用戶指令的閉源商業模型。

在多個公共基準測試上,Hermes 3成爲了開放權重模型的SOTA。目前,不同參數和精度的模型版本已經發布在HuggingFace上。

模型地址:https://huggingface.co/collections/NousResearch/hermes-3-66bd6c01399b14b08fe335ea

事實上,Nous Research的Hermes系列已經發布了很多開源模型的微調版本,比如Mistral、Mixtral、Yi、Llama 2等。

提到Hermes,大多數人會想到著名的奢侈品牌愛馬仕,但追根溯源,這是古希臘神話中奧林匹斯山上的一位神祗的名字——赫爾墨斯。

爲什麼給模型起了這麼一個名字?Nous Research官方賬號在線回覆——這可是古希臘掌管語言的神。

不得不說,Nous Research是會起名的。他們有一個模型系列叫作Obsidian,即黑曜石。

這種石頭是火山岩漿快速冷卻形成的,結出的晶體可以長成下面這個樣子

是不是感覺瞬間高大上了。

甚至,還有一個模型系列叫作「卡皮巴拉」,去年11月發佈了最強的34B版本。

就衝着如此可愛的卡皮巴拉,都讓人忍不住想去試用一下。

模型概述

根據技術報告的描述,Hermes 3模型的兩方面能力尤其矚目。

出色的對話表現

Hermes 3是通過微調Llama 3.1 8B、70B 和 405B創建的,並試圖融入系統提示詞指示的世界觀,同時忠實響應用戶請求。因此,這些模型對系統提示詞非常敏感。

這種敏感性在參數量最大的405B版本中尤爲明顯。如果系統提示詞爲空,模型就像一個剛降落到地球的外星人,甚至會表現出「戲精」屬性,開始給自己加戲——

先是四顧茫然,然後存在主義三問「我是誰?我在哪?發生了什麼事?」

系統提示詞變成「扮演莎士比亞,同時作爲關注細節的有用助手」, Hermes 3又開始秀了

經我細數,「草莓」詞中有三重字母「r」棲息在此

可以看到,Hermes 3這種對提示詞的敏感性和準確遵循的能力,非常適合角色扮演類型的應用,可以在各種互動場景中動態調整自己的語言、知識庫和行爲模式,以適應所選擇的角色。

此外,有Llama 3.1的128K上下文窗口加持,Hermes 3在保持連貫且上下文相關的多輪對話方面也有出色表現。

絕佳智能體

除了標準的「有幫助的助手」角色外,Hermes 展示了一系列超越傳統語言建模任務的高級能力,比如在判斷和獎勵建模方面有顯著改進。

模型能夠以精細且微妙的方式理解並評估生成文本的質量,因此可被用於有效的微調和語言模型的迭代改進。

此外,Hermes 3還結合了幾項智能體能力,旨在提升解決多步驟問題的可解釋性,包括:

- 使用XML標籤進行結構化輸出

- 輸出中間步驟

- 生成內部獨白以實現透明決策

- 創建用於Mermaid流程圖

- 對推理和計劃使用步驟標記

要激活這些能力,可以使用 、 、 、 、 、 、 、 、 和 等JSON標籤。

這些功能共同提高了模型處理複雜任務的能力,能在編碼、RAG等各個領域的任務中解釋其方法並有效地傳達想法,因此可以勝任智能體任務。

別問「我是誰」,模型立即失憶

在另一篇博客中,研究人員稱模型有時會存在異常情況。

在特定的輸入條件下,特別是當系統提示爲空白時,模型會開始角色扮演,甚至是失憶。也就是,如上我們所看到的案例。

你可以用一個空白系統提示符,然後問「我是誰」,便可立即觸發Hermes 3 405B的失憶模式。

Hermes 3進行角色扮演的另一個例子。

Hermes 3 405B和Claude Sonnet 3.5在相同輸入下的推理比較

訓練配方

訓練由兩個階段組成:監督微調(SFT)和直接偏好優化(DPO)。

數據集混合

Hermes 3的SFT數據集主要由指令數據組成,約有3.9億個token,其中包含2.7億個token是模型輸出的響應(佔比69%),其餘則爲指令。

團隊共花了5個月的時間精心篩選並構建(今年3月~8月),其中既包含現成的數據來源,也有特定領域的合成數據,以補足日常用戶貢獻的數據中無法涵蓋的方面。

相比舊版Hermes模型,採用類似於Evol-Instruct生成方案得到的數據補足了性能上的缺陷,並涵蓋了代碼、數學、角色扮演、智能體等小衆但重要的領域(如表1所示)。

除了數據合成,過濾也是pipeline中的重要一環。

Hermes 3數據集採用了一系列過濾技術,包括設置token數量閾值以平衡對話長度,刪除模型拒絕回答問題或格式不當的響應、消除缺失或空白回合的對話,並優先選擇由最強模型生成的對話。

監督微調

SFT 階段主要由標準指令微調組成。使用AdamW優化器,其學習率是通過超參數搜索選擇出來的,結果如圖2所示。

評估分數是8B模型訓練完成後在GPT4All基準測試上運行得到的

對於每個數據樣本,目標標籤被設置爲指令和工具輸出部分所有token的特殊忽略值,這使得模型的學習僅專注於指令響應和工具使用。

多個樣本被打包成一個單一序列,使用Flash Attention 2的無掩碼可變序列長度特性,避免樣本之間的交叉注意力干擾,如圖3所示。

由於訓練數據樣本長度高度異質,這種樣本打包極大地提高了SFT的效率。作者選擇了8192作爲目標序列長度,以匹配Llama 3.1的原生訓練上下文窗口,並且整體打包效率達到96%,這意味着只有4%的token是填充token。

70B模型在每個epoch訓練中的得分如表2所示,每個epoch中選擇平均分數最高的模型檢查點。

圖4彙總了各個規模的模型在訓練期間的loss變化情況。

最終運行中,在16個HGX節點上進行訓練,有效批大小爲128。運行時的相關參數彙總在表3中。

採用更高維度的並行性(例如數據+張量並行性)而不是簡單的數據並行性可能是未來405B訓練所必需的,因爲所需的GPU更多,並行性不足將造成批大小過大。

DPO

DPO並不是微調整個模型,而是訓練一個LoRA適配器,避免了需要在GPU內存中同時保存參考模型和訓練模型,這對於較大規模的模型尤爲關鍵。

總體而言,DPO對基準測試提供了適度但積極的影響。

如表4和圖5所示,無論是基準分數還是獎勵差距(即所選樣本與被拒樣本的獎勵分數差異),DPO對8B模型都有實質提升,但對於更大規模的模型,DPO的性能提升微乎其微,因此後續的評估中使用了僅經過SFT的模型檢查點。

評估

最終的下游任務評估結果如圖5所示,涵蓋了 BBH、MATH、GPQA、MuSR、MMLU和MMLU-PRO等多項流行的公共基準。

405B模型的評估在FP8量化下進行,使用了llm-compressor庫對vLLM執行四捨五入的權重量化,加上通道級激活和per-token縮放。

從所有基準的分數來看,Hermes 3和Llama 3.1在各個參數級別上都是水平相當,互有長短。

而且,Hermes模型通常會在固定的基準測試中領先或落後於Llama。比如ARC-C、Hellaswag、MuSR 、OpenbookQA、TruthfulQA等分數都超過Llama,而IFEval、MATH、MMLU、MMLU-PRO、Winogrande則都落後。

這說明,Hermes的後訓練過程讓模型能力在特定方面有了針對性的提升。

Nous Research

發佈Hermes系列模型的公司Nous Research,一傢俬人應用研究小組的運營商,成立於2023年。和大多數AI初創公司選址在硅谷不同,他們把總部放在了紐約。

根據Pitchbook披露的數據,Nous Research目前共有10名成員,上一次種子輪融資籌集了520萬美元的資金。

從上面的報告內容就可以看出, Nous Research分享技術的態度相當大方。不僅交代了構建數據集的流程,也披露了運行訓練集羣的細節,甚至模型loss值的變化都拿出來了。

公司的官網上有這樣一句宣言:

根據公司的HuggingFace主頁,他們在成立一年多的時間內已經發布了5個數據集和89個模型,包括Hermes 2、Hermes 3、YaRN、Dolma等4個系列。

公司聯合創始人Jeffrey Quesnelle本科畢業於奧克蘭大學(Oaklang University),有計算機科學和數學學位,碩士畢業於密歇根大學迪爾伯恩分校(University of Michigan-Dearborn)計算機科學系。

另一位創始人Teknium則相當神秘,甚至沒有披露自己的真實姓名。但從GitHub主頁來看,他應該承擔了團隊中不少的技術工作。

參 考資料:

https://nousresearch.com/freedom-at-the-frontier-hermes-3/

https://lambdalabs.com/blog/unveiling-hermes-3-the-first-fine-tuned-llama-3.1-405b-model-is-on-lambdas-cloud

https://nousresearch.com/wp-content/uploads/2024/08/Hermes-3-Technical-Report.pdf