Qwen1.5-1.8B GPTQ快速部署Ubuntu 20.04服务器环境搭建详解想在自己的服务器上跑一个轻量又好用的AI模型试试Qwen1.5-1.8B的GPTQ版本是个不错的选择。它体积小对硬件要求相对友好而且经过量化后推理速度更快。不过在Ubuntu服务器上从零开始搭环境对不少朋友来说可能是个头疼的事尤其是驱动、CUDA这些环节一不小心就踩坑。这篇文章我就来手把手带你走一遍在Ubuntu 20.04服务器上部署Qwen1.5-1.8B GPTQ模型的完整流程。我们会从最基础的GPU驱动和CUDA环境开始一步步装好所有依赖最后把模型跑起来。整个过程我会尽量讲得细一些把可能遇到的坑提前指出来目标是让你跟着做一遍就能成功。1. 准备工作与环境检查在开始安装任何软件之前我们先得搞清楚自己的“家底”——服务器到底有什么硬件以及系统的基本情况。这一步做好了后面能省去很多麻烦。首先我们登录到你的Ubuntu 20.04服务器。打开终端我们先来确认几个关键信息。查看系统版本和内核信息lsb_release -a uname -r这能确保我们确实是基于Ubuntu 20.04进行操作内核版本也心里有数。检查GPU硬件这是最关键的一步。运行下面的命令来查看服务器里装了什么显卡。lspci | grep -i nvidia如果命令有输出比如显示了“NVIDIA Corporation GP102 [GeForce GTX 1080 Ti]”之类的信息那说明你的服务器里确实有NVIDIA的显卡硬件基础是有的。如果什么都没显示那可能需要检查一下显卡是否安装牢固或者服务器是否支持GPU。检查当前驱动情况如果有的话nvidia-smi如果这个命令能正常运行并显示出一个包含GPU型号、驱动版本、CUDA版本的信息表格那恭喜你驱动可能已经装好了。你可以直接跳到后面的CUDA安装部分。但如果命令报错提示“command not found”那就说明我们需要从头安装驱动。在开始安装前最好更新一下系统软件包列表确保我们安装的是最新源的软件。sudo apt update2. 安装NVIDIA GPU驱动与CUDA对于深度学习来说GPU驱动和CUDA就像是汽车的发动机和变速箱必须匹配好才能跑得顺畅。这里我推荐使用NVIDIA官方提供的包管理器来安装比较省心。2.1 添加NVIDIA官方软件仓库首先我们需要把NVIDIA的软件源添加到系统的源列表里。# 安装添加仓库所需的工具 sudo apt install -y software-properties-common # 添加NVIDIA的GPG密钥 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg # 添加仓库 curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt update2.2 安装驱动和CUDA Toolkit接下来我们可以一次性安装驱动和CUDA。对于Ubuntu 20.04NVIDIA提供了一个整合的包nvidia-driver-535驱动版本和cuda-toolkit-12-3CUDA 12.3。你可以根据nvidia-smi命令推荐的最新稳定版来选择这里以535驱动和CUDA 12.3为例。# 安装头文件和编译工具为后续可能需要的编译做准备 sudo apt install -y linux-headers-$(uname -r) build-essential # 安装驱动和CUDA Toolkit sudo apt install -y nvidia-driver-535 cuda-toolkit-12-3这个安装过程可能会花点时间并且需要重启服务器来加载新的内核模块。sudo reboot重启后再次登录服务器运行nvidia-smi。你应该能看到一个漂亮的表格显示了GPU信息、驱动版本535.xx以及支持的CUDA版本12.3。这就说明驱动和CUDA基础环境安装成功了。2.3 配置环境变量为了让系统知道CUDA工具链在哪里我们需要把它的路径加到环境变量里。echo export PATH/usr/local/cuda-12.3/bin${PATH::${PATH}} ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-12.3/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}} ~/.bashrc source ~/.bashrc然后验证一下CUDA编译器是否可用nvcc --version如果正确显示了CUDA编译器的版本信息如12.3那么CUDA环境就配置妥当了。3. 安装Python环境与项目依赖模型推理通常用Python所以我们需要一个干净的Python环境。这里我强烈建议使用conda来管理环境它能很好地解决不同项目间依赖冲突的问题。3.1 安装Miniconda如果你还没有安装conda可以按下面步骤安装Miniconda它是一个轻量版的Anaconda。# 下载Miniconda安装脚本这里以Python 3.10版本为例 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 运行安装脚本 bash Miniconda3-latest-Linux-x86_64.sh安装过程中按照提示操作即可一般就是按回车看许可协议输入yes同意然后回车确认安装路径。安装完成后关闭当前终端再重新打开或者执行source ~/.bashrc来激活conda。3.2 创建并激活专用环境我们为Qwen模型创建一个独立的环境。conda create -n qwen_gptq python3.10 -y conda activate qwen_gptq看到命令行提示符前面变成(qwen_gptq)就说明我们已经在这个环境里了。3.3 安装PyTorch与相关依赖PyTorch是运行模型的核心框架。一定要去PyTorch官网根据你的CUDA版本我们这里是12.3选择正确的安装命令。对于CUDA 12.3命令如下pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121接下来安装运行Qwen模型所需的一些关键库特别是transformers和auto-gptq用于GPTQ量化模型推理。pip install transformers accelerate auto-gptqaccelerate库可以帮助我们优化模型加载和推理。另外可能还需要一些工具库pip install sentencepiece einops tiktokensentencepiece是分词器需要的einops用于张量操作tiktoken是OpenAI的分词器有些兼容代码可能会用到。4. 下载与运行Qwen1.5-1.8B GPTQ模型环境终于准备好了现在让我们把模型请下来并写个简单的脚本测试一下。4.1 下载模型我们可以直接从Hugging Face的模型仓库下载。Qwen1.5-1.8B的GPTQ量化模型通常可以在社区找到例如Qwen/Qwen1.5-1.8B-Chat-GPTQ-Int8具体仓库名请以最新社区发布为准。这里我们使用git来克隆需要先安装gitsudo apt install -y git。# 创建一个项目目录 mkdir qwen_demo cd qwen_demo # 克隆模型仓库此处为示例路径请替换为实际可用的GPTQ模型仓库 git lfs install git clone https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat-GPTQ-Int8如果模型文件较大git clone可能会慢一些耐心等待。或者你也可以在Hugging Face页面上手动下载模型文件到该目录。4.2 编写推理测试脚本在qwen_demo目录下创建一个Python脚本比如叫run_qwen.py。from transformers import AutoModelForCausalLM, AutoTokenizer from auto_gptq import AutoGPTQForCausalLM import torch # 指定模型路径指向你刚才下载的模型目录 model_dir ./Qwen1.5-1.8B-Chat-GPTQ-Int8 # 加载tokenizer和模型 print(正在加载tokenizer...) tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) print(正在加载GPTQ模型...) # 注意对于GPTQ模型使用AutoGPTQForCausalLM.from_quantized来加载 model AutoGPTQForCausalLM.from_quantized( model_dir, device_mapauto, # 自动分配设备GPU/CPU use_tritonFalse, # 根据你的环境选择Linux上通常为False use_safetensorsTrue, # 如果模型是safetensors格式 trust_remote_codeTrue ) # 将模型设置为评估模式 model.eval() # 准备对话 prompt 请用中文介绍一下你自己。 messages [{role: user, content: prompt}] text tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue) # 编码输入 input_ids tokenizer(text, return_tensorspt).input_ids.cuda() # 生成回复 print(模型正在思考...) with torch.no_grad(): generated_ids model.generate( input_idsinput_ids, max_new_tokens512, do_sampleTrue, temperature0.7, top_p0.9, ) # 解码输出 response tokenizer.decode(generated_ids[0][input_ids.shape[1]:], skip_special_tokensTrue) print(模型回复, response)4.3 运行测试保存脚本后在终端里运行它python run_qwen.py第一次运行会需要一些时间加载模型。如果一切顺利你会看到终端先输出加载信息然后打印出模型关于自我介绍的中文回复。看到这个就说明你的Qwen1.5-1.8B GPTQ模型已经在Ubuntu服务器上成功跑起来了5. 系统监控与常见问题排查模型跑起来不是终点我们还得知道它跑得怎么样以及出了问题怎么解决。5.1 基础资源监控在模型运行的同时我们可以打开另一个终端窗口监控系统的资源使用情况。监控GPU使用情况最直观的还是nvidia-smi我们可以让它每秒刷新一次。watch -n 1 nvidia-smi这个命令会动态显示GPU的利用率Utilization、显存占用Memory-Usage和进程信息。确保你的模型推理进程通常是Python出现在进程列表里并且显存占用在合理范围内。监控系统资源使用htop可以看CPU和内存的整体使用情况。# 如果没安装先安装 sudo apt install -y htop htop5.2 常见部署错误与解决思路即使按照步骤也可能遇到一些问题。这里列举几个常见的nvidia-smi命令未找到问题说明NVIDIA驱动没有正确安装或加载。解决重新执行驱动安装步骤并务必重启服务器。重启后使用dmesg | grep nvidia查看内核日志确认NVIDIA模块是否加载成功。CUDA版本不匹配错误问题运行PyTorch或模型时报错显示CUDA error或版本不兼容。解决确认你安装的PyTorch版本是否匹配你的CUDA版本12.3。务必使用PyTorch官网提供的对应CUDA 12.3的安装命令。使用python -c import torch; print(torch.version.cuda)验证PyTorch看到的CUDA版本。显存不足Out of Memory问题模型加载或推理时崩溃提示OOM。解决Qwen1.5-1.8B的GPTQ-Int8版本显存占用大约在2-4GB请确保你的GPU有足够显存。可以尝试在加载模型时设置device_mapcpu先将模型放在内存或者使用max_memory参数精细控制。也可以考虑使用更低的量化精度如GPTQ-Int4的模型。模型加载失败或推理结果乱码问题可能是模型文件下载不完整或者tokenizer加载错误。解决检查模型目录下的文件是否完整特别是safetensors或bin模型文件以及tokenizer.json等配置文件。重新下载模型。确保加载tokenizer时设置了trust_remote_codeTrue因为Qwen模型使用了自定义的代码。6. 写在最后走完这一整套流程从检查硬件、安装驱动CUDA到配置Python环境、下载模型并最终运行起来相信你对在Ubuntu服务器上部署AI模型有了更实际的感受。整个过程最关键的其实就是环境配置尤其是驱动和CUDA的版本匹配这块理顺了后面就顺利很多。Qwen1.5-1.8B作为一个轻量模型在配备了GPU的服务器上运行效率还是很不错的适合用来做一些快速的文本生成、对话测试或者轻量级集成。如果你在部署过程中遇到了上面没提到的问题多看看终端的报错信息大部分错误网上都能找到解决方案。最重要的是保持耐心一步步来。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。