Windows 11本地部署ChatGLM2-6B全流程实战指南

在个人PC上运行开源大语言模型不再是实验室的专利。本文将带您完整走通Windows 11系统下ChatGLM2-6B模型的本地部署全流程,特别针对国内开发者常见的网络环境问题提供解决方案。不同于常规教程,我们不仅会涵盖标准安装步骤,更会重点解决三个核心痛点:CUDA版本冲突的灵活处理、离线环境下的模型文件获取,以及Windows特有的路径权限问题。

1. 环境准备:构建AI-ready的Windows系统

1.1 显卡驱动与CUDA工具包配置

现代NVIDIA显卡通常预装较高版本的驱动,这可能导致与特定CUDA版本的兼容性问题。执行以下命令查看当前环境:

nvidia-smi

典型输出示例:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 522.25       Driver Version: 522.25       CUDA Version: 11.8     |
|-------------------------------+----------------------+----------------------+

关键判断点

  • 当Driver Version≥522.25时,可直接安装CUDA 11.8
  • 若CUDA Version显示为12.x,需通过控制面板卸载NVIDIA图形驱动后,重新安装522.25版本驱动套件

推荐使用Anaconda管理环境以避免系统污染:

conda create -n chatglm python=3.8 -y
conda activate chatglm

1.2 PyTorch与依赖项安装

针对CUDA 11.8的PyTorch安装需指定官方镜像源:

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

验证安装成功的正确方式:

import torch
print(torch.cuda.is_available())  # 应返回True
print(torch.version.cuda)         # 应显示11.8

2. 模型获取与存储方案优化

2.1 国内友好下载方案

通过清华大学开源镜像站获取模型文件是最稳定的方式:

  1. 访问清华大学云盘(https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/)
  2. 下载全部8个模型分卷文件(约12GB)
  3. 建议存放路径示例:
    E:\LLM_Models\chatglm2-6b
    

2.2 目录结构规范

推荐按以下结构组织项目文件:

ChatGLM2-6B/
├── model/            # 存放下载的模型文件
├── web_demo.py       # 官方Web界面脚本
├── api.py            # API服务脚本
└── requirements.txt  # 依赖清单

3. 实战部署与问题排查

3.1 Web Demo启动优化

修改web_demo.py中的模型路径指向:

tokenizer = AutoTokenizer.from_pretrained("E:/LLM_Models/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("E:/LLM_Models/chatglm2-6b", trust_remote_code=True).cuda()

常见错误解决方案:

  • Streamlit报错:需手动添加Python Scripts到系统PATH
    $env:Path += ";C:\Users\$env:USERNAME\AppData\Roaming\Python\Python38\Scripts"
    
  • 显存不足:在加载模型时启用8bit量化
    model = AutoModel.from_pretrained("E:/LLM_Models/chatglm2-6b", trust_remote_code=True).quantize(8).cuda()
    

3.2 API服务部署技巧

启动API服务时推荐使用uvicorn生产模式:

uvicorn api:app --host 0.0.0.0 --port 8000 --workers 2

测试接口可用性(使用HTTPie工具):

http POST http://localhost:8000 prompt="你好,请介绍一下你自己"

4. 性能调优与进阶配置

4.1 硬件资源监控方案

创建GPU监控脚本monitor_gpu.py:

import pynvml
import time

pynvml.nvmlInit()
handle = pynvml.nvmlDeviceGetHandleByIndex(0)

while True:
    util = pynvml.nvmlDeviceGetUtilizationRates(handle)
    mem = pynvml.nvmlDeviceGetMemoryInfo(handle)
    print(f"GPU负载: {util.gpu}% | 显存使用: {mem.used/1024**2:.1f}MB/{mem.total/1024**2:.1f}MB")
    time.sleep(2)

4.2 多模型并行方案

通过端口映射实现多实例运行:

start cmd /k "python web_demo.py --port 7860"
start cmd /k "python web_demo.py --port 7861"

每个实例需要约6GB显存,建议在RTX 3090/4090等大显存显卡上尝试

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