文章目錄[隱藏]
ChatGLM-6B介紹
ChatGLM-6B 是一個(ge) 開源的、支持中英雙語問答的對話語言模型,基於(yu) General Language Model (GLM)架構,具有 62 億(yi) 參數。
https://huggingface.co/THUDM/chatglm-6b
ChatGLM-6B 使用了和 ChatGLM 相同的技術,針對中文問答和對話進行了優(you) 化。 經過約 1T 標識符的中英雙語訓練,輔以監督微調、反饋自助、人類反饋強化學習(xi) 等技術的加持,62 億(yi) 參數的 ChatGLM-6B 已經能生成相當符合人類偏好的回答。
量化等級 | 最低 GPU 顯存(推理) | 最低 GPU 顯存(高效參數微調) |
---|---|---|
FP16(無量化) | 13 GB | 14 GB |
INT8 | 8 GB | 9 GB |
INT4 | 6 GB | 7 GB |
ChatGLM-6B-INT8
https://huggingface.co/THUDM/chatglm-6b-int8
對 ChatGLM-6B 中的 28 個(ge) GLM Block 進行了 INT8 量化,沒有對 Embedding 和 LM Head 進行量化。
量化後的模型理論上 8G 顯存(使用 CPU 即內(nei) 存)即可推理,具有在嵌入式設備(如樹莓派)上運行的可能。
ChatGLM-6B-INT4
https://huggingface.co/THUDM/chatglm-6b-int4
對 ChatGLM-6B 中的 28 個(ge) GLM Block 進行了 INT4 量化,沒有對 Embedding 和 LM Head 進行量化。
量化後的模型理論上 6G 顯存(使用 CPU 即內(nei) 存)即可推理,具有在嵌入式設備(如樹莓派)上運行的可能。
ChatGLM-6B基礎使用
ChatGLM-6B已經托管在huggingface,可以直接通過hg進行調用:
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) # 第二次對話 response, history = model.chat(tokenizer, "晚上睡不著應該怎麽(me) 辦", history=history) print(response)
在使用的過程中,response為(wei) 當前對話的返回結果,history為(wei) 累計對話的曆史信息。
ChatGLM-6B 使用示例
自我認知
提綱寫作
文案寫作
郵件寫作助手
信息抽取
角色扮演
評論比較
旅遊向導
ChatGLM-6B 局限性
由於(yu) ChatGLM-6B 的小規模,其能力仍然有許多局限性。以下是我們(men) 目前發現的一些問題:
-
模型容量較小:6B 的小容量,決(jue) 定了其相對較弱的模型記憶和語言能力。在麵對許多事實性知識任務時,ChatGLM-6B 可能會(hui) 生成不正確的信息;它也不擅長邏輯類問題(如數學、編程)的解答。
-
產(chan) 生有害說明或有偏見的內(nei) 容:ChatGLM-6B 隻是一個(ge) 初步與(yu) 人類意圖對齊的語言模型,可能會(hui) 生成有害、有偏見的內(nei) 容。(內(nei) 容可能具有冒犯性,此處不展示)
-
英文能力不足:ChatGLM-6B 訓練時使用的指示/回答大部分都是中文的,僅(jin) 有極小一部分英文內(nei) 容。因此,如果輸入英文指示,回複的質量遠不如中文,甚至與(yu) 中文指示下的內(nei) 容矛盾,並且出現中英夾雜的情況。
-
易被誤導,對話能力較弱:ChatGLM-6B 對話能力還比較弱,而且 “自我認知” 存在問題,並很容易被誤導並產(chan) 生錯誤的言論。例如當前版本的模型在被誤導的情況下,會(hui) 在自我認知上發生問題。
評論已經被關(guan) 閉。