news 2026/7/17 4:02:01

Ubuntu 22.04下ChatGLM2-6B部署与P-Tuning微调实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 22.04下ChatGLM2-6B部署与P-Tuning微调实战

1. 项目概述

最近在Ubuntu 22.04 LTS上搭建ChatGLM2-6B环境并尝试进行P-Tuning微调训练,踩了不少坑。作为一个开源的中文大语言模型,ChatGLM2-6B在中文理解和生成方面表现出色,但在实际部署和训练过程中会遇到各种环境配置和参数调优的问题。

2. 环境准备

2.1 硬件要求

建议至少配备8GB显存的NVIDIA显卡,如RTX 3060 Ti或RTX 4060。纯CPU环境虽然可以运行,但推理速度极慢,不适合实际使用。

2.2 系统选择

Ubuntu 22.04 LTS是最佳选择,原因有三:

  1. 官方提供了完善的CUDA支持
  2. 系统稳定性好
  3. 社区支持广泛

注意:不建议使用WSL,因为可能会遇到显卡驱动和CUDA兼容性问题。

3. CUDA和驱动安装

3.1 安装NVIDIA驱动

不要直接使用命令行安装,推荐以下方法:

  1. 打开"软件和更新"
  2. 切换到"附加驱动"标签页
  3. 选择专有驱动(非开源版本)
  4. 等待安装完成

3.2 CUDA Toolkit安装

建议安装CUDA 11.7或11.8版本:

sudo apt install nvidia-cuda-toolkit

安装完成后验证:

nvidia-smi nvcc --version

3.3 cuDNN安装

从NVIDIA官网下载对应版本的cuDNN,然后执行:

sudo dpkg -i libcudnn8_8.x.x.x-1+cudaX.Y_amd64.deb sudo dpkg -i libcudnn8-dev_8.x.x.x-1+cudaX.Y_amd64.deb

4. 基础环境配置

4.1 Python环境

建议使用Miniconda创建独立环境:

conda create -n chatglm python=3.9 conda activate chatglm

4.2 依赖安装

安装PyTorch(注意选择与CUDA版本匹配的版本):

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

安装其他依赖:

pip install transformers sentencepiece protobuf gradio

5. ChatGLM2-6B部署

5.1 模型下载

从Hugging Face下载模型:

git lfs install git clone https://huggingface.co/THUDM/chatglm2-6b

5.2 量化版本选择

根据显存大小选择量化级别:

  • 8bit量化:约6GB显存
  • 4bit量化:约4GB显存

5.3 启动Web Demo

修改官方提供的web_demo.py:

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).quantize(8).cuda()

然后运行:

python web_demo.py

6. P-Tuning微调

6.1 准备训练数据

数据格式示例(train.json):

{ "content": "这件衣服适合什么场合穿?", "summary": "这款连衣裙适合商务休闲和约会场合穿着" }

6.2 训练参数配置

关键参数说明:

  • PRE_SEQ_LEN:提示序列长度(建议128)
  • LR:学习率(建议2e-2)
  • quantization_bit:量化位数(建议8)

6.3 启动训练

使用以下命令启动训练:

PRE_SEQ_LEN=128 LR=2e-2 NUM_GPUS=1 torchrun --standalone --nnodes=1 --nproc-per-node=$NUM_GPUS main.py \ --do_train \ --train_file AdvertiseGen/train.json \ --validation_file AdvertiseGen/dev.json \ --preprocessing_num_workers 10 \ --prompt_column content \ --response_column summary \ --overwrite_cache \ --model_name_or_path /path/to/chatglm2-6b \ --output_dir ./output \ --overwrite_output_dir \ --max_source_length 64 \ --max_target_length 128 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --gradient_accumulation_steps 16 \ --predict_with_generate \ --max_steps 3000 \ --logging_steps 10 \ --save_steps 1000 \ --learning_rate $LR \ --pre_seq_len $PRE_SEQ_LEN \ --quantization_bit 8

7. 常见问题与解决方案

7.1 驱动安装失败

症状:安装后黑屏无法进入系统 解决方案:

  1. 进入恢复模式
  2. 卸载NVIDIA驱动
  3. 重新安装开源驱动
  4. 再次尝试安装专有驱动

