650億參數(shù)大模型預(yù)訓(xùn)練方案開源可商用!LLaMA訓(xùn)練加速38%,來自明星開源項(xiàng)目
650億參數(shù)大模型的預(yù)訓(xùn)練方案,發(fā)布即開源。
訓(xùn)練速度較傳統(tǒng)方案提升38%。
這就是由Colossal-AI最新發(fā)布的類LLaMA基礎(chǔ)大模型預(yù)訓(xùn)練方案。
要知道,在“百模大戰(zhàn)”背景下,誰擁有自家大模型,往往被視為核心競爭力。
在這個(gè)節(jié)點(diǎn)下,愿意開源大模型的公司少之又少。
但自己從頭訓(xùn)練一個(gè)大模型,對技術(shù)、資金都有很高要求。
由此,Colossal-AI最新的開源動(dòng)作,可以說是應(yīng)時(shí)勢所需了。
并且它還不限制商業(yè)使用,開箱即用僅需4步。
具體項(xiàng)目有哪些內(nèi)容?一起往下看~
開源地址:https://github.com/hpcaitech/ColossalAI
32張A100/A800即可使用
實(shí)際上,自從Meta開源LLaMA后,掀起了一波微調(diào)項(xiàng)目熱潮,如Alpaca、Vicuna、ColossalChat等都是在其基礎(chǔ)上打造的。
但是LLaMA只開源了模型權(quán)重且限制商業(yè)使用,微調(diào)能夠提升和注入的知識(shí)與能力也相對有限。
對于真正想要投身大模型浪潮的企業(yè)來說,訓(xùn)練自己的核心大模型非常重要。
開源社區(qū)也此前已獻(xiàn)了一系列工作:
- RedPajama:開源可商用類LLaMA數(shù)據(jù)集(無訓(xùn)練代碼和模型)
- OpenLLaMA:開源可商用類LLaMA 7B/13B模型,使用EasyLM基于JAX和TPU訓(xùn)練
- Falcon:開源可商用類LLaMA 7B/40B模型(無訓(xùn)練代碼)
但這些都還不夠,因?yàn)閷τ谧钪髁鞯腜yTorch+GPU生態(tài),仍缺乏高效、可靠、易用的類LLaMA基礎(chǔ)大模型預(yù)訓(xùn)練方案。
所以Colossal-AI交出了最新的開源答卷。
僅需32張A100/A800,即可搞定650億參數(shù)類LLaMA大模型預(yù)訓(xùn)練,訓(xùn)練速度提升38%。
而像原生PyTorch、FSDP等,則因顯存溢出無法運(yùn)行該任務(wù)。
Hugging Face accelerate、DeepSpeed、Megatron-LM也未對LLaMA預(yù)訓(xùn)練進(jìn)行官方支持。
開箱即用、4步搞定
而這一項(xiàng)目真正上手起來也很簡易。共有四步:
- 1、安裝Colossal-AI
- 2、安裝其他依賴項(xiàng)
- 3、數(shù)據(jù)集
- 4、運(yùn)行命令
具體代碼如下:
第一步、安裝Colossal-AI。
git clone -b example/llama https://github.com/hpcaitech/ColossalAI.git
cd ColossalAI
# install and enable CUDA kernel fusion
CUDA_EXT=1 pip install .
第二步、安裝其他依賴項(xiàng)。
cd examples/language/llama
# install other dependencies
pip install -r requirements.txt
# use flash attention
pip install xformers
第三步、數(shù)據(jù)集。
默認(rèn)數(shù)據(jù)集togethercomputer/RedPajama-Data-1T-Sample將在首次運(yùn)行時(shí)自動(dòng)下載,也可通過-d或—dataset指定自定義數(shù)據(jù)集。
第四步、運(yùn)行命令。
已提供7B和65B的測速腳本,僅需根據(jù)實(shí)際硬件環(huán)境設(shè)置所用多節(jié)點(diǎn)的host name即可運(yùn)行性能測試。
cd benchmark_65B/gemini_auto
bash batch12_seq2048_flash_attn.sh
對于實(shí)際的預(yù)訓(xùn)練任務(wù),使用與速度測試一致,啟動(dòng)相應(yīng)命令即可,如使用4節(jié)點(diǎn)*8卡訓(xùn)練65B的模型。
colossalai run --nproc_per_node 8 --hostfile YOUR_HOST_FILE --master_addr YOUR_MASTER_ADDR pretrain.py -c '65b' --plugin "gemini" -l 2048 -g -b 8 -a
如果使用Colossal-AI gemini_auto并行策略,可便捷實(shí)現(xiàn)多機(jī)多卡并行訓(xùn)練,降低顯存消耗的同時(shí)保持高速訓(xùn)練。
還可根據(jù)硬件環(huán)境或?qū)嶋H需求,選擇流水并行+張量并行+ZeRO1等復(fù)雜并行策略組合。
其中,通過Colossal-AI的Booster Plugins,用戶可以便捷自定義并行訓(xùn)練,如選擇Low Level ZeRO、Gemini、DDP等并行策略。
Gradient checkpointing通過在反向傳播時(shí)重新計(jì)算模型的activation來減少內(nèi)存使用。
通過引入Flash attention機(jī)制加速計(jì)算并節(jié)省顯存。用戶可以通過命令行參數(shù)便捷控制數(shù)十個(gè)類似的自定義參數(shù),在保持高性能的同時(shí)為自定義開發(fā)保持了靈活性。
Colossal-AI最新的ShardFormer極大降低了使用多維并行訓(xùn)練LLM的上手成本。
現(xiàn)已支持包括LLaMA的多種等主流模型,且原生支持Huggingface/transformers模型庫。
無需改造模型,即可支持多維并行(流水、張量、ZeRO、DDP等)的各種配置組合,能夠在各種硬件配置上都發(fā)揮卓越的性能。
Colossal-AI:大模型系統(tǒng)基礎(chǔ)設(shè)施
帶來如上新工作的Colossal-AI,如今已是大模型趨勢下的明星開發(fā)工具和社區(qū)了。
Colossal-AI上述解決方案已在某世界500強(qiáng)落地應(yīng)用,在千卡集群性能優(yōu)異,僅需數(shù)周即可完成千億參數(shù)私有大模型預(yù)訓(xùn)練。
上海AI Lab與商湯等新近發(fā)布的InternLM也基于Colossal-AI在千卡實(shí)現(xiàn)高效預(yù)訓(xùn)練。
自開源以來,Colossal-AI多次在GitHub熱榜位列世界第一,獲得 GitHub Star超3萬顆,并成功入選SC、AAAI、PPoPP、CVPR、ISC等國際 AI 與HPC頂級(jí)會(huì)議的官方教程,已有上百家企業(yè)參與共建Colossal-AI生態(tài)。
它由加州伯克利大學(xué)杰出教授 James Demmel 和新加坡國立大學(xué)校長青年教授尤洋領(lǐng)導(dǎo)開發(fā)。
Colossal-AI基于PyTorch,可通過高效多維并行、異構(gòu)內(nèi)存等,主打?yàn)锳I大模型訓(xùn)練/微調(diào)/推理的開發(fā)與應(yīng)用成本,降低GPU需求等。
其背后公司潞晨科技,近期獲得數(shù)億元A輪融資,已在成立18個(gè)月內(nèi)已迅速連續(xù)完成三輪融資。
開源地址:https://github.com/hpcaitech/ColossalAI。
參考鏈接:https://www.hpc-ai.tech/blog/large-model-pretraining。