通义千问1.8B-Chat-GPTQ-Int4部署教程:vLLM服务日志分级输出与错误追踪配置

张开发
2026/4/13 8:01:19 15 分钟阅读

分享文章

通义千问1.8B-Chat-GPTQ-Int4部署教程:vLLM服务日志分级输出与错误追踪配置
通义千问1.8B-Chat-GPTQ-Int4部署教程vLLM服务日志分级输出与错误追踪配置1. 环境准备与快速部署在开始之前我们先简单了解一下这个模型。通义千问1.8B-Chat-GPTQ-Int4是一个经过量化处理的中文对话模型体积小巧但能力不错特别适合在资源有限的服务器上部署。vLLM是一个高效的推理引擎能让模型运行得更快更稳定。首先确保你的环境满足以下要求Ubuntu 18.04 或 CentOS 7 系统Python 3.8 或更高版本至少 8GB 内存推荐 16GBNVIDIA GPU推荐 8GB 显存安装基础依赖# 创建虚拟环境 python -m venv qwen_env source qwen_env/bin/activate # 安装核心依赖 pip install vllm0.2.6 pip install chainlit0.6.0 pip install torch2.0.1下载模型文件如果还没有的话# 创建模型目录 mkdir -p /root/workspace/models cd /root/workspace/models # 这里需要从合法渠道获取模型文件 # 假设模型文件已经放置在当前目录2. vLLM服务部署与配置2.1 基础服务启动让我们先启动最基本的vLLM服务# 启动vLLM服务 python -m vllm.entrypoints.api_server \ --model /root/workspace/models/Qwen1.5-1.8B-Chat-GPTQ-Int4 \ --host 0.0.0.0 \ --port 8000 \ --gpu-memory-utilization 0.8这个命令会启动一个API服务器监听8000端口。--gpu-memory-utilization 0.8表示使用80%的GPU显存你可以根据实际情况调整。2.2 验证服务状态服务启动后检查是否部署成功# 查看服务日志 cat /root/workspace/llm.log如果看到类似下面的输出说明服务启动成功INFO: Started server process [12345] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:80003. 日志分级输出配置3.1 理解vLLM日志级别vLLM支持多种日志级别从详细到简洁DEBUG最详细的日志包含所有操作细节INFO一般信息适合日常监控WARNING警告信息需要关注但不会影响服务ERROR错误信息需要立即处理3.2 配置分级日志输出创建日志配置文件logging_config.yamlversion: 1 formatters: detailed: format: %(asctime)s - %(name)s - %(levelname)s - %(message)s simple: format: %(levelname)s: %(message)s handlers: console: class: logging.StreamHandler level: INFO formatter: simple stream: ext://sys.stdout file: class: logging.handlers.RotatingFileHandler level: DEBUG formatter: detailed filename: /root/workspace/vllm_debug.log maxBytes: 10485760 backupCount: 5 error_file: class: logging.handlers.RotatingFileHandler level: ERROR formatter: detailed filename: /root/workspace/vllm_errors.log maxBytes: 10485760 backupCount: 3 loggers: vllm: level: DEBUG handlers: [console, file, error_file] propagate: no root: level: INFO handlers: [console]3.3 使用配置启动服务现在使用配置好的日志系统启动服务python -m vllm.entrypoints.api_server \ --model /root/workspace/models/Qwen1.5-1.8B-Chat-GPTQ-Int4 \ --host 0.0.0.0 \ --port 8000 \ --gpu-memory-utilization 0.8 \ --log-config logging_config.yaml4. 错误追踪与监控配置4.1 实时错误监控设置一个简单的错误监控脚本# error_monitor.py import time import subprocess from datetime import datetime def monitor_errors(): error_keywords [ERROR, Exception, Traceback, failed, error] last_position 0 while True: try: with open(/root/workspace/vllm_errors.log, r) as f: f.seek(last_position) new_lines f.readlines() last_position f.tell() for line in new_lines: if any(keyword in line for keyword in error_keywords): print(f[{datetime.now()}] 检测到错误: {line.strip()}) # 这里可以添加邮件或消息通知 except FileNotFoundError: print(错误日志文件不存在等待创建...) time.sleep(30) if __name__ __main__: monitor_errors()运行监控脚本python error_monitor.py /root/workspace/monitor.log 21 4.2 性能监控配置添加性能监控到日志配置中# 在之前的logging_config.yaml中添加 handlers: # ... 其他handler配置 performance: class: logging.handlers.RotatingFileHandler level: INFO formatter: detailed filename: /root/workspace/vllm_performance.log maxBytes: 10485760 backupCount: 2 loggers: vllm.engine: level: INFO handlers: [performance] propagate: no5. Chainlit前端集成与调用5.1 Chainlit基础配置创建Chainlit配置文件chainlit.md# chainlit_app.py import chainlit as cl import aiohttp import json cl.on_message async def main(message: cl.Message): # 准备请求数据 payload { model: Qwen1.5-1.8B-Chat-GPTQ-Int4, messages: [ {role: user, content: message.content} ], temperature: 0.7, max_tokens: 1024 } async with aiohttp.ClientSession() as session: async with session.post( http://localhost:8000/v1/chat/completions, jsonpayload, timeout30 ) as response: if response.status 200: data await response.json() reply data[choices][0][message][content] await cl.Message(contentreply).send() else: error_msg await response.text() await cl.Message( contentf请求失败: {response.status} - {error_msg} ).send() cl.on_chat_start async def start(): await cl.Message( content您好我是基于通义千问1.8B模型的AI助手有什么可以帮您的吗 ).send()5.2 启动Chainlit服务# 启动Chainlit前端 chainlit run chainlit_app.py -w --port 7860打开浏览器访问http://你的服务器IP:7860就能看到聊天界面了。5.3 前端日志集成为Chainlit也配置日志# 在chainlit_app.py开头添加 import logging from logging.handlers import RotatingFileHandler # 配置日志 handler RotatingFileHandler( /root/workspace/chainlit.log, maxBytes10*1024*1024, backupCount3 ) handler.setFormatter(logging.Formatter( %(asctime)s - %(name)s - %(levelname)s - %(message)s )) logger logging.getLogger(chainlit_app) logger.setLevel(logging.INFO) logger.addHandler(handler) # 在消息处理函数中添加日志 cl.on_message async def main(message: cl.Message): logger.info(f收到用户消息: {message.content}) # ... 原有代码6. 常见问题解决6.1 服务启动问题如果服务启动失败首先检查# 检查端口占用 netstat -tlnp | grep 8000 # 检查模型路径 ls -la /root/workspace/models/ # 检查GPU驱动 nvidia-smi6.2 内存不足处理如果遇到内存不足的问题# 减少GPU内存使用 python -m vllm.entrypoints.api_server \ --model /root/workspace/models/Qwen1.5-1.8B-Chat-GPTQ-Int4 \ --host 0.0.0.0 \ --port 8000 \ --gpu-memory-utilization 0.6 # 降低内存使用率6.3 日志文件过大如果日志文件增长太快# 设置日志轮转 # 已经在上面的配置中设置了每个日志文件最大10MB保留3-5个备份 # 手动清理旧日志 find /root/workspace -name *.log* -mtime 7 -delete7. 总结通过本教程你应该已经成功部署了通义千问1.8B-Chat-GPTQ-Int4模型并配置了完整的日志系统和错误监控。关键要点包括分级日志配置了不同级别的日志输出方便问题排查错误追踪设置了实时错误监控和报警前端集成使用Chainlit创建了友好的聊天界面性能优化根据硬件情况调整了内存使用参数现在你的模型服务应该运行稳定有了完善的监控体系能够及时发现和解决问题。记得定期检查日志文件确保服务正常运行。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章