700 億參數 LLaMA2 訓練加速 195%,基礎大模型最佳實踐再升級
ChatGPT 引發的大模型熱潮愈演愈烈,全球科技巨頭和明星初創爭相入局,打造以 AI 大模型為核心的競爭力和多樣化商業使用需求。其中 LLaMA 系列模型,因良好的基礎能力和開放生態,已積累了海量的用戶和實際應用案例,成為無數開源模型后來者的模仿和競爭的標桿對象。
但如何降低類 LLaMA2 大模型預訓練成本,如何基于 LLaMA2 通過繼續預訓練和微調,低成本構建 AI 大模型實際應用,仍是 AIGC 相關企業面臨的關鍵瓶頸。
作為全球規模最大、最活躍的大模型開發工具與社區,Colossal-AI 再次迭代,提供開箱即用的 8 到 512 卡 LLaMA2 訓練、微調、推理方案,對 700 億參數訓練加速 195%,并提供一站式云平臺解決方案,極大降低大模型開發和落地應用成本。
開源地址:https://github.com/hpcaitech/ColossalAI
LLaMA2 訓練加速 195%
Meta 開源的 LLaMA 系列大模型進一步激發了打造類 ChatGPT 的熱情,并由此衍生出了諸多項目和應用。
最新的 7B~70B LLaMA2 大模型,則進一步提高了語言模型的基礎能力。但由于 LLaMA2 的預訓練預料大部分來自英文通用知識,而僅用微調能夠提升和注入的領域知識和多語言能力也相對有限。此外,高質量的專業知識和數據集通常被視為各個行業和公司的核心資產,僅能以私有化形式保存。因此,以低成本預訓練 / 繼續預訓練 / 微調 LLaMA2 系列大模型,結合高質量私有化業務數據積累,幫助業務降本增效是眾多行業與企業的迫切需求與瓶頸。但 LLaMA2 大模型僅發布了原始模型權重與推理腳本,不支持訓練 / 微調,也未提供數據集。
針對上述空白與需求,Colossal-AI 開源了針對 LLaMA2 的全流程方案,并具備高可擴展性,支持從 70 億到 700 億參數的模型,從 8 卡到 512 卡都可保持良好的性能。
在使用 8 卡訓練 / 微調 LLaMA2-7B 時,Colossal-AI 能達到約 54% 的硬件利用率(MFU),處于業界領先水平。而對于預訓練任務,以使用 512 張 A100 40GB 預訓練 LLaMA2-70B 為例,DeepSpeed ZeRO3 策略因顯存不足而無法啟動,僅能通過速度衰減較大的 ZeRO3-offload 策略啟動。而 Colossal-AI 則因卓越的系統優化和擴展性,仍能保持良好性能,訓練提速 195%。
Colossal-AI LLaMA-2 訓練 / 微調方案的高性能來源于新的異構內存管理系統 Gemini 和高性能算子(包括 Flash attention 2)等系統優化。新 Gemini 提供了高可擴展性,高魯棒性,高易用性的接口。其 Checkpoint 格式與 HuggingFace 完全兼容,減小了使用和轉換成本。其對于切分、offload 等的設置更加靈活且易用,能夠覆蓋更多硬件配置下的 LLaMA-2 訓練 / 微調任務。僅需數行代碼即可使用:
from colossalai.booster import Booster
from colossalai.booster.plugin import GeminiPlugin
plugin = GeminiPlugin ()
booster = Booster (plugin=plugin)
model, optimizer, train_dataloader, criterion = booster.boost (model, optimizer, train_dataloader, criterion)
ShardFormer 多維細粒度并行
雖然對于主流硬件條件和大多數模型,Colossal-AI 的新 Gemini 已經能夠提供良好的性能。但是對于一些極端硬件條件,或者是特殊模型,可能仍然需要多維并行的細粒度優化。現有其他方案通常需要分布式系統資深專家,手動對代碼進行大規模重構和調優,Colossal-AI 的 ShardFormer 提供了開箱即用的多維并行和算子優化的能力,僅需數行代碼即可使用,在單機 / 大規模集群上都能提供良好的性能。
from colossalai.booster import Booster
from colossalai.booster.plugin import HybridParallelPlugin
from transformers.models.llama import LlamaForCausalLM, LlamaConfig
plugin = HybridParallelPlugin (tp_size=2, pp_size=2, num_microbatches=4, zero_stage=1)
booster = Booster (plugin=plugin)
model = LlamaForCausalLM (LlamaConfig ())
model, optimizer, train_dataloader, criterion = booster.boost (model, optimizer, train_dataloader, criterion)
Colossal-AI ShardFormer 支持包括 LLaMA1/2、BLOOM、OPT、T5、GPT-2、BERT、GLM 在內的主流開源模型,也可以直接使用 Huggingface/transformers 模型導入,Checkpoint 格式也與 HuggingFace 完全兼容,對比 Megatron-LM 等需重寫大量代碼的方案,大大提升了易用性。
對于并行策略,已支持以下多種并行方式:張量并行、流水線并行、序列并行、數據并行、Zero 數據并行等,并可將多種并行方式組合使用,只需通過簡單的配置命令,即可適配各種復雜的硬件環境 / 模型。同時,其內置了各種高性能算子,免去了繁瑣的兼容 / 配置過程。其中包括:
- Flash attention 2
- Memory efficient attention (xformers)
- Fused Normalization Layer
- JIT kernels
云平臺大模型一站式解決
為了進一步提升開發和部署效率,Colossal-AI 團隊還將上述系統優勢與算力結合,提供 Colossal-AI 云平臺,提供廉價算力和開箱即用的 AI 主流應用,包括對話大模型,多模態模型,生物醫藥等,現已開啟內測。
通過屏蔽大模型底層的分布式并行計算、內存、通信管理與優化等,AI 開發者可以繼續專注于 AI 模型與算法設計,以更低成本更快速度完成 AI 大模型助力業務降本增效。
用戶只需要上傳相關數據,即可無代碼訓練個性化私有模型,并將訓練好的模型一鍵部署。相關的應用都經過 Colossal-AI 團隊精心優化,得益于算法和系統的雙面優化,能大大降低模型訓練以及部署的成本。
- Colossal-AI 云平臺:platform.luchentech.com
- Colossal-AI 開源地址:https://github.com/hpcaitech/ColossalAI