7.2 CUDA版本不匹配

错误信息:CUDA error: no kernel image is available for execution 解决方案:

  1. 检查CUDA版本与PyTorch版本是否匹配
  2. 重新安装对应版本的PyTorch

7.3 显存不足

解决方案:

  1. 降低batch size
  2. 使用更低的量化位数
  3. 启用梯度累积

7.4 微调后模型能力退化

现象:模型在特定领域表现提升,但通用能力下降 解决方案:

  1. 在训练数据中加入通用对话样本
  2. 降低学习率(尝试1e-3)
  3. 减少训练步数

8. 性能监控工具

推荐使用nvitop监控GPU使用情况:

pip install nvitop nvitop

这个工具比nvidia-smi更直观,可以实时查看显存占用、GPU利用率等信息。

9. 训练优化建议

  1. 学习率预热:前100步使用线性warmup
  2. 混合精度训练:添加--fp16参数
  3. 梯度裁剪:设置--max_grad_norm 1.0
  4. 早停机制:监控验证集loss

10. 部署建议

对于生产环境部署:

  1. 使用vLLM等高性能推理框架
  2. 启用连续批处理(continuous batching)
  3. 考虑使用Triton推理服务器
  4. 实现动态批处理

在实际使用中发现,ChatGLM2-6B对中文长文本的理解能力较强,但在处理专业领域问题时仍需微调。微调时要注意平衡专业能力和通用能力,避免模型"偏科"。训练过程中建议定期保存checkpoint,并使用TensorBoard监控训练过程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 3:59:56

红米K40自定义内核编译指南:修复电量bug与集成SukiSU功能

今天我们来聊聊如何利用GitHub为红米K40编译自定义内核。对于喜欢折腾Android系统的用户来说,编译自己的内核不仅能解决一些官方系统的bug,还能获得更多自定义功能。特别是红米K40用户,通过编译liyafe1997维护的kernel_xiaomi_sm8250_mod内核…

作者头像 李华
网站建设 2026/7/17 3:59:47

Ubuntu有线网卡驱动安装与优化指南

1. Ubuntu有线网卡驱动安装全指南刚装完Ubuntu系统却发现有线网络连不上?这可能是每个Linux新手都会遇到的经典问题。作为从Ubuntu 12.04一路用过来的老用户,我至少帮身边朋友解决过上百次这类网络驱动问题。有线网卡驱动缺失看似简单,但背后…

作者头像 李华
网站建设 2026/7/17 3:58:37

Windows 11 22H2下载安装与优化全指南

1. Windows 11 22H2版本概述Windows 11 22H2是微软在2022年下半年发布的重要功能更新版本,作为Windows 11系统的第二个大版本更新,它带来了多项性能改进和新功能。这个版本在2023年8月进行了最新一轮更新补丁,修复了之前版本中存在的一些问题…

作者头像 李华
网站建设 2026/7/17 3:57:45

Windows 11持续更新策略的技术解析与商业价值

1. Windows迭代策略的底层逻辑微软选择持续优化Windows 11而非直接推出Windows 12的决策,本质上反映了现代操作系统开发的范式转变。传统"大版本更新"模式需要用户完全重装系统,平均每3-5年就会造成一次大规模的数据迁移和兼容性阵痛。而Windo…

作者头像 李华
网站建设 2026/7/17 3:56:49

Rider 2025.1深度集成Unity与.NET开发全指南

1. 为什么2025年还在用Visual Studio写C#?Rider早已不是“备选”,而是主力生产环境 你有没有过这种体验:在Unity项目里改完一行代码,切回编辑器等了8秒才热重载完成;调试时断点飘到隔壁函数,变量窗口里一堆…

作者头像 李华
网站建设 2026/7/17 3:55:03

Windows桌面图标消失的6种修复方法

1. 桌面图标消失的常见现象与初步判断上周帮同事处理电脑问题时,遇到一个典型的桌面图标消失案例:开机后整个桌面空空如也,只剩下壁纸孤零零地挂着。这种状况其实在日常办公中并不少见,根据我多年IT支持经验,桌面图标异…

作者头像 李华