明敏 發自 凹非寺
馬斯克說到做到開源Grok-1,開源社區一片狂喜。
但基於Grok-1做改動or商用,都還有點難題:
Grok-1使用Rust+JAX構建,對於習慣Python+PyTorch+HuggingFace等主流軟體生態的使用者上手門檻高。
△圖注:Grok登上GitHub熱度榜世界第一
Colossal-AI團隊最新成果,解大家燃眉之急,提供方便易用的Python+PyTorch+HuggingFace Grok-1,能將推理時延加速近4倍!
現在,模型已在HuggingFace、ModelScope上發佈。
HuggingFace下載連結:
https://huggingface.co/hpcai-tech/grok-1
ModelScope下載連結:
https://www.modelscope.cn/models/colossalai/grok-1-pytorch/summary
性能最佳化
結合Colossal-AI在AI大模型系統最佳化領域的豐富積累,已迅速支持對Grok-1的張量並行。
在單臺8H800 80GB伺服器上,推理性能相比JAX、HuggingFace的auto device map等方法,推理時延加速近4倍。
使用教程
下載安裝Colossal-AI後,啟動推理腳本即可。
./run_inference_fast.sh hpcaitech/grok-1
模型權重將會被自動下載和載入,推理結果也能保持對齊。如下圖中Grok-1 greedy search的運行測試。
更多詳情可參考grok-1使用例:
https://github.com/hpcaitech/ColossalAI/tree/main/examples/language/grok-1
龐然大物Grok-1
此次開源,xAI發佈了Grok-1的基本模型權重和網路架構。
具體來說是2023年10月預訓練階段的原始基礎模型,沒有針對任何特定應用(例如對話)進行微調。
結構上,Grok-1採用了混合專家(MoE)架構,包含8個專家,總參數量為314B(3140億),處理Token時,其中的兩個專家會被激活,激活參數量為86B。
單看這激活的參數量,就已經超過了密集模型Llama 2的70B,對於MoE架構來說,這樣的參數量稱之為龐然大物也毫不為過。
更多參數資訊如下:
-
窗口長度為8192tokens,精度為bf16
-
Tokenizer vocab大小為131072(2^17),與GPT-4接近;
-
embedding大小為6144(48×128);
-
Transformer層數為64,每層都有一個解碼器層,包含多頭注意力塊和密集塊;
-
key value大小為128;
-
多頭注意力塊中,有48 個頭用於查詢,8 個用於KV,KV 大小為 128;
-
密集塊(密集前饋塊)擴展因子為8,隱藏層大小為32768
在GitHub頁面中,官方提示,由於模型規模較大(314B參數),需要有足夠GPU和記憶體的機器才能運行Grok。
這裡MoE層的實現效率並不高,選擇這種實現方式是為了避免驗證模型的正確性時需要自定義核心。
模型的權重檔案則是以磁力連結的形式提供,檔案大小接近300GB。
值得一提的是,Grok-1採用的是Apache 2.0 license,商用友好。
目前Grok-1在GitHub上的標星已達到43.9k Stars。
量子位了解,Colossal-AI將在近期進一步推出對Grok-1在並行加速、量化降低視訊記憶體成本等最佳化,歡迎持續關注。
Colossal-AI開源地址:
https://github.com/hpcaitech/ColossalAI