三步快速部署一个本地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
就能看到下面效果:
最后:
当模型权重开源后,部署一个模型远比训练一个模型要简单,对这些开源的同僚们致以最高的敬意,后续可能会研究如何微调这个模型可以关注一下。
相关文章:

三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)
前言: 最近刚拿到实验室一个装了3张3090显卡的服务器账号,感觉不用来霍霍有点浪费,于是有了部署一个大语言模型的想法,除去下载权重和传文件到服务器上可能也就用了十分钟不到(这下看懂为啥python受众现在这么广了&…...
深入解析Spring Boot与Redis的缓存集成实践
深入解析Spring Boot与Redis的缓存集成实践 引言 在现代Web应用开发中,缓存技术是提升系统性能的重要手段之一。Redis作为一种高性能的内存数据库,广泛应用于缓存场景。本文将详细介绍如何在Spring Boot项目中集成Redis,并探讨其在实际开发…...
leetcode105.从中序与前序遍历序列构造二叉树:前序定根与中序分治的递归重建术
一、题目深度解析与核心挑战 在二叉树的重建问题中,"从中序与前序遍历序列构造二叉树"是一道考察递归分治思想的经典题目。题目要求我们根据一棵二叉树的前序遍历序列和中序遍历序列,重建出该二叉树的原始结构。这道题的核心难点在于如何利用…...
Python二级考试
目录 一、核心知识模块 1. 程序结构 2. 循环结构 3. 组合数据类型 4. 函数与模块 二、重点算法 1. 排序算法 2. 查找算法 三、文件操作 1. 基础文件处理 四、备考建议 五、典型易错点 以下是Python二级考试的复习要点整理,分为知识模块和备考建议&#…...

DeepSeek联网Google搜索引擎
目录: 1、使用背景2、实现代码3、Gradio 的 yield 机制 1、使用背景 比如所有易建联是什么时候退役的?使用大模型对这种实事回答不准确,需要通过联网搜索处理。 正确答案应该是2023年8月29日退役。 2、实现代码 # import gradio as gr# d…...
理论物理:为什么在极低温(接近绝对零度)时,经典理论失效?
经典理论应该是指经典力学和经典统计物理吧,比如牛顿力学、麦克斯韦-玻尔兹曼分布这些。而到了接近绝对零度的时候,物质的状态会发生什么变化呢?比如说超流性、超导性,或者玻色-爱因斯坦凝聚这些现象,这些在经典理论里好像没法解释。 因为在极低温下,粒子的热运动减弱,…...

奈雪小程序任务脚本
功能概述 该脚本用于自动完成奈雪点单小程序的每日任务,包括: 自动检测 Token 有效性自动签到(如果未签到)获取用户基础信息(昵称、手机号)查询当前奈雪币余额记录连续签到天数支持多账号执行,…...

上海医日健集团物联网专利技术领跑智慧药房赛道
在智慧医疗蓬勃发展的浪潮中,上海医日健集团凭借其卓越的创新能力与强大的技术实力,在智慧药房领域崭露头角。集团自主研发的物联网专利技术,正以前所未有的优势,重塑智慧药房运营模式,引领行业迈向新的发展高度。 上…...

基于Java+MySQL实现(Web)图书借阅管理系统
图书借阅管理系统(前后台) 1 需求分析 图书借阅管理系统是模拟学校图书馆实现的一个具有前后台的 Web 系统.对于读者,能够提供全文检索,个性化推荐,借阅等功能.对于管理员,能够提供可视化数据分析,信息管理等功能. 2 技术栈 前端: Layui,jQuery,echarts 后端:Spring Boot,…...

SAR ADC的功耗设计
SAR ADC 由比较器、逻辑和DAC组成,功耗比可能是3:6:1,对于低功耗设计来说,我们需要尽量让DAC的功耗最小,这里来探讨一下CDAC的功耗计算方法。 CDAC从状态1切换到状态2时,需要从Vref buffer上抽拉电荷。C是状态2时连接Vref的总电容,V2就是状态2时接Vref的电容上的电压…...

PP-OCRv5
目录 PP-OCRv5官方效果如下 C封装、C#调用效果 项目 代码 下载 PP-OCRv5官方效果如下 C封装、C#调用效果 项目 代码 using Newtonsoft.Json; using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; usi…...

nginx的一些配置的意思
1.用这个端口可以访问到nginx 2.工作进程,设置成和cpu核心数一样即可 3.每个工作进程的最大网络连接数。 4.主机名称 设置反向代理时,把server_name设置成ip。 5.反向代理进行转发,localhost指的是nginx所在的机器。 关键字proxy_pass。 …...

Agent模型微调
这篇文章讲解: 把 Agent 和 Fine-Tuning 的知识串起来,在更高的技术视角看大模型应用;加深对 Agent 工作原理的理解;加深对 Fine-Tuning 训练数据处理的理解。 1. 认识大模型 Agent 1.1 大模型 Agent 的应用场景 揭秘Agent核心…...
Android-OkHttp与Retrofit学习总结
OkHttp核心机制与工作流程 面试官:能简单介绍一下OkHttp的工作流程吗? 候选人: 好的,OkHttp的工作流程大致可以分为几个步骤。首先,我们需要创建一个OkHttpClient实例,通常会用建造者模式来配置…...
移远三款主流5G模块RM500U,RM520N,RG200U比较
文章目录 概要一、技术架构差异1. 3GPP协议版本2. 芯片平台与性能3. 频段覆盖与区域适配4. 协议增强与特殊功能 二、功能与应用定位1. 网络兼容性2. 封装与接口扩展 三、典型应用场景总结 概要 本文介绍下移远两款主流5G模块RM500U RM520N RG200U。 一…...
C++引用以及和指针的区别
C++ 引用 引用(reference)是 C++ 中的一种变量类型,是另一个变量的别名。一旦引用被初始化,就不能再改变它所指向的对象。 引用的特点 必须初始化:声明引用时必须立即对其进行初始化。不可更改绑定:一旦引用绑定到某个变量,就不能再指向其他变量。语法简洁:使用引用不…...
firfox 国外版和国内版本账号不互通问题处理
https://blog.csdn.net/sinat_37891718/article/details/147445621 现在国际服的火狐浏览器修改使用国内的账号服务器,需要先在搜索框输入about:config 中改变三项配置,然后重启浏览器,才能正常使用国内的火狐账号服务器 identity.fxaccount…...

Linux基本指令篇 —— whoami指令
whoami 是 Linux 和 Unix 系统中一个简单但实用的命令,全称 Who Am I(我是谁)。它的功能是显示当前登录用户的用户名。以下是关于 whoami 的详细解析: 目录 1. 基本用法 2. 命令特点 3. 实际应用场景 场景 1:脚本中…...
用go从零构建写一个RPC(3)--异步调用+多路复用实现
在前两个版本中,我们实现了基础的客户端-服务端通信、连接池、序列化等关键模块。为了进一步提升吞吐量和并发性能,本版本新增了 异步发送机制 和 多路复用支持,旨在减少资源消耗、提升连接利用率。 代码地址:https://github.com/…...

力扣395做题笔记
题目链接 力扣395 第一次尝试 class Solution {public int longestSubstring(String str, int k) {char[] s str.toCharArray();int n s.length;int[] cnts new int[256];int ans 0;for (int r 0, l 0; r < n; r ) { cnts[s[r]];if (cnts[s[r]] > k) { ans Mat…...
Python-numpy中常用的统计函数及转换函数
numpy中常用的统计函数 numpy中常用统计函数numpy普通统计函数忽略 NaN 值进行统计百分位数 numpy中形状转换函数重塑数组(reshape)展平数组(flatten/ravel)转置(transpose/T) 数据类型的转换使用astype()转…...
【C语言干货】free细节
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为啥*phead free掉了之后,为啥下面还 提示:以下是本篇文章正文内容,下面案例可供 可以用? 前言参考 一、为…...
网络安全-等级保护(等保) 2-0 等级保护制度现行技术标准
################################################################################ 第二章:现行等保标准要求,通过表格方式详细拆分了等保的相关要求。 GB 17859-1999 计算机信息系统 安全保护等级划分准则【现行】 GB/T22240-2020 《信息安全技术 网…...

WebSocket(看这一篇就够了)
文章目录 WebSocket 基本概念什么是WebSocket?为什么需要 WebSocket?与 HTTP 协议的区别WebSocket协议的原理WebSocket工作流程WebSocket 数据帧结构和控制帧结构。JavaScript 中 WebSocket 对象的属性和方法,以及如何创建和连接 WebSocket。webSocket简…...

旧物回收小程序:让闲置焕发光彩,为生活增添价值
你是否常常为家中堆积如山的闲置物品而烦恼?那些曾经心爱的物品,如今却成了占据空间的“鸡肋”,丢弃可惜,留着又无处安放。别担心,一款旧物二手回收小程序将为你解决这一难题,让闲置物品重新焕发光彩&#…...
精益数据分析(73/126):黏性阶段的功能优先级法则——七问决策模型与风险控制
精益数据分析(73/126):黏性阶段的功能优先级法则——七问决策模型与风险控制 在创业的黏性阶段,如何从海量的功能创意中筛选出真正能提升用户留存的关键改动?今天,我们结合《精益数据分析》中的“开发功能…...
React声明式编程(手动控制,大型项目,深度定制)与Vue响应式系统(自动优化,中小型项目,快速开发)区别
文章目录 React声明式与Vue响应式区别详解一、响应式机制原理对比1.1 Vue的响应式系统Vue响应式流程图Vue响应式代码示例 1.2 React的声明式更新React声明式流程图React声明式代码示例 二、更新触发逻辑差异2.1 Vue的自动更新Vue依赖收集机制 2.2 React的手动更新React Diff算法…...

数学建模MathAI智能体-2025电工杯A题实战
题目: 光伏电站发电功率日前预测问题 光伏发电是通过半导体材料的光电效应,将太阳能直接转化为电能的技术。光伏电站是由众多光伏发电单元组成的规模化发电设施。 光伏电站的发电功率主要由光伏板表面接收到的太阳辐射总量决定,不同季节太阳…...
跨平台游戏引擎 Axmol-2.6.0 发布
Axmol 2.6.0 版本是一个以错误修复和功能改进为主的次要LTS长期支持版本 🙏感谢所有贡献者及财务赞助者:scorewarrior、peterkharitonov、duong、thienphuoc、bingsoo、asnagni、paulocoutinhox、DelinWorks 相对于2.5.0版本的重要变更: 通…...

C# Windows Forms应用程序-002
目录 项目结构 主类和命名空间 构造函数和析构函数 初始化组件 (InitializeComponent) 按钮点击事件处理程序 主程序入口点 项目截图: 完整代码: 项目结构 这个项目是一个简单的C# Windows Forms应用程序,获取指定文件的根信息…...