通义千问1.8B-Chat部署教程Supervisor管理服务稳定运行不中断1. 项目概述通义千问1.5-1.8B-Chat-GPTQ-Int4是阿里云推出的轻量级对话模型经过GPTQ-Int4量化后显存需求仅约4GB非常适合在消费级GPU或边缘设备上部署。本教程将详细介绍如何使用Supervisor来管理WebUI服务确保模型稳定运行不中断。2. 环境准备与模型部署2.1 系统要求硬件配置GPUNVIDIA显卡至少4GB显存内存8GB以上存储4GB可用空间软件依赖Python 3.11PyTorch 2.8.0CUDA 11.8其他依赖库transformers、auto-gptq、gradio2.2 模型文件准备由于原始模型目录可能是只读文件系统我们需要将模型复制到可写目录# 创建目标目录 mkdir -p /root/qwen-1.8b-chat/model/ # 复制模型文件 cp -r /root/ai-models/Qwen/Qwen1___5-1___8B-Chat-GPTQ-Int4/* /root/qwen-1.8b-chat/model/ # 创建量化配置文件 echo { bits: 4, group_size: 128, desc_act: false, damp_percent: 0.1, sym: true, true_sequential: true, model_name_or_path: Qwen1.5-1.8B-Chat-GPTQ-Int4, model_file_base_name: model } /root/qwen-1.8b-chat/model/quantize_config.json3. 项目结构与核心文件3.1 目录结构/root/qwen-1.8b-chat/ ├── app.py # WebUI主程序 ├── start.sh # 启动脚本 ├── model/ # 模型文件 │ ├── config.json │ ├── model.safetensors │ ├── tokenizer.json │ ├── vocab.json │ └── quantize_config.json └── logs/ # 日志目录 ├── app.log └── error.log3.2 核心代码解析app.py是WebUI的核心文件使用Gradio构建聊天界面import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer # 加载模型和tokenizer model_path /root/qwen-1.8b-chat/model tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_path, device_mapauto, trust_remote_codeTrue) # 定义聊天函数 def chat(message, history, temperature0.7, top_p0.9, max_length2048): response, _ model.chat(tokenizer, message, historyhistory, temperaturetemperature, top_ptop_p, max_lengthmax_length) return response # 创建Gradio界面 demo gr.ChatInterface( fnchat, additional_inputs[ gr.Slider(0.1, 2.0, value0.7, labelTemperature), gr.Slider(0.1, 1.0, value0.9, labelTop-P), gr.Slider(128, 4096, value2048, step128, labelMax Length) ] ) # 启动服务 demo.launch(server_name0.0.0.0, server_port7860)4. Supervisor服务配置4.1 安装Supervisor# Ubuntu/Debian系统 sudo apt-get update sudo apt-get install supervisor -y # CentOS/RHEL系统 sudo yum install epel-release sudo yum install supervisor -y4.2 创建配置文件在/etc/supervisor/conf.d/qwen-1.8b-chat.conf中添加以下内容[program:qwen-1.8b-chat] command/root/qwen-1.8b-chat/start.sh directory/root/qwen-1.8b-chat userroot autostarttrue autorestarttrue startretries3 stderr_logfile/root/qwen-1.8b-chat/logs/error.log stdout_logfile/root/qwen-1.8b-chat/logs/app.log environmentPATH/opt/miniconda3/envs/torch28/bin:%(ENV_PATH)s4.3 启动脚本创建/root/qwen-1.8b-chat/start.sh并添加执行权限#!/bin/bash source /opt/miniconda3/etc/profile.d/conda.sh conda activate torch28 cd /root/qwen-1.8b-chat exec python app.py赋予执行权限chmod x /root/qwen-1.8b-chat/start.sh4.4 管理服务# 重新加载Supervisor配置 sudo supervisorctl reread sudo supervisorctl update # 启动服务 sudo supervisorctl start qwen-1.8b-chat # 查看服务状态 sudo supervisorctl status qwen-1.8b-chat5. 使用与参数调优5.1 访问WebUI服务启动后通过浏览器访问http://服务器IP:78605.2 关键参数说明参数推荐值作用Temperature0.4-0.7控制输出随机性值越高越有创意Top-P0.9核采样参数控制词汇选择范围Max Length2048限制生成文本的最大长度5.3 性能优化建议显存不足时降低Max Length值如1024或512生成速度慢检查GPU是否正常工作首次运行有预热时间提高响应速度减少生成长度或降低Temperature值6. 常见问题排查6.1 服务无法启动# 查看详细日志 sudo supervisorctl tail qwen-1.8b-chat stderr # 检查端口占用 ss -tlnp | grep 78606.2 显存不足错误# 查看GPU状态 nvidia-smi # 解决方案 # 1. 降低Max Length参数 # 2. 关闭其他占用GPU的程序 # 3. 检查模型是否正确加载6.3 模型加载失败# 检查模型文件完整性 ls -lh /root/qwen-1.8b-chat/model/ # 确认quantize_config.json存在 cat /root/qwen-1.8b-chat/model/quantize_config.json7. 维护与监控7.1 日志管理# 查看实时日志 sudo supervisorctl tail -f qwen-1.8b-chat # 清理旧日志保留最近1000行 tail -n 1000 /root/qwen-1.8b-chat/logs/app.log /tmp/app.log mv /tmp/app.log /root/qwen-1.8b-chat/logs/app.log7.2 定期检查建议设置定时任务检查服务状态# 每天检查一次服务状态 0 0 * * * /usr/bin/supervisorctl status qwen-1.8b-chat /var/log/qwen-monitor.log7.3 备份策略关键备份文件/root/qwen-1.8b-chat/app.py/root/qwen-1.8b-chat/model/目录/etc/supervisor/conf.d/qwen-1.8b-chat.conf8. 总结通过本教程你已经成功部署了通义千问1.8B-Chat模型并使用Supervisor实现了服务的稳定运行。Supervisor提供了自动重启、日志管理等功能大大提高了服务的可靠性。当服务意外中断时Supervisor会自动尝试重启确保对话服务持续可用。关键优势稳定性Supervisor监控服务状态自动处理异常易维护集中管理日志方便问题排查灵活性可以轻松扩展多个AI服务实例获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。