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

三步快速部署一个本地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.lryc.cn/news/2385937.html

相关文章:

  • 深入解析Spring Boot与Redis的缓存集成实践
  • leetcode105.从中序与前序遍历序列构造二叉树:前序定根与中序分治的递归重建术
  • Python二级考试
  • DeepSeek联网Google搜索引擎
  • 理论物理:为什么在极低温(接近绝对零度)时,经典理论失效?
  • 奈雪小程序任务脚本
  • 上海医日健集团物联网专利技术领跑智慧药房赛道
  • 基于Java+MySQL实现(Web)图书借阅管理系统
  • SAR ADC的功耗设计
  • PP-OCRv5
  • nginx的一些配置的意思
  • Agent模型微调
  • Android-OkHttp与Retrofit学习总结
  • 移远三款主流5G模块RM500U,RM520N,RG200U比较
  • C++引用以及和指针的区别
  • firfox 国外版和国内版本账号不互通问题处理
  • Linux基本指令篇 —— whoami指令
  • 用go从零构建写一个RPC(3)--异步调用+多路复用实现
  • 力扣395做题笔记
  • Python-numpy中常用的统计函数及转换函数
  • 【C语言干货】free细节
  • 网络安全-等级保护(等保) 2-0 等级保护制度现行技术标准
  • WebSocket(看这一篇就够了)
  • 旧物回收小程序:让闲置焕发光彩,为生活增添价值
  • 精益数据分析(73/126):黏性阶段的功能优先级法则——七问决策模型与风险控制
  • React声明式编程(手动控制,大型项目,深度定制)与Vue响应式系统(自动优化,中小型项目,快速开发)区别
  • 数学建模MathAI智能体-2025电工杯A题实战
  • 跨平台游戏引擎 Axmol-2.6.0 发布
  • C# Windows Forms应用程序-002
  • 理解计算机系统_线程(八):并行