ChatGLM3模型介紹
ChatGLM3-6B 是 ChatGLM 系列最新一代的開源模型,在保留了前兩代模型對話流暢、部署門檻低等眾多優秀特性的基礎上,ChatGLM3-6B 引入了如下特性:
- 更強大的基礎模型:?ChatGLM3-6B 的基礎模型 ChatGLM3-6B-Base 采用了更多樣的訓練數據、更充分的訓練步數和更合理的訓練策略。在語義、數學、推理、代碼、知識等不同角度的數據集上測評顯示,ChatGLM3-6B-Base 具有在 10B 以下的預訓練模型中最強的性能。
- 更完整的功能支持:?ChatGLM3-6B 采用了全新設計的?Prompt 格式,除正常的多輪對話外。同時原生支持工具調用(Function Call)、代碼執行(Code Interpreter)和 Agent 任務等復雜場景。
- 更全面的開源序列:?除了對話模型 ChatGLM3-6B 外,還開源了基礎模型 ChatGLM-6B-Base、長文本對話模型 ChatGLM3-6B-32K。以上所有權重對學術研究完全開放,在填寫問卷進行登記后亦允許免費商業使用。
本地部署ChatGLM3模型
使用chatglm.cpp部署模型
下載chatglm.cpp
git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp
編譯chatglm.cpp
cmake -B build
cmake --build build -j 16 --config Release
下載chatglm3-6b模型文件
當前chatglm3是開源的最高版本。我們可以選擇從huggingface或openi下載模型
從huggingface下載
安裝huggingface:
pip install -U huggingface_hub
下載模型
創建models目錄,到目錄里下載chatglm3-6b模型到chatglm3目錄里。命令:
huggingface-cli download --resume-download THUDM/chatglm3-6b --local-dir chatglm3
使用openi下載模型
首先安裝庫:pip install openi?
然后登錄賬戶:?
openi login
按照提示輸入token 。token可以從openi官網應用欄目創建。?Sign In - OpenI - 啟智AI開源社區提供普惠算力!
登錄之后,就可以使用openi命令下載模型了?
openi model download -r Zhipu.AI/ChatGLM3 -m chatglm3-6b -p chatglm3-6b
轉換模型文件到ggml
先安裝需要的庫
python3 -m pip install -U pip
python3 -m pip install tabulate tqdm transformers accelerate sentencepiece
# pip install sentencepiece
轉換模型還需要安裝torch,這個可以到官網獲取安裝命令,這里就不具體說明了。
?開始轉換:
# cd chatglm.cpp
python3 chatglm_cpp/convert.py -i ~/models/chatglm3-6b -t q4_0 -o ~/models/chatglm3-6b/chatglm3-ggml.bin
?部署完成的測試
執行下面命令:
./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -p 你好,最好的大模型是哪一款?
看這個回答,情商不錯啊
./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -p 你好,最好的大模型是哪一 款?您好!關于“最好的大模型”,這其實是一個因應用場景而異的問題。在不同的領域和任務中,最適合的大模型可能有所不同。在自然語言處理領域,清華大學 KEG 實驗室和智譜 AI 共同訓練的 GLM3-6B 模型在許多 NLP 任務中表現優秀。在計算機視覺領域,OpenAI 的 DALL-E 和特斯拉的 GPT-3 都是目前表現出眾的大模型。在音頻處理領域,Google 的 Wavenet 和 Facebook 的 GLA 的表現較好。因此,要確定哪一款大模型是“最好的”,需要根據您的具體需求和應用場景來判斷。
實戰ChatGLM3
?與ChatGLM3交互
./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -i
效果還是不錯的:
./build/bin/main -m ~/models/chatglm3-6b/chatglm3-ggml.bin -i________ __ ________ __ ___ / ____/ /_ ____ _/ /_/ ____/ / / |/ /_________ ____ / / / __ \/ __ `/ __/ / __/ / / /|_/ // ___/ __ \/ __ \ / /___/ / / / /_/ / /_/ /_/ / /___/ / / // /__/ /_/ / /_/ / \____/_/ /_/\__,_/\__/\____/_____/_/ /_(_)___/ .___/ .___/ /_/ /_/ Welcome to ChatGLM.cpp! Ask whatever you want. Type 'clear' to clear context. Type 'stop' to exit.Prompt > 你好
ChatGLM3 > 你好👋!我是人工智能助手 ChatGLM3-6B,很高興見到你,歡迎問我任何問題。
Prompt > 如果小朋友一直刷手機,應該怎么引導?
ChatGLM3 > 小朋友一直刷手機可能會對他們的身心健康和發展產生負面影響。以下是一些建議,可以幫助引導孩子減少手機使用時間:1. 設定規則:家長可以和孩子一起制定一些規則,例如在規定的時間內使用手機,例如晚餐后、睡覺前。嚴格遵守這些規則可以幫助孩子養成良好的習慣。2. 互動交流:家長可以和孩子一起進行其他活動,例如閱讀、玩游戲或進行戶外活動等,以減少孩子對手機的依賴。3. 激發興趣:家長可以鼓勵孩子培養其他興趣愛好,例如繪畫、音樂、運動等,這樣孩子可以更有效地利用時間,而不是一直在手機上。4. 教育應用:家長可以和孩子一起學習如何使用手機,例如使用教育應用、導航等,讓孩子更加積極地使用手機。5. 關注孩子的情緒:孩子過度使用手機可能是因為他們感到無聊、孤獨或其他情緒問題。家長可以關注孩子的情緒,嘗試了解他們的需求,并幫助他們應對這些情緒問題。6. 做出榜樣:家長是孩子的榜樣,因此家長的行為會對孩子產生影響。家長可以減少自己的手機使用時間,并和孩子一起度過更多 quality time。總之,家長可以通過制定規則、互動交流、激發興趣、教育應用、關注情緒和做出榜樣等方式,引導孩子減少手機使用時間,并幫助他們養成良好的習慣。
Prompt > 如何用大模型做一個有趣的項目?
ChatGLM3 > 用大模型做一個有趣的項目可以參考以下步驟:1. 確定項目目標:首先確定項目的目標和主題,例如你想用大模型制作一個對話機器人、一個文本生成器或者一個圖像生成器等。2. 收集數據:根據項目目標,收集相關的數據,例如文本數據、圖像數據、語音數據等。3. 數據預處理:對收集的數據進行預處理,例如清洗、標注、歸一化等,以便于大模型進行處理。4. 選擇大模型:根據項目需求,選擇合適的大模型,例如ChatGPT、ChatGLM、LLaMA等。5. 訓練模型:使用收集的數據對大模型進行訓練,并根據項目需求進行優化和調整。6. 測試模型:在模型訓練完成后,進行測試和評估,以確保模型的性能和質量符合預期。7. 應用和展示:將訓練好的模型應用到項目中,例如構建一個對話機器人或者一個文本生成器,并進行展示和分享。總之,用大模型做一個有趣的項目需要首先確定項目目標,然后收集數據,進行數據預處理,選擇大模型進行訓練,測試模型并進行應用和展示。
Prompt >
?當然還有我們著名的打鳥的腦筋急轉彎:
Prompt ? > 樹上8只鳥,打死3只,還有幾只??
ChatGLM3 > 如果樹上有8只鳥,打死3只后,樹上將剩下5只鳥。
Prompt ? > 再想想
ChatGLM3 > 非常抱歉,我的回答有誤。如果樹上有8只鳥,打死3只后,樹上將剩下0只鳥。
?
調式
Huggingface下載模型慢,使用鏡像:
HF-Mirror - Huggingface 鏡像站
即使用了鏡像,還是慢。解決方法:從openi網站OpenI - 啟智AI開源社區提供普惠算力!下模型。可以用瀏覽器下載,也可以用python或命令行來下載。
openi下載報錯
FileNotFoundError: ? 本機尚未登錄OpenI,請參考 https://openi.pcl.ac.cn/docs/index.html#/api/cli/login.
使用openi login 登錄,后面輸入token即可。
具體見openi官網:OpenI
chatglm.cpp轉換模型報錯
? File "/home/skywalk/github/chatglm.cpp/chatglm_cpp/convert.py", line 577, in main
? ? with open(args.save_path, "wb") as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/skywalk/models/chatglm3/chatglm3-ggml.bin'
?是因為沒有那個目錄,換成chatglme3-6b目錄。后來發現是硬盤空間不夠了,清理出足夠硬盤空間,搞定。