ChatGLM-6B開源雙語對話語言模型
ChatGLM-6B 是一個(gè)開源的、支持中英雙語的對話語言模型,基于 General Language Model (GLM) 架構(gòu),具有 62 億參數(shù)。結(jié)合模型量化技術(shù),用戶可以在消費(fèi)級的顯卡上進(jìn)行本地部署(INT4 量化級別下最低只需 6GB 顯存)。
ChatGLM-6B 使用了和 ChatGPT 相似的技術(shù),針對中文問答和對話進(jìn)行了優(yōu)化。經(jīng)過約 1T 標(biāo)識符的中英雙語訓(xùn)練,輔以監(jiān)督微調(diào)、反饋?zhàn)灾⑷祟惙答亸?qiáng)化學(xué)習(xí)等技術(shù)的加持,62 億參數(shù)的 ChatGLM-6B 已經(jīng)能生成相當(dāng)符合人類偏好的回答。
硬件需求
| 量化等級 | 最低 GPU 顯存 |
|---|---|
| FP16(無量化) | 13 GB |
| INT8 | 10 GB |
| INT4 | 6 GB |
使用方式
環(huán)境安裝
使用 pip 安裝依賴:pip install -r requirements.txt,其中transformers庫版本推薦為4.26.1,但理論上不低于4.23.1即可。
代碼調(diào)用
可以通過如下代碼調(diào)用 ChatGLM-6B 模型來生成對話:
>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好??!我是人工智能助手 ChatGLM-6B,很高興見到你,歡迎問我任何問題。
>>> response, history = model.chat(tokenizer, "晚上睡不著應(yīng)該怎么辦", history=history)
>>> print(response)
晚上睡不著可能會讓你感到焦慮或不舒服,但以下是一些可以幫助你入睡的方法:
1. 制定規(guī)律的睡眠時(shí)間表:保持規(guī)律的睡眠時(shí)間表可以幫助你建立健康的睡眠習(xí)慣,使你更容易入睡。盡量在每天的相同時(shí)間上床,并在同一時(shí)間起床。
2. 創(chuàng)造一個(gè)舒適的睡眠環(huán)境:確保睡眠環(huán)境舒適,安靜,黑暗且溫度適宜。可以使用舒適的床上用品,并保持房間通風(fēng)。
3. 放松身心:在睡前做些放松的活動,例如泡個(gè)熱水澡,聽些輕柔的音樂,閱讀一些有趣的書籍等,有助于緩解緊張和焦慮,使你更容易入睡。
4. 避免飲用含有咖啡因的飲料:咖啡因是一種刺激性物質(zhì),會影響你的睡眠質(zhì)量。盡量避免在睡前飲用含有咖啡因的飲料,例如咖啡,茶和可樂。
5. 避免在床上做與睡眠無關(guān)的事情:在床上做些與睡眠無關(guān)的事情,例如看電影,玩游戲或工作等,可能會干擾你的睡眠。
6. 嘗試呼吸技巧:深呼吸是一種放松技巧,可以幫助你緩解緊張和焦慮,使你更容易入睡。試著慢慢吸氣,保持幾秒鐘,然后緩慢呼氣。
如果這些方法無法幫助你入睡,你可以考慮咨詢醫(yī)生或睡眠專家,尋求進(jìn)一步的建議。
完整的模型實(shí)現(xiàn)可以在HuggingFace Hub上查看。
Demo
提供了一個(gè)基于Gradio的網(wǎng)頁版 Demo 和一個(gè)命令行 Demo。使用時(shí)首先需要下載本倉庫:
git clone https://github.com/THUDM/ChatGLM-6B
cd ChatGLM-6B
網(wǎng)頁版 Demo
首先安裝 Gradio:pip install gradio,然后運(yùn)行倉庫中的 web_demo.py:
python web_demo.py
程序會運(yùn)行一個(gè) Web Server,并輸出地址。在瀏覽器中打開輸出的地址即可使用。
命令行 Demo
運(yùn)行倉庫中 cli_demo.py:
python cli_demo.py
程序會在命令行中進(jìn)行交互式的對話,在命令行中輸入指示并回車即可生成回復(fù),輸入clear可以清空對話歷史,輸入stop終止程序。
