当前位置: 首页 > java >正文

三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)

前言:

        最近刚拿到实验室一个装了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:

source activate chatgpt

Windows:

activate
conda activate chatgpt

需要安装一些库,这里提供三种方式:

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 readlinetokenizer = 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 = Falsedef 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 promptdef signal_handler(signal, frame):global stop_streamstop_stream = Truedef main():history = []global stop_streamprint("欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")while True:query = input("\n用户:")if query.strip() == "stop":breakif query.strip() == "clear":history = []os.system(clear_command)print("欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")continuecount = 0for response, history in model.stream_chat(tokenizer, query, history=history):if stop_stream:stop_stream = Falsebreakelse:count += 1if 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安装的所有库和对应版本。

conda list

版本如下:

(chatgpt) wlf@3090-2:~/project/ChatGLM-6B-main$ conda list
# packages in environment at /home/wlf/anaconda3/envs/chatgpt:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
accelerate                1.0.1                    pypi_0    pypi
aiofiles                  23.2.1                   pypi_0    pypi
annotated-types           0.7.0                    pypi_0    pypi
anyio                     4.5.2                    pypi_0    pypi
ca-certificates           2025.2.25            h06a4308_0  
certifi                   2025.4.26                pypi_0    pypi
charset-normalizer        3.4.2                    pypi_0    pypi
click                     8.1.8                    pypi_0    pypi
contourpy                 1.1.1                    pypi_0    pypi
cpm-kernels               1.0.11                   pypi_0    pypi
cycler                    0.12.1                   pypi_0    pypi
exceptiongroup            1.3.0                    pypi_0    pypi
fastapi                   0.115.12                 pypi_0    pypi
ffmpy                     0.5.0                    pypi_0    pypi
filelock                  3.16.1                   pypi_0    pypi
fonttools                 4.57.0                   pypi_0    pypi
fsspec                    2025.3.0                 pypi_0    pypi
gradio                    4.44.1                   pypi_0    pypi
gradio-client             1.3.0                    pypi_0    pypi
h11                       0.16.0                   pypi_0    pypi
httpcore                  1.0.9                    pypi_0    pypi
httpx                     0.28.1                   pypi_0    pypi
huggingface-hub           0.31.4                   pypi_0    pypi
idna                      3.10                     pypi_0    pypi
importlib-metadata        8.5.0                    pypi_0    pypi
importlib-resources       6.4.5                    pypi_0    pypi
jinja2                    3.1.6                    pypi_0    pypi
kiwisolver                1.4.7                    pypi_0    pypi
latex2mathml              3.77.0                   pypi_0    pypi
ld_impl_linux-64          2.40                 h12ee557_0  
libffi                    3.4.4                h6a678d5_1  
libgcc-ng                 11.2.0               h1234567_1  
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
markdown                  3.7                      pypi_0    pypi
markdown-it-py            3.0.0                    pypi_0    pypi
markupsafe                2.1.5                    pypi_0    pypi
matplotlib                3.7.5                    pypi_0    pypi
mdtex2html                1.3.1                    pypi_0    pypi
mdurl                     0.1.2                    pypi_0    pypi
mpmath                    1.3.0                    pypi_0    pypi
ncurses                   6.4                  h6a678d5_0  
networkx                  3.1                      pypi_0    pypi
numpy                     1.24.4                   pypi_0    pypi
nvidia-cublas-cu12        12.1.3.1                 pypi_0    pypi
nvidia-cuda-cupti-cu12    12.1.105                 pypi_0    pypi
nvidia-cuda-nvrtc-cu12    12.1.105                 pypi_0    pypi
nvidia-cuda-runtime-cu12  12.1.105                 pypi_0    pypi
nvidia-cudnn-cu12         9.1.0.70                 pypi_0    pypi
nvidia-cufft-cu12         11.0.2.54                pypi_0    pypi
nvidia-curand-cu12        10.3.2.106               pypi_0    pypi
nvidia-cusolver-cu12      11.4.5.107               pypi_0    pypi
nvidia-cusparse-cu12      12.1.0.106               pypi_0    pypi
nvidia-nccl-cu12          2.20.5                   pypi_0    pypi
nvidia-nvjitlink-cu12     12.9.41                  pypi_0    pypi
nvidia-nvtx-cu12          12.1.105                 pypi_0    pypi
openssl                   3.0.16               h5eee18b_0  
orjson                    3.10.15                  pypi_0    pypi
packaging                 25.0                     pypi_0    pypi
pandas                    2.0.3                    pypi_0    pypi
pillow                    10.4.0                   pypi_0    pypi
pip                       24.2             py38h06a4308_0  
protobuf                  5.29.4                   pypi_0    pypi
psutil                    7.0.0                    pypi_0    pypi
pydantic                  2.10.6                   pypi_0    pypi
pydantic-core             2.27.2                   pypi_0    pypi
pydub                     0.25.1                   pypi_0    pypi
pygments                  2.19.1                   pypi_0    pypi
pyparsing                 3.1.4                    pypi_0    pypi
python                    3.8.20               he870216_0  
python-dateutil           2.9.0.post0              pypi_0    pypi
python-multipart          0.0.20                   pypi_0    pypi
pytz                      2025.2                   pypi_0    pypi
pyyaml                    6.0.2                    pypi_0    pypi
readline                  8.2                  h5eee18b_0  
regex                     2024.11.6                pypi_0    pypi
requests                  2.32.3                   pypi_0    pypi
rich                      14.0.0                   pypi_0    pypi
ruff                      0.11.10                  pypi_0    pypi
safetensors               0.5.3                    pypi_0    pypi
semantic-version          2.10.0                   pypi_0    pypi
sentencepiece             0.2.0                    pypi_0    pypi
setuptools                75.1.0           py38h06a4308_0  
shellingham               1.5.4                    pypi_0    pypi
six                       1.17.0                   pypi_0    pypi
sniffio                   1.3.1                    pypi_0    pypi
sqlite                    3.45.3               h5eee18b_0  
starlette                 0.44.0                   pypi_0    pypi
sympy                     1.13.3                   pypi_0    pypi
tk                        8.6.14               h39e8969_0  
tokenizers                0.13.3                   pypi_0    pypi
tomlkit                   0.12.0                   pypi_0    pypi
torch                     2.4.1                    pypi_0    pypi
tqdm                      4.67.1                   pypi_0    pypi
transformers              4.27.1                   pypi_0    pypi
triton                    3.0.0                    pypi_0    pypi
typer                     0.15.4                   pypi_0    pypi
typing-extensions         4.13.2                   pypi_0    pypi
tzdata                    2025.2                   pypi_0    pypi
urllib3                   2.2.3                    pypi_0    pypi
uvicorn                   0.33.0                   pypi_0    pypi
websockets                12.0                     pypi_0    pypi
wheel                     0.44.0           py38h06a4308_0  
xz                        5.6.4                h5eee18b_1  
zipp                      3.20.2                   pypi_0    pypi
zlib                      1.2.13               h5eee18b_1  

