使用chatglm.cpp本地部署ChatGLM3-6B模型

ChatGLM3模型介紹

ChatGLM3-6B 是 ChatGLM 系列最新一代的開源模型,在保留了前兩代模型對話流暢、部署門檻低等眾多優秀特性的基礎上,ChatGLM3-6B 引入了如下特性:

  1. 更強大的基礎模型:?ChatGLM3-6B 的基礎模型 ChatGLM3-6B-Base 采用了更多樣的訓練數據、更充分的訓練步數和更合理的訓練策略。在語義、數學、推理、代碼、知識等不同角度的數據集上測評顯示,ChatGLM3-6B-Base 具有在 10B 以下的預訓練模型中最強的性能。
  2. 更完整的功能支持:?ChatGLM3-6B 采用了全新設計的?Prompt 格式,除正常的多輪對話外。同時原生支持工具調用(Function Call)、代碼執行(Code Interpreter)和 Agent 任務等復雜場景。
  3. 更全面的開源序列:?除了對話模型 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目錄。后來發現是硬盤空間不夠了,清理出足夠硬盤空間,搞定。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17931.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17931.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17931.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Yourpassword does not satisfy the current policyrequirements

mysql 新增數據庫用戶失敗 解決方法: 修改校驗密碼策略等級 set global validate_password.policyLOW;

dataguard 備庫關閉后啟動流程

startup mount; ---開啟adg alter database recover managed standby database using current logfile disconnect from session; -- alter database recover managed standby database cancel; alter database recover managed standby database disconnect…

C++課程設計實驗杭州電子科技大學ACM題目(上)

題目一:2013.蟠桃季 題目描述 Problem Description:喜歡西游記的同學肯定都知道悟空偷吃蟠桃的故事,你們一定都覺得這猴子太鬧騰了,其實你們是有所不知:悟空是在研究一個數學問題!什么問題?他…

【面試】PWM(脈沖寬度調制)相關問題 ——長期更新

1、PWM調節原理 答:通過改變信號的高電平和低電平的持續時間比例來控制輸出信號的平均功率或電壓。 2、PWM占空比定義 答:在一個脈沖周期內,高電平的時間占整個周期時間的比例。 3、PWM波形的周期和調節精度由誰決定 答:當計數…

全同態加密生態項目盤點:FHE技術的崛起以及應用

撰文:Chris,Techub News 在當今數字化的時代,隱私保護已成為一個全球性的焦點話題,特別是在加密貨幣和區塊鏈技術快速發展的背景下。雖然當前的隱私技術在保護數據安全方面多有欠缺,引發了廣泛的關注和批評&#xff0c…

BUUCTF-WEB3

[極客大挑戰 2019]Knife1 1.打開附件鏈接 一句話木馬eval($_POST["Syc"]); 2.中國蟻劍 用中國蟻劍連接 在根目錄下找到一個名為flag的文件 3.得到flag [極客大挑戰 2019]Upload1 1.打開附件鏈接 是一個文件上傳 2.一句話木馬 經過多次嘗試都被繞過,更…

【MySQL】數據庫的開始

前言 數據庫是我們學習編程中一個非常重要的內容,像一些什么什么管理系統,如果想要存儲數據都是需要連接數據庫的。博主之前寫過一篇圖書管理系統的博客,那時的我還沒接觸過數據庫,所有的數據都是現成創建的,感興趣的…

JavaScript面試 題

1.延時加載JS有哪些方式 延時加載 :async defer 例如:<script defer type"type/javascript" srcscript.js></ script> defer:等html全部解析完成,才會執行js代碼,順次執行的 async: js和html解析是同步的,不是順次執行js腳本(誰先加載完先執行誰)2.JS數…

【C++】菱形繼承、菱形虛擬繼承、繼承與組合

目錄 01.概念 02.虛擬繼承 原理 03.繼承和組合 01.概念 單繼承&#xff1a; 一個子類只有一個父類時&#xff0c;稱這種繼承關系為單繼承。 多繼承&#xff1a; 一個子類同時有兩個及以上的父類時&#xff0c;稱這種繼承關系為多繼承。 菱形繼承&#xff1a; 菱形繼承是…

一文搞懂oracle事務提交以及臟數據落盤的原則

本文基于oracle 19c 做事務提交以及oracle臟數據落盤的相關解讀 第一章 相關進程及組件介紹&#xff1a; 1.LGWR&#xff1a; 重做日志條目在系統全局區域 &#xff08;SGA&#xff09; 的重做日志緩沖區中生成。LGWR 按順序將重做日志條目寫入重做日志文件。如果數據庫具有…

