千元預算半天訓練,效果媲美主流大模型,開源可商用中文LLaMA-2
LLaMA-2 相較于 LLaMA-1,引入了更多且高質量的語料,實現了顯著的性能提升,全面允許商用,進一步激發了開源社區的繁榮,拓展了大型模型的應用想象空間。然而,從頭預訓練大模型的成本相當高,被戲稱 「5000 萬美元才能入局」,這使得許多企業和開發者望而卻步。那么,如何以更低的成本構建自己的大型模型呢?
作為大模型降本增效的領導者,Colossal-AI 團隊充分利用 LLaMA-2 的基礎能力,采用高效的訓練方法,僅使用約 8.5B token 數據、15 小時、數千元的訓練成本,成功構建了性能卓越的中文 LLaMA-2,在多個評測榜單性能優越。
相較于原始 LLaMA-2,在成功提升中文能力的基礎上,進一步提升其英文能力,性能可與開源社區同規模預訓練 SOTA 模型媲美。秉承 Colossal-AI 團隊一貫的開源原則,完全開源全套訓練流程、代碼及權重,無商用限制,并提供了一個完整的評估體系框架 ColossalEval,以實現低成本的可復現性。相關方案還可遷移應用到任意垂類領域和從頭預訓練大模型的低成本構建。
開源代碼與權重:https://github.com/hpcaitech/ColossalAI
性能表現
注:基于 ColossalEval 評分,括號中分數來源于對應模型官方發布的榜單分數,C-Eval 分數來源于官網 Leaderboard。
在常見的中、英文評測榜單,可以看到,在英文 MMLU 榜單中,Colossal-LLaMA-2-7B-base 在低成本增量預訓練的加持下,克服了災難性遺忘的問題,能力逐步提升(44.47 -> 53.06),在所有 7B 規模的模型中,表現優異。
在中文榜單中,主要對比了 CMMLU, AGIEVAL, GAOKAO 與 C-Eval,效果遠超基于 LLaMA-2 的其他中文漢化模型。即使與其他采用中文語料,可能花費上千萬元成本,從頭預訓練的各大知名模型相比,Colossal-LLaMA-2 在同規模下仍表現搶眼。尤其是與原始 LLaMA-2 相比,在中文能力上有了質的飛躍 (CMMLU: 32.97 -> 49.89)。
而通過 SFT、LoRA 等方式微調,能有效注入基座模型的知識與能力十分有限,不能較好的滿足高質量領域知識或垂類模型應用的構建的需求。
為了更好的評估模型的性能,Colossal-AI 團隊不僅僅依賴于量化的指標,還對于模型的不同方面進行了人工的評估,以下是一些例子:
從整個訓練的 Loss 記錄來看,在利用 Colossal-AI 系統降本增效能力的同時,模型收斂性也得到充分保證,僅通過約 8.5 B tokens(85 億 tokens),數千元算力成本,讓模型達到如此驚艷的效果。而市面上的大模型動輒使用幾萬億 token 進行訓練才有效果保證,成本高昂。
那么 Colossal-AI 團隊是如何把訓練成本降低,并達到如此的效果的呢?
詞表擴充與模型初始化
LLaMA-2 原始詞表并未針對中文做特定優化,所包含的中文詞有限,導致在中文語料上理解力不足。因此,首先對 LLaMA-2 進行了詞表的擴充。
Colossal-AI 團隊發現:
- 詞表的擴充不僅可以有效提升字符串序列編碼的效率,并且使得編碼序列包含更多的有效信息,進而在篇章級別編碼和理解上,有更大的幫助。
- 然而,由于增量預訓練數據量較少,擴充較多的單詞反而會導致某些單詞或組合無實際意義,在增量預訓練數據集上難以充分學習,影響最終效果。
- 過大的詞表會導致 embedding 相關參數增加,從而影響訓練效率。
因此,經過反復實驗,同時考慮了訓練的質量與訓練的效率,Colossal-AI 團隊最終確定將詞表從 LLaMA-2 原有的 32000 擴充至 69104。
有了擴充好的詞表,下一步就是基于原有的 LLaMA-2 初始化新詞表的 embedding。為了更好的遷移 LLaMA-2 原有的能力,實現從原有 LLaMA-2 到 中文 LLaMA-2 能力的快速遷移,Colossal-AI 團隊利用原有的 LLaMA-2 的權重,對新的 embedding 進行均值初始化。既保證了新初始化的模型在初始狀態下,英文能力不受影響,又可以盡可能的無縫遷移英文能力到中文上。
數據構建
為了更大程度的降低訓練的成本,高質量的數據在其中起著關鍵作用,尤其是對于增量預訓練,對于數據的質量,分布都有著極高的要求。為了更好的篩選高質量的數據,Colossal-AI 團隊構建了完整的數據清洗體系與工具包,以便篩選更為高質量的數據用于增量預訓練。
以下圖片展示了 Colossal-AI 團隊數據治理的完整流程:
除了常見的對數據進行啟發式的篩選和去重,還對重點數據進行了打分和分類篩選。合適的數據對于激發 LLaMA-2 的中文能力,同時克服英文的災難性遺忘問題,有著至關重要的作用。
最后,為了提高訓練的效率,對于相同主題的數據,Colossal-AI 團隊對數據的長度進行了排序,并根據 4096 的最大長度進行拼接。
訓練策略
多階段訓練
在訓練方面,針對增量預訓練的特點,Colossal-AI 團隊設計了多階段,層次化的增量預訓練方案,將訓練的流程劃分為三個階段:
- 大規模預訓練階段:目標是通過大量語料訓練,使得模型可以產出相對較為流暢的文本。該階段由 LLaMA-2 完成,經過此階段,模型已經掌握大量英文知識,并可以根據 Next Token Prediction 輸出流暢的結果。
- 中文知識注入階段:該階段依賴于高質量的中文知識,一方面增強了模型對于中文知識的掌握程度,另一方面提升了模型對于新增中文詞表中單詞的理解。
- 相關知識回放階段:該階段致力于增強模型對于知識的理解與泛化能力,緩解災難性遺忘問題。
多階段相輔相成,最終保證模型在中英文的能力上齊頭并進。
分桶訓練
增量預訓練對于數據的分布極為敏感,均衡性就尤為重要。因此,為了保證數據的均衡分布,Colossal-AI 團隊設計了數據分桶的策略,將同一類型的數據劃分為 10 個不同的 bins。在訓練的過程中,每個數據桶中均勻的包含每種類型數據的一個 bin,從而確保了每種數據可以均勻的被模型所利用。
評估體系
為了更好的評估模型的性能,Colossal-AI 團隊搭建了完整的評估體系 - ColossalEval,希望通過多維度對大語言模型進行評估。流程框架代碼完全開源,不僅支持結果復現,也支持用戶根據自己不同的應用場景自定義數據集與評估方式。評估框架特點總結如下:
- 涵蓋針對于大語言模型知識儲備能力評估的常見數據集如 MMLU,CMMLU 等。針對于單選題這樣的形式,除了常見的比較 ABCD 概率高低的計算方式,增加更為全面的計算方式,如絕對匹配,單選困惑度等,以求更加全面的衡量模型對于知識的掌握程度。
- 支持針對多選題的評估和長文本評估。
- 支持針對于不同應用場景的評估方式,如多輪對話,角色扮演,信息抽取,內容生成等。用戶可根據自己的需求,有選擇性的評估模型不同方面的能力,并支持自定義 prompt 與評估方式的擴展。
構建通用大模型到垂類大模型遷移的橋梁
由 Colossal-AI 團隊的經驗來看,基于 LLaMA-2 構建中文版模型,可基本分為以下流程:
那么這套方案是否可以復用呢?
答案是肯定的,并且在業務落地的場景中是非常有意義的。
隨著 ChatGPT 掀起的人工智能浪潮,全球各大互聯網巨頭、AI 公司、創企、高校和研究機構等,紛紛在通用大模型的賽道上策馬狂奔。然而,通用大模型通用能力的背后往往是針對特定領域內知識的不足,因此,在實際落地上,大模型幻覺的問題就變的尤為嚴重。針對業務微調固然可以有一定的收獲,但垂類大模型的缺失導致應用落地存在性能瓶頸。如果可以快速低成本構造一個垂類大模型,再基于垂類大模型進行業務微調,一定能在業務落地上更進一步,占得先機與優勢。
將以上流程應用在任意領域進行知識遷移,即可低成本構建任意領域垂類基座大模型的輕量化流程:
對于從頭預訓練構建基礎大模型,也可借鑒上述經驗與 Colossal-AI 降本增效能力,以最低成本高效完成。
系統優化
上述 Colossal-LLaMA-2 的亮眼表現和成本優勢,構建在低成本 AI 大模型開發系統 Colossal-AI 之上。
Colossal-AI 基于 PyTorch,可通過高效多維并行、異構內存等,降低 AI 大模型訓練 / 微調 / 推理的開發與應用成本,提升模型任務表現,降低 GPU 需求等。僅一年多時間便已在 GitHub 開源社區收獲 GitHub Star 3 萬多顆,在大模型開發工具與社區細分賽道排名世界第一,已與世界 500 強在內的多家知名廠商聯合開發 / 優化千億 / 百億參數預訓練大模型或打造垂類模型。
Colossal-AI 云平臺
為了進一步提高 AI 大模型開發和部署效率,Colossal-AI 已進一步升級為 Colossal-AI 云平臺,以低代碼 / 無代碼的方式供用戶在云端低成本進行大模型訓練、微調和部署,快速將各種模型接入到個性化的應用中。
目前 Colossal-AI 云平臺上已經預置了 Stable diffusion, LLaMA-2 等主流模型及解決方案,用戶只需上傳自己的數據即可進行微調,同時也可以把自己微調之后的模型部署成為 API,以實惠的價格使用 A10, A800, H800 等 GPU 資源,無需自己維護算力集群以及各類基礎設施。更多應用場景、不同領域、不同版本的模型、企業私有化平臺部署等正不斷迭代。
ColossalAI 云平臺現已開啟公測,注冊即可獲得代金券,歡迎參與并提出反饋。
- Colossal-AI 云平臺:platform.luchentech.com
- Colossal-AI 云平臺文檔:https://docs.platform.colossalai.com/
- Colossal-AI 開源地址:https://github.com/hpcaitech/ColossalAI