清華第二代60億參數(shù)ChatGLM2開(kāi)源!中文榜居首,碾壓GPT-4,推理提速42%
ChatGLM-6B自3月發(fā)布以來(lái),在A(yíng)I社區(qū)爆火,GitHub上已斬獲29.8k星。
如今,第二代ChatGLM來(lái)了!
清華KEG和數(shù)據(jù)挖掘小組(THUDM)發(fā)布了中英雙語(yǔ)對(duì)話(huà)模型ChatGLM2-6B。
圖片
項(xiàng)目地址:https://github.com/THUDM/ChatGLM2-6B
HuggingFace:https://huggingface.co/THUDM/chatglm2-6b
最新版本ChatGLM2-6B增加了許多特性:
- 基座模型升級(jí),性能更強(qiáng)大
- 支持8K-32k的上下文
- 推理性能提升了42%
- 對(duì)學(xué)術(shù)研究完全開(kāi)放,允許申請(qǐng)商用授權(quán)
值得一提的是,在中文C-Eval榜單中,ChatGLM2以71.1分位居榜首,碾壓GPT-4。而最新版本ChatGLM2-6B以51.7分位列第6。
圖片
ChatGLM2-6B升級(jí)亮點(diǎn)
ChatGLM-6B的第二代版本,在保留了初代模型對(duì)話(huà)流暢、部署門(mén)檻較低等眾多優(yōu)秀特性的基礎(chǔ)之上,又增加許多新特性:
1. 更強(qiáng)大的性能
基于ChatGLM初代模型的開(kāi)發(fā)經(jīng)驗(yàn),全面升級(jí)了ChatGLM2-6B的基座模型。
ChatGLM2-6B使用了GLM的混合目標(biāo)函數(shù),經(jīng)過(guò)了1.4T中英標(biāo)識(shí)符的預(yù)訓(xùn)練與人類(lèi)偏好對(duì)齊訓(xùn)練.
評(píng)測(cè)結(jié)果顯示,與初代模型相比,ChatGLM2-6B在MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等數(shù)據(jù)集上的性能取得了大幅度的提升,在同尺寸開(kāi)源模型中具有較強(qiáng)的競(jìng)爭(zhēng)力。
2. 更長(zhǎng)的上下文
基于 FlashAttention 技術(shù),研究人員將基座模型的上下文長(zhǎng)度由 ChatGLM-6B 的2K擴(kuò)展到了32K,并在對(duì)話(huà)階段使用8K的上下文長(zhǎng)度訓(xùn)練,允許更多輪次的對(duì)話(huà)。
但當(dāng)前版本的ChatGLM2-6B對(duì)單輪超長(zhǎng)文檔的理解能力有限,會(huì)在后續(xù)迭代升級(jí)中著重進(jìn)行優(yōu)化。
3. 更高效的推理
基于 Multi-Query Attention 技術(shù),ChatGLM2-6B有更高效的推理速度和更低的顯存占用.
在官方的模型實(shí)現(xiàn)下,推理速度相比初代提升了42%,INT4量化下,6G顯存支持的對(duì)話(huà)長(zhǎng)度由1K提升到了8K。
4. 更開(kāi)放的協(xié)議
ChatGLM2-6B權(quán)重對(duì)學(xué)術(shù)研究完全開(kāi)放,在獲得官方的書(shū)面許可后,亦允許商業(yè)使用。
效果
相比于初代模型,ChatGLM2-6B在多個(gè)維度的能力上,都取得了巨大的提升。
數(shù)理邏輯
圖片
圖片
知識(shí)推理
圖片
圖片
長(zhǎng)文檔理解
圖片
圖片
評(píng)測(cè)結(jié)果
研究團(tuán)隊(duì)選取了部分中英文典型數(shù)據(jù)集進(jìn)行了評(píng)測(cè),以下為ChatGLM2-6B模型在MMLU(英文)、C-Eval(中文)、GSM8K(數(shù)學(xué))、BBH(英文) 上的測(cè)評(píng)結(jié)果。
MMLU
圖片
C-Eval
圖片
GSM8K
圖片
BBH
推理性能
ChatGLM2-6B使用 Multi-Query Attention,提高了生成速度。生成2000個(gè)字符的平均速度對(duì)比如下:
Multi-Query Attention同時(shí)也降低了生成過(guò)程中KV Cache的顯存占用。
此外,ChatGLM2-6B采用Causal Mask進(jìn)行對(duì)話(huà)訓(xùn)練,連續(xù)對(duì)話(huà)時(shí)可復(fù)用前面輪次的 KV Cache,進(jìn)一步優(yōu)化了顯存占用。
因此,使用6GB顯存的顯卡進(jìn)行INT4量化的推理時(shí),初代的ChatGLM-6B模型最多能夠生成1119個(gè)字符就會(huì)提示顯存耗盡,而ChatGLM2-6B能夠生成至少8192個(gè)字符。
圖片
研究團(tuán)隊(duì)也測(cè)試了量化對(duì)模型性能的影響。結(jié)果表明,量化對(duì)模型性能的影響在可接受范圍內(nèi)。
圖片
使用方法
環(huán)境安裝
首先需要下載本倉(cāng)庫(kù):
git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
然后使用pip安裝依賴(lài):pip install -r requirements.txt,其中transformers庫(kù)版本推薦為4.30.2,torch推薦使用 2.0 以上的版本,以獲得最佳的推理性能。
代碼調(diào)用
可以通過(guò)如下代碼調(diào)用ChatGLM2-6B模型來(lái)生成對(duì)話(huà):
>>> from transformers import AutoTokenizer, AutoModel>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好??!我是人工智能助手 ChatGLM2-6B,很高興見(jiàn)到你,歡迎問(wèn)我任何問(wèn)題。
>>> response, history = model.chat(tokenizer, "晚上睡不著應(yīng)該怎么辦", history=history)
>>> print(response)
晚上睡不著可能會(huì)讓你感到焦慮或不舒服,但以下是一些可以幫助你入睡的方法:
1. 制定規(guī)律的睡眠時(shí)間表:保持規(guī)律的睡眠時(shí)間表可以幫助你建立健康的睡眠習(xí)慣,使你更容易入睡。盡量在每天的相同時(shí)間上床,并在同一時(shí)間起床。
2. 創(chuàng)造一個(gè)舒適的睡眠環(huán)境:確保睡眠環(huán)境舒適,安靜,黑暗且溫度適宜??梢允褂檬孢m的床上用品,并保持房間通風(fēng)。
3. 放松身心:在睡前做些放松的活動(dòng),例如泡個(gè)熱水澡,聽(tīng)些輕柔的音樂(lè),閱讀一些有趣的書(shū)籍等,有助于緩解緊張和焦慮,使你更容易入睡。
4. 避免飲用含有咖啡因的飲料:咖啡因是一種刺激性物質(zhì),會(huì)影響你的睡眠質(zhì)量。盡量避免在睡前飲用含有咖啡因的飲料,例如咖啡,茶和可樂(lè)。
5. 避免在床上做與睡眠無(wú)關(guān)的事情:在床上做些與睡眠無(wú)關(guān)的事情,例如看電影,玩游戲或工作等,可能會(huì)干擾你的睡眠。
6. 嘗試呼吸技巧:深呼吸是一種放松技巧,可以幫助你緩解緊張和焦慮,使你更容易入睡。試著慢慢吸氣,保持幾秒鐘,然后緩慢呼氣。
如果這些方法無(wú)法幫助你入睡,你可以考慮咨詢(xún)醫(yī)生或睡眠專(zhuān)家,尋求進(jìn)一步的建議。
在從Hugging Face Hub下載模型之前,需要先安裝Git LFS,然后運(yùn)行:
git clone https://huggingface.co/THUDM/chatglm2-6b
如果checkpoint的下載速度較慢,可以只下載模型實(shí)現(xiàn):
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b
然后,手動(dòng)下載模型參數(shù)文件,并將文件替換到本地的chatglm2-6b目錄下。
地址:https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/
模型下載到本地之后,將以上代碼中的THUDM/chatglm2-6b替換為本地的chatglm2-6b文件夾的路徑,即可從本地加載模型。