【MySQL精通之路】MySQL的使用(3)-命令行連接

本節介紹使用命令行選項來指定如何為MySQL或mysqldump等客戶端建立到MySQL服務器的連接。 有關使用類似URI的連接字符串或鍵值對建立連接的信息&#xff0c;對于MySQL Shell等客戶端&#xff0c;請參閱“使用類似URI字符串或鍵值配對連接到服務器”。 有關無法連接的其他信息&a…

期望薪資26K,北京瘋狂游戲golang一面

北京瘋狂游戲一面 1、自我介紹 2、財務業務中&#xff0c;你做了哪些設計來保證金額數據的準確性&#xff1f;&#xff08;例如&#xff0c;業務涉及多步驟&#xff0c;某一步出了問題怎么解決&#xff09; 3、如何解決單個業務直接報錯的數據準確性問題 4、分布式場景下&a…

理解Vue 3響應式系統原理

title: 理解Vue 3響應式系統原理 date: 2024/5/28 15:44:47 updated: 2024/5/28 15:44:47 categories: 前端開發 tags: Vue3.xTypeScriptSFC優化Composition-APIRef&Reactive性能提升響應式原理 第一章&#xff1a;Vue 3簡介 1.1 Vue 3概述 Vue 3的誕生背景&#xff1…

怎么把電腦上的文件傳到手機上?可保存文檔的云筆記

在職場中&#xff0c;我們經常需要將電腦上的重要文件、資料傳到手機上&#xff0c;以便隨時查閱和使用。比如&#xff0c;當你在公司完成了一份關鍵報告&#xff0c;但即將外出與客戶溝通&#xff0c;這時如果能將報告傳到手機上&#xff0c;就能在移動中隨時準備應對客戶的咨…

uniapp Androud 離線打包升級APK,覆蓋安裝不更新問題

Android 打包時在assets/data/dcloud_control.xml文件中&#xff0c;如果配置debug"true" syncDebug"true"&#xff0c;則consle打印有效&#xff0c;不然沒有打印數據 <hbuilder debug"true" syncDebug"true"> <apps> …

破解App渠道歸因難題,Xinstall助你實現精準數據追蹤!

在移動互聯網時代&#xff0c;App的推廣和運營面臨著諸多挑戰。其中&#xff0c;渠道歸因問題一直困擾著眾多推廣者。如何準確追蹤用戶來源&#xff0c;分析不同渠道的推廣效果&#xff0c;成為了擺在推廣者面前的一大難題。然而&#xff0c;有了Xinstall的出現&#xff0c;這一…

C++網絡編程——實現一個簡單的echo服務器

在前面講完了服務器從建立套接字、綁定、監聽和提取&#xff0c;以及客戶端的連接&#xff0c;我們已經可以動手實現一個簡單的鏡像服務器。 錯誤處理 在那之前&#xff0c;我們先封裝一個錯誤處理函數 errif 可以定義一個uitl.cpp放里面&#xff0c;需要的地方引用即可 ut…

藍橋杯Web開發【大學組:國賽】2022年真題

1.分一分 如果給你一個數組&#xff0c;你能很快將它分割成指定長度的若干份嗎&#xff1f; 1.1 題目問題 請在 js/index.js 文件中補全函數 splitArray 中的代碼&#xff0c;最終返回按指定長度分割的數組。 具體要求如下&#xff1a; 將待分割的&#xff08;一維&#x…

云WAF如何適應動態變化的網絡安全威脅

云WAF&#xff08;Web Application Firewall&#xff09;是一種專門用于保護Web應用程序的安全系統&#xff0c;它能夠實時監測并分析網絡流量&#xff0c;一旦發現潛在攻擊行為立即進行阻斷&#xff0c;有效防止各類Web應用層攻擊。云WAF的適應性主要體現在以下幾個方面&#…

【Docker故障處理篇】運行容器報錯“docker: failed to register layer...file exists.”解決方法

【Docker故障處理篇】運行容器報錯“docker: failed to register layer...file exists.” 一、Docker環境介紹2.1 本次環境介紹2.2 本次實踐介紹二、故障現象2.1 運行容器消失2.2 重新運行容器報錯三、故障分析四、故障處理4.1 停止 Docker 服務:4.2 備份重要數據4.3 清理沖突…