2026年ChatGLM开源模型本地部署教程:私有化智谱大模型
我的读者群里有个做医疗AI的朋友叫小陈,他们在一家三甲医院的信息科工作。医院想用大模型辅助医生写病历、做诊断建议,但患者的数据绝对不能传到外部服务器。他们评估了各种方案后,选择了在本地部署ChatGLM开源模型。
小陈花了两周时间完成了部署和微调,最终上线了一个病历辅助系统。医生只需要输入几个关键词,AI就能生成结构化的病历草稿,效率提升了60%以上。更关键的是,所有数据都在医院内网流转,完全合规。今天我把小陈的部署经验和我的测试心得整理出来,帮你在自己的设备上跑起ChatGLM。
一、开源模型
ChatGLM开源模型全景
智谱AI在开源社区贡献了多个模型,2026年可用的开源模型主要有以下几个:
ChatGLM3-6B(经典版): 6B参数,支持对话、工具调用、代码执行。2023年发布,至今仍是社区最受欢迎的开源模型之一。经过两年多的社区优化,运行非常稳定。
GLM-4-9B(进阶版): 9B参数,在ChatGLM3基础上性能大幅提升。支持128K上下文、更好的工具调用能力、多语言支持。是2026年本地部署的首选推荐。
GLM-4-9B-Chat(对话优化版): 基于GLM-4-9B做了对话对齐优化,更适合聊天和问答场景。
CodeGeeX-4-9B(代码专用版): 专为代码任务优化的版本,在代码生成、补全、解释等任务上表现更好。
CogVLM2-Visual(视觉版): 支持图像理解的多模态模型,可以分析图片内容、做OCR识别。
模型许可证
智谱的开源模型采用不同的许可证:
| 模型 | 许可证 | 商用限制 |
|---|---|---|
| ChatGLM3-6B | Apache 2.0 | 无限制 |
| GLM-4-9B | GLM-4 License | 月活>1亿需申请 |
| CodeGeeX-4 | CodeGeeX License | 无限制 |
| CogVLM2 | Apache 2.0 | 无限制 |
大多数中小企业和个人开发者的使用不受许可证限制。只有月活用户超过1亿的超大型应用需要向智谱申请商业授权。
模型选择指南
根据你的需求选择合适的模型:
| 使用场景 | 推荐模型 | 理由 |
|---|---|---|
| 日常对话助手 | GLM-4-9B-Chat | 对话质量最好 |
| 代码辅助 | CodeGeeX-4-9B | 代码任务专精 |
| 低配硬件 | ChatGLM3-6B | 资源需求最低 |
| 图像理解 | CogVLM2-Visual | 多模态支持 |
| Agent应用 | GLM-4-9B | 工具调用能力强 |
| 微调基础 | GLM-4-9B | 基座模型质量高 |
二、硬件要求
GPU配置方案
大模型本地部署对硬件有一定要求,以下是不同模型的最低和推荐配置:
| 模型 | 最低显存 | 推荐显存 | 推荐GPU |
|---|---|---|---|
| ChatGLM3-6B (FP16) | 12GB | 16GB | RTX 4060 Ti 16GB |
| ChatGLM3-6B (INT4) | 5GB | 6GB | RTX 3060 6GB |
| GLM-4-9B (FP16) | 18GB | 24GB | RTX 3090/4090 |
| GLM-4-9B (INT4) | 8GB | 10GB | RTX 3060 12GB |
| CodeGeeX-4-9B (INT4) | 8GB | 10GB | RTX 3060 12GB |
| CogVLM2 (INT4) | 12GB | 16GB | RTX 4060 Ti 16GB |
Mac方案
苹果芯片的Mac用户有天然优势,统一内存架构让大模型可以利用全部内存:
| 设备 | 内存 | 可运行模型 | 推理速度 |
|---|---|---|---|
| MacBook M1 (16GB) | 16GB | ChatGLM3-6B (INT4) | 约15 token/s |
| MacBook M2 Pro (32GB) | 32GB | GLM-4-9B (INT4) | 约25 token/s |
| MacBook M3 Max (64GB) | 64GB | GLM-4-9B (FP16) | 约40 token/s |
| Mac Studio M2 Ultra (128GB) | 128GB | 任意模型 | 约50 token/s |
CPU-only方案
如果没有独立显卡,也可以用CPU运行(速度较慢):
- 最低配置:16GB内存,4核CPU
- 推荐配置:32GB内存,8核以上CPU
- 推理速度:约2-5 token/s(适合非实时场景)
- 推荐使用llama.cpp进行CPU推理优化
存储要求
| 模型 | 模型文件大小 | 推荐磁盘空间 |
|---|---|---|
| ChatGLM3-6B (FP16) | ~12GB | 20GB |
| ChatGLM3-6B (INT4) | ~4GB | 10GB |
| GLM-4-9B (FP16) | ~18GB | 30GB |
| GLM-4-9B (INT4) | ~6GB | 15GB |
建议使用SSD存储模型文件,可以显著加快模型加载速度。
三、Ollama部署
安装Ollama
Ollama是目前最简单的本地大模型部署工具,一行命令就能跑起来ChatGLM。
Windows安装:
# 下载安装包
# 访问 https://ollama.com/download/windows 下载
# 或者使用命令行安装
curl -fsSL https://ollama.com/install.sh | sh
Linux安装:
curl -fsSL https://ollama.com/install.sh | sh
Mac安装:
brew install ollama
# 或从官网下载 .dmg
下载和运行ChatGLM
# 拉取ChatGLM3-6B模型(约4GB)
ollama pull chatglm3:6b
# 拉取GLM-4-9B模型(约6GB INT4版本)
ollama pull glm4:9b
# 运行对话
ollama run chatglm3:6b
运行后直接进入交互对话界面,可以开始和ChatGLM聊天。
自定义Modelfile
通过Modelfile可以自定义模型的行为:
# Modelfile-chatglm
FROM glm4:9b
# 设置系统提示词
SYSTEM """你是一个专业的医疗助手,擅长帮助医生整理病历和提供诊断建议。
回答时请注意:
1. 使用规范的医学术语
2. 给出建议时附带可能的鉴别诊断
3. 必要时提醒医生进行相关检查
4. 所有内容仅供参考,最终决策由医生做出"""
# 设置参数
PARAMETER temperature 0.3
PARAMETER top_p 0.85
PARAMETER num_ctx 8192
PARAMETER num_predict 2048
创建自定义模型:
ollama create medical-glm -f Modelfile-chatglm
ollama run medical-glm
API服务部署
Ollama自带API服务,方便集成到你的应用中:
# 启动API服务(默认监听11434端口)
ollama serve
# 调用API
curl http://localhost:11434/api/chat -d '{
"model": "glm4:9b",
"messages": [
{"role": "user", "content": "请解释什么是高血压"}
],
"stream": false
}'
Python集成示例:
import requests
import json
def chat_with_glm(prompt, model="glm4:9b"):
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": model,
"messages": [{"role": "user", "content": prompt}],
"stream": False
}
)
return response.json()["message"]["content"]
# 使用示例
result = chat_with_glm("用简单的语言解释量子计算")
print(result)
OpenAI兼容接口
Ollama提供兼容OpenAI格式的API,方便迁移已有代码:
from openai import OpenAI
# 指向Ollama本地服务
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 任意值即可
)
response = client.chat.completions.create(
model="glm4:9b",
messages=[
{"role": "system", "content": "你是一个有用的AI助手"},
{"role": "user", "content": "介绍一下机器学习"}
]
)
print(response.choices[0].message.content)
多模型管理
# 查看已安装的模型
ollama list
# 删除不需要的模型
ollama rm chatglm3:6b
# 查看模型详情
ollama show glm4:9b
# 同时运行多个模型(需要足够显存)
# Ollama会自动管理显存分配
四、微调指南
为什么需要微调
虽然ChatGLM的通用能力已经很强,但以下场景微调可以带来显著提升:
- 垂直领域:医疗、法律、金融等专业领域需要特定的术语和知识
- 风格定制:让模型的输出风格符合你的品牌或业务需求
- 任务优化:针对特定任务(如摘要、分类、翻译)做优化
- 数据注入:将私有知识注入模型中
微调数据准备
微调数据格式通常为JSONL格式:
{"messages": [{"role": "system", "content": "你是一个医疗助手"}, {"role": "user", "content": "头痛怎么办?"}, {"role": "assistant", "content": "头痛可能有多种原因..."}]}
{"messages": [{"role": "system", "content": "你是一个医疗助手"}, {"role": "user", "content": "什么是高血压?"}, {"role": "assistant", "content": "高血压是指动脉血压持续升高..."}]}
数据量建议:
| 微调目标 | 建议数据量 | 训练轮数 |
|---|---|---|
| 风格调整 | 100-500条 | 3-5轮 |
| 任务优化 | 500-2000条 | 3-5轮 |
| 领域适配 | 2000-10000条 | 2-3轮 |
| 知识注入 | 10000+条 | 2-3轮 |
LoRA微调
LoRA是目前最主流的轻量级微调方法,不需要太多显存:
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from datasets import load_dataset
from trl import SFTTrainer
import torch
# 加载基础模型(4bit量化)
model_id = "THUDM/glm-4-9b"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
load_in_4bit=True,
torch_dtype=torch.float16,
trust_remote_code=True,
device_map="auto"
)
# 准备模型用于微调
model = prepare_model_for_kbit_training(model)
# LoRA配置
lora_config = LoraConfig(
r=16, # LoRA秩
lora_alpha=32, # 缩放因子
target_modules=["query_key_value"], # GLM的注意力模块
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
# 应用LoRA
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# 输出: trainable params: 12,582,912 || all params: 9,012,582,912
# 只需训练约0.14%的参数
# 加载训练数据
dataset = load_dataset("json", data_files="train_data.jsonl")
# 训练配置
trainer = SFTTrainer(
model=model,
train_dataset=dataset["train"],
args={
"output_dir": "./glm4-lora-medical",
"num_train_epochs": 3,
"per_device_train_batch_size": 2,
"gradient_accumulation_steps": 8,
"learning_rate": 2e-4,
"fp16": True,
"logging_steps": 10,
"save_steps": 200,
"save_total_limit": 3
},
formatting_func=lambda x: format_chat(x)
)
# 开始训练
trainer.train()
# 保存LoRA权重
model.save_pretrained("./glm4-lora-medical")
微调硬件需求
| 微调方法 | 模型 | 显存需求 | 训练时间(1000条数据) |
|---|---|---|---|
| LoRA (4bit) | ChatGLM3-6B | 8GB | 约30分钟 |
| LoRA (4bit) | GLM-4-9B | 12GB | 约45分钟 |
| LoRA (8bit) | GLM-4-9B | 16GB | 约1小时 |
| Full Fine-tune | GLM-4-9B | 80GB+ | 约4小时 |
使用微调后的模型
from peft import PeftModel
# 加载基础模型
base_model = AutoModelForCausalLM.from_pretrained(
"THUDM/glm-4-9b",
load_in_4bit=True,
trust_remote_code=True
)
# 加载LoRA权重
model = PeftModel.from_pretrained(
base_model,
"./glm4-lora-medical"
)
# 推理测试
inputs = tokenizer("患者男性,55岁,主诉头痛3天...", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0]))
五、应用开发
搭建本地知识库
结合向量数据库,用ChatGLM搭建一个本地知识库问答系统:
from langchain_community.vectorstores import ChromaDB
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.chains import RetrievalQA
from langchain_community.llms import Ollama
# 初始化本地LLM
llm = Ollama(model="glm4:9b", base_url="http://localhost:11434")
# 初始化本地Embedding模型
embeddings = HuggingFaceEmbeddings(
model_name="BAAI/bge-large-zh-v1.5"
)
# 创建向量数据库
vectorstore = ChromaDB.from_documents(
documents=your_documents, # 你的文档列表
embedding=embeddings,
persist_directory="./chroma_db"
)
# 创建问答链
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=vectorstore.as_retriever(search_kwargs={"k": 5}),
return_source_documents=True
)
# 提问
result = qa_chain("公司的年假政策是什么?")
print(result["result"])
构建AI客服系统
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import requests
app = FastAPI(title="AI客服系统")
class ChatRequest(BaseModel):
message: str
session_id: str
class ChatResponse(BaseModel):
reply: str
confidence: float
# 会话历史存储
sessions = {}
SYSTEM_PROMPT = """你是XX公司的智能客服,负责回答客户关于产品、订单、退换货的问题。
规则:
1. 礼貌、专业
2. 不确定的问题引导客户联系人工客服
3. 不回答与公司业务无关的问题
4. 涉及退款等问题需要客户提供订单号"""
@app.post("/chat", response_model=ChatResponse)
async def chat(request: ChatRequest):
# 获取或创建会话历史
if request.session_id not in sessions:
sessions[request.session_id] = [
{"role": "system", "content": SYSTEM_PROMPT}
]
messages = sessions[request.session_id]
messages.append({"role": "user", "content": request.message})
# 调用本地GLM
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "glm4:9b",
"messages": messages,
"stream": False,
"options": {"temperature": 0.3}
}
)
reply = response.json()["message"]["content"]
messages.append({"role": "assistant", "content": reply})
# 保留最近20条消息
if len(messages) > 21:
messages = [messages[0]] + messages[-20:]
return ChatResponse(reply=reply, confidence=0.85)
接入现有应用
将本地部署的ChatGLM接入企业微信或钉钉:
# wechat_work_bot.py
import requests
from flask import Flask, request
app = Flask(__name__)
def get_glm_response(message, user_id):
"""调用本地ChatGLM"""
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "glm4:9b",
"messages": [
{"role": "system", "content": "你是公司内部AI助手"},
{"role": "user", "content": message}
],
"stream": False
}
)
return response.json()["message"]["content"]
@app.route("/webhook/wechat", methods=["POST"])
def wechat_webhook():
data = request.json
user_message = data.get("Content", "")
user_id = data.get("FromUserName", "")
reply = get_glm_response(user_message, user_id)
# 回复消息到企业微信
send_wechat_reply(user_id, reply)
return "ok"
六、与DeepSeek开源对比
开源策略对比
| 对比维度 | ChatGLM系列 | DeepSeek系列 |
|---|---|---|
| 开源模型数量 | 5+ | 8+ |
| 最大开源参数 | 9B | 67B(MoE) |
| 许可证 | Apache 2.0 / GLM License | MIT |
| 商用友好度 | 高 | 极高 |
| 社区活跃度 | ★★★★★ | ★★★★☆ |
| 文档完善度 | ★★★★★ | ★★★★☆ |
模型性能对比
| 评测项目 | GLM-4-9B | DeepSeek-V2-Lite (16B) |
|---|---|---|
| 中文对话 | 8.5 | 8.2 |
| 英文对话 | 8.0 | 8.3 |
| 数学推理 | 7.8 | 8.5 |
| 代码能力 | 8.0 | 8.3 |
| 推理速度 | 中 | 快(MoE优势) |
| 显存效率 | 中 | 高(MoE稀疏激活) |
部署体验对比
ChatGLM的部署优势:
- 文档更完善:中文文档详尽,社区教程丰富,遇到问题容易找到解决方案
- 工具支持更好:Ollama、vLLM、llama.cpp等主流工具都有良好支持
- 量化方案成熟:INT4/INT8量化效果好,精度损失小
- 微调生态好:LoRA微调的教程和工具链最完善
DeepSeek的部署优势:
- 推理更快:MoE架构使得实际推理速度更快
- 模型更大:开源了更大参数的模型,能力上限更高
- 许可证更宽松:MIT许可证,完全无限制
- 多模型选择:有更多规格的模型可选
七、模型对比
同级别模型横向对比
| 模型 | 参数量 | 中文能力 | 代码能力 | 速度 | 显存(INT4) |
|---|---|---|---|---|---|
| ChatGLM3-6B | 6B | 7.5 | 7.0 | 快 | 5GB |
| GLM-4-9B | 9B | 8.5 | 8.0 | 中 | 8GB |
| Qwen2-7B | 7B | 8.3 | 8.2 | 中 | 6GB |
| DeepSeek-V2-Lite | 16B | 8.2 | 8.3 | 快 | 10GB |
| Llama3-8B | 8B | 7.0 | 8.0 | 中 | 6GB |
| Yi-1.5-9B | 9B | 8.1 | 7.8 | 中 | 8GB |
选型决策树
你的主要语言是什么?
├── 中文为主 → 选GLM-4-9B
│ ├── 需要低显存 → 选ChatGLM3-6B (INT4)
│ ├── 需要高速度 → 选DeepSeek-V2-Lite
│ └── 需要最佳中文 → 选GLM-4-9B
├── 英文为主 → 选Llama3-8B
└── 中英混合 → 选Qwen2-7B
├── 代码为主 → 选CodeGeeX-4-9B
└── 推理为主 → 选DeepSeek-V2-Lite
混合部署方案
实际项目中,很多团队会同时部署多个模型,根据任务类型路由到不同模型:
def route_to_model(task_type, prompt):
"""根据任务类型路由到不同模型"""
if task_type == "chat":
return call_ollama("glm4:9b-chat", prompt)
elif task_type == "code":
return call_ollama("codegeex4:9b", prompt)
elif task_type == "math":
return call_ollama("deepseek-v2-lite", prompt)
elif task_type == "translation":
return call_ollama("glm4:9b", prompt)
else:
return call_ollama("glm4:9b", prompt)
这种方案可以在有限的硬件资源下,最大化利用各模型的专长。
八、FAQ
本地部署常见问题排查
在实际部署过程中,我总结了用户最常遇到的问题和解决方案:
问题一:模型下载失败或中断。 从HuggingFace下载模型时,国内网络经常不稳定。解决方案是使用镜像源(如hf-mirror.com),或者使用Ollama的内置下载功能(它会自动重试和断点续传)。如果你使用Git LFS拉取模型,建议设置GIT_LFS_SKIP_SMUDGE=1先跳过大文件,然后单独下载模型权重文件。
问题二:GPU显存不足。 如果显存不够跑完整模型,有三个降级方案。第一是使用更激进的量化(从FP16降到INT8再到INT4),INT4量化通常只需要原始显存的40%左右。第二是降低上下文长度,把num_ctx从默认的8192降到4096甚至2048。第三是使用CPU+GPU混合推理,把部分层放到内存中计算(速度会降低但能跑起来)。
问题三:推理速度太慢。 如果觉得生成速度不够快,可以尝试以下优化。使用vLLM替代Ollama作为推理后端,vLLM的PagedAttention技术可以显著提升吞吐量。开启连续批处理(continuous batching),让多个请求共享一次推理计算。如果预算允许,使用RTX 4090替代3090,推理速度能提升约40%。
问题四:模型输出质量不稳定。 本地模型有时候会出现重复输出、跑题或胡言乱语的情况。这通常是因为生成参数设置不合理。建议把temperature设为0.3-0.7之间(太低会过于死板,太高会随机性过大),把repetition_penalty设为1.1-1.2防止重复,把top_p设为0.85-0.95保证输出多样性。
生产环境部署清单
如果你要把本地部署的ChatGLM用于生产环境,请逐项检查以下清单:
- 模型文件已完整下载并校验哈希值
- GPU驱动和CUDA版本匹配,无报错
- Ollama或推理服务已配置为系统服务(开机自启)
- API服务已配置访问认证(防止未授权访问)
- 已设置请求频率限制(防止恶意调用)
- 已配置日志记录和日志轮转(防止磁盘写满)
- 已设置GPU温度和显存使用的监控告警
- 已制定故障恢复方案(自动重启、备用实例等)
- 已进行压力测试,确认并发能力满足业务需求
- 已完成至少一次完整的备份和恢复演练
按照这个清单走一遍,你的本地部署就能达到生产可用的标准。
本地部署与云端API混合使用策略
很多企业并不是非此即彼地选择本地部署或云端API,而是采用混合策略来平衡成本、性能和安全性。
策略一:按数据敏感度分流。 涉及客户隐私、财务数据、商业机密的请求走本地模型,确保数据不出内网。普通的内容生成、翻译、摘要等请求走云端API,享受更强的模型能力。这种策略在金融和医疗行业特别常见。
策略二:按任务难度分流。 简单任务(如FAQ问答、格式转换、简单翻译)交给本地模型处理,速度快且免费。复杂任务(如深度分析、创意写作、多步骤推理)交给云端API,利用更大模型的能力。我测试过这种策略,大约70%的请求可以由本地模型处理,只有30%需要调用云端API。
策略三:按时间段分流。 工作时间高峰期使用本地模型保障响应速度,夜间和周末切换到云端API进行批处理任务(如文档分析、数据标注等)。这种方式可以最大化利用本地硬件资源的空闲时间。
小陈他们的医院就采用了混合策略。病历相关的请求全部走本地部署的ChatGLM,确保患者数据安全。而医生个人使用的论文翻译、学术检索等辅助功能走云端API。上线半年来,本地模型处理了85%的请求,云端API只处理了15%,月均API费用不到200元,但整个系统的可用性达到了99.5%。
本地模型的性能基准测试方法
部署完成后,怎么知道你的模型跑得怎么样?我推荐做一套基准测试来量化模型表现:
响应速度测试: 准备20个不同长度的提示词(从50字到500字),分别测试首token延迟和完整生成速度。记录每个提示词的token/秒数值,取平均值作为基准。正常情况下一张RTX 4090跑GLM-4-9B INT4应该在20-30 token/秒之间。
输出质量测试: 准备50个涵盖不同任务类型的测试问题(对话、翻译、摘要、代码、推理),让本地模型和云端API分别回答。请3个同事对两个版本的答案打分(1-5分),比较本地模型和云端的质量差距。我的经验是,在简单任务上两者差距通常不超过0.5分。
并发压力测试: 使用wrk或JMeter等工具模拟多用户并发请求,记录不同并发数下的响应时间和错误率。找到系统的最大并发承载能力,为后续扩容提供依据。
长期稳定性测试: 让模型持续运行7天,每天处理500个请求,监控显存占用和响应速度的变化。如果显存持续增长(可能存在内存泄漏),需要排查原因或设置定期重启任务。
完成这套基准测试大约需要两天时间,但它能帮你建立一个清晰的性能基线。以后每次升级模型版本、调整参数、更换硬件之后,重新跑一遍基准测试就能准确知道性能是提升了还是下降了。
Q1:本地部署ChatGLM的法律风险大吗?
基本没有法律风险。ChatGLM3-6B采用Apache 2.0许可证,完全允许个人和商业使用。GLM-4-9B的许可证稍有限制——月活用户超过1亿的企业需要申请商业授权,但绝大多数中小企业和个人用户不受此限制。使用开源模型时注意:不要移除模型中的版权信息,遵守许可证的条款,不要将模型用于违法违规用途。在合规前提下,本地部署ChatGLM是完全合法安全的。
Q2:本地模型的对话质量和API版本差多少?
差距是存在的但可控。以GLM-4-9B和GLM-5 API为例:在简单对话和日常任务上,两者差距很小(约5-10%)。在复杂推理、长篇创作、多步骤分析等高难度任务上,API版本的GLM-5明显更强(差距约20-30%)。对于大多数企业内部应用(客服、文档处理、知识问答),本地部署的GLM-4-9B已经够用。如果你的应用需要极高的输出质量(如对外发布的内容),建议混合使用:简单任务走本地模型,高质量需求走API。
Q3:如何监控本地部署的模型性能?
推荐使用以下工具组合监控本地模型:Ollama自带的基础监控(查看请求量、响应时间);Prometheus + Grafana做详细的性能仪表盘(GPU使用率、内存占用、请求延迟等);LangSmith或Langfuse做应用层的追踪(每次请求的输入输出、token消耗、用户满意度等)。建议设置关键指标的报警阈值:当GPU使用率持续超过90%、平均响应时间超过10秒、或错误率超过5%时自动通知运维人员。
Q4:本地模型能支持多少人同时使用?
这取决于硬件配置和模型大小。以单张RTX 4090(24GB显存)运行GLM-4-9B INT4为例:并发处理能力约4-6个请求/秒,假设每个用户每分钟发起2次请求,那么一台服务器可以支撑约120-180个活跃用户。如果需要支持更多用户,可以通过以下方式扩展:增加GPU数量(多卡部署)、使用vLLM等高性能推理框架提升吞吐量、部署多个实例并做负载均衡、对非实时任务做请求排队和批处理。一般来说,3-4张4090可以支撑500+用户的企业应用。
如果你想了解更多ChatGLM的使用技巧,推荐看看ChatGLM入门教程。关于本地部署AI模型的更多方法,可以参考Ollama本地部署指南。想了解更多AI工具,2026年AI工具大全是你不可错过的资源。