二、权重下载:

1.好运版

如果你的主机和服务器能够直接连接外网的话,理论上直接执行上面的cli_demo.py文件程序会自动从huggingface上下载权重并能直接执行。

python cli_demo.py

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文件即可

python cli_demo.py

就能看到下面效果:


最后:

        当模型权重开源后,部署一个模型远比训练一个模型要简单,对这些开源的同僚们致以最高的敬意,后续可能会研究如何微调这个模型可以关注一下。

http://www.xdnf.cn/news/8393.html

相关文章:

  • AI架构分层原则
  • Stack主题遇到的问题
  • C# WinForm应用程序多语言实现全面指南
  • deepseek组合使用
  • 测试关键点
  • 【Kafka】编写消费者开发模式时遇到‘未解析的引用‘SIGUSR1’’
  • 掌握递归:编程中的优雅艺术
  • 精益数据分析(79/126):从黏性到爆发——病毒性增长的三种形态与核心指标解析
  • Swagger、Springfox、Springdoc-openapi 到底是什么关系
  • 使用 GPUStack 纳管摩尔线程 GPU 进行大语言模型和文生图模型的推理
  • ASPICE认证 vs. 其他标准:汽车软件开发的最优选择
  • C# UDP协议:核心原理、高效实现与实战进阶指南​
  • 2025语音语聊系统源码开发深度解析:WebRTC与AI降噪技术如何重塑语音社交体验
  • 智能存储如何应对极端环境挑战?忆联独家解锁PCIe 5.0固态存储“抗辐射”黑科技,重新定义数据安全防护新高度
  • 机会成本与沉没成本:如何做出理性经济决策
  • grafana/loki-stack 设置日志保存时间及自动清理
  • HarmonyOS NEXT~鸿蒙AI开发全解析:HarmonyOS SDK中的智能能力与应用实践
  • PCB设计教程【入门篇】——电路分析基础-读懂原理图
  • lanqiaoOJ 4330:欧拉函数模板
  • OceanBase 共享存储:云原生数据库的存储
  • 解析 Python 中的 if name == main 机制
  • 多版本Node.js共存管理工具NVM详细使用教程
  • 栈队列 模版题单
  • 2025年电工杯A题数据收集分享
  • 【萤火工场GD32VW553-IOT开发板】ADC电压表
  • 不使用Long.parseLong()将String转成long类型,不使用String.valueOf()将Long转成String类型
  • 通过上传使大模型读取并分析文件实战
  • AI浪潮下,第五消费时代的商业进化密码
  • PTA刷题笔记3(微难,有详解)
  • 自学嵌入式 day 23 - 数据结构 树状结构 哈希表