前言:
最近刚拿到实验室一个装了3张3090显卡的服务器账号,感觉不消来霍霍有点浪费,于是有了部署一个大语言模型的想法,撤消下载权重和传文件到服务器上大概也就用了非常钟不到(这下看懂为啥python受众现在这么广了,只需要安装虚拟环境加实行pip install -r requirement就行,java maven考虑的就很多了,当然docker下众生平等),效果见下图。
显存占用:(12GB以上,3060以上应该没问题)
模型介绍:
ChatGLM是由清华大学和智谱AI联合研发的一系列支持中英双语对话的大语言模型,以其高效性能、开源特性和广泛适用性在业界备受关注。该系列模型基于GLM架构,通过大规模中英双语练习(数据规模达1T token),在中文使命上表现尤为突出。从2023年3月推出的ChatGLM-6B开始,到后续迭代的ChatGLM2和ChatGLM3,模型在推理服从、多轮对话、代码生成与实行、多模态理解等方面持续优化。ChatGLM3进一步增强了代码表明、网络搜刮、Agent使命规划等本领,并支持长文本处置惩罚(32K上下文)。其低部署门槛(如INT4量化仅需6GB显存)使其能够适配消费级显卡和国产芯片(如昇腾、海光DCU),同时通过监督微调和强化学习技能实现更符合人类偏好的答复。应用场景覆盖教育、客服、编程辅助等,并已与腾讯轻联等平台集成,支持企业级应用。全系列开源策略和国产硬件适配(如手机端部署)使其成为国产大模型的代表性产物之一。
一、环境配置:
首先确保你的Windows主机或Linux服务器安装了Anaconda,Windows这方面博客应该挺多,Linux可以参考下面博客,配置也是非常简易,差不多非常钟能弄完。
Linux服务器配置深度学习环境(Pytorch+Anaconda极简版)-CSDN博客https://blog.csdn.net/wlf2030/article/details/148098287?spm=1001.2014.3001.5501anaconda安装后,创建虚拟环境chatgpt:这里使用python3.8
- conda create --name chatgpt python=3.8
复制代码 创建后激活
Linux:
Windows:
需要安装一些库,这里提供三种方式:
1.官方版
官方链接如下:
THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型https://github.com/THUDM/ChatGLM-6B
2.网盘版
2025年5月22日的版本,也是本博客所用的版本
ChatGLM-6B-main.zip_免费高速下载|百度网盘-分享无限定https://pan.baidu.com/s/1IH49yQgmKHBDAzNWo5GUmg?pwd=6666
3.简易版
由于这个git仓库实际上有效的只有requirement.txt,剩余的均为模型调用的一些demo.py文件,所以只需要两个文件即可。
requirement.txt:
- protobuf
- transformers==4.27.1
- cpm_kernels
- torch>=1.10
- gradio
- mdtex2html
- sentencepiece
- accelerate
复制代码 cli_demo.py
- import os
- import platform
- import signal
- from transformers import AutoTokenizer, AutoModel
- import readline
- tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
- model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
- model = model.eval()
- os_name = platform.system()
- clear_command = 'cls' if os_name == 'Windows' else 'clear'
- stop_stream = False
- def build_prompt(history):
- prompt = "欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序"
- for query, response in history:
- prompt += f"\n\n用户:{query}"
- prompt += f"\n\nChatGLM-6B:{response}"
- return prompt
- def signal_handler(signal, frame):
- global stop_stream
- stop_stream = True
- def main():
- history = []
- global stop_stream
- print("欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")
- while True:
- query = input("\n用户:")
- if query.strip() == "stop":
- break
- if query.strip() == "clear":
- history = []
- os.system(clear_command)
- print("欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")
- continue
- count = 0
- for response, history in model.stream_chat(tokenizer, query, history=history):
- if stop_stream:
- stop_stream = False
- break
- else:
- count += 1
- if count % 8 == 0:
- os.system(clear_command)
- print(build_prompt(history), flush=True)
- signal.signal(signal.SIGINT, signal_handler)
- os.system(clear_command)
- print(build_prompt(history), flush=True)
- if __name__ == "__main__":
- main()
复制代码 下载好后,命令行到requirement.txt的根目次下,linux就一路cd,windows打开对应文件夹然后输入cmd,linux激活一次anaconda背面就全局激活不消管了,windows打开后还需要重复一遍上面激活的两行命令。
- pip install -r requirements.txt
复制代码 等候安装完毕即可,可选输入下面命令检察conda安装的所有库和对应版本。
版本如下:
二、权重下载:
1.好运版
如果你的主机和服务器能够直接连接外网的话,理论上直接实行上面的cli_demo.py文件程序会自动从huggingface上下载权重并能直接实行。
2.正常版
当然学校服务器内网不太大概直接访问外网,所以官方也有解决方案,详细如下,先下载git large file storage,由于权重十几个G传统git无法clone,git large file storage链接如下:
Git Large File Storage | Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.https://git-lfs.com/不太确定是否在不下git的时候也能正常使用,由于安装的时候它报了个警告说我的git安装在D盘不在体系文件目次下,是可疑的,是否信任该git,如果你看到这个警告选择信任即可。
然后就和正常git使用一样,就能下载权重部分的文件了
- git clone https://huggingface.co/THUDM/chatglm-6b
复制代码 3.直接版
当然如果你嫌正常官方版本太贫苦还需要安这安那,那也可以直接去对应仓库一个个文件下载,仓库链接如下:
THUDM/chatglm-6b at mainhttps://huggingface.co/THUDM/chatglm-6b/tree/main
下载的按钮在上图框框中间,猛烈建议一个个文件下载,否则全下一半来个网络问题就知道有多无语了,如果你出现下载出错情况,重新下载时留意下载的文件名称是否与原来一致,由于欣赏器重新下载时会自动把文件名背面加个(1),但配置中指定了文件名所以需要保持一致。
4.保底版
如果很不幸由于网络问题下载不了,也可以直接使用下面的网盘链接,留意这个和上面的链接东西不一样。
chatglm-6b.zip_免费高速下载|百度网盘-分享无限定https://pan.baidu.com/s/1GoQt25nBfvwPafcVGkBfjg?pwd=6666
三、运行
打开之前第一次下载的cli_demo.py文件,将此中的THUDM/chatglm-6b更换为你本机上chatglm-6b路径。
更换后如下效果:
然后实行这个python文件即可
就能看到下面效果:
最后:
当模型权重开源后,部署一个模型远比练习一个模型要简单,对这些开源的同僚们致以最高的敬意,后续大概会研究如何微调这个模型可以关注一下。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|