Qwen3.5-4B-AWQ部署案例:Qwen3.5-4B-AWQ与FastAPI封装API服务
1. 项目概述
Qwen3.5-4B-AWQ-4bit是阿里云通义千问团队推出的轻量级稠密模型,经过4bit AWQ量化后显存占用仅约3GB,可以在RTX 3060/4060等消费级显卡上流畅运行。该模型在保持轻量化的同时,性能表现优异:
- 性能均衡:MMLU-Pro得分接近Qwen3-30B-A3B,OmniDocBench击败GPT-5-Nano
- 全能力覆盖:支持201种语言、原生多模态(图文)、长上下文、工具调用
- 部署友好:适配llama.cpp、vLLM等多种推理引擎
2. 环境准备与快速部署
2.1 基础环境要求
- 操作系统:Linux(推荐Ubuntu 20.04+)
- 显卡驱动:NVIDIA驱动515+
- CUDA版本:11.8+
- Python环境:3.9+
2.2 快速安装步骤
# 创建conda环境 conda create -n qwen35 python=3.9 -y conda activate qwen35 # 安装基础依赖 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install vllm fastapi uvicorn2.3 模型下载与配置
# 下载模型(假设模型已存放在指定路径) export MODEL_PATH=/root/ai-models/cyankiwi/Qwen3___5-4B-AWQ-4bit # 验证模型完整性 ls -lh $MODEL_PATH3. FastAPI服务封装
3.1 基础API服务实现
创建api_service.py文件:
from fastapi import FastAPI from vllm import LLM, SamplingParams app = FastAPI() # 初始化模型 llm = LLM(model="/root/ai-models/cyankiwi/Qwen3___5-4B-AWQ-4bit") @app.post("/generate") async def generate_text(prompt: str, max_tokens: int = 256): sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=max_tokens) output = llm.generate(prompt, sampling_params) return {"response": output[0].text}3.2 启动API服务
uvicorn api_service:app --host 0.0.0.0 --port 80003.3 服务测试
使用curl测试API:
curl -X POST "http://localhost:8000/generate" \ -H "Content-Type: application/json" \ -d '{"prompt":"请介绍一下Qwen3.5模型的特点","max_tokens":200}'4. 生产环境部署
4.1 Supervisor配置
创建/etc/supervisor/conf.d/qwen35.conf:
[program:qwen35-api] command=/opt/miniconda3/envs/qwen35/bin/uvicorn api_service:app --host 0.0.0.0 --port 8000 directory=/root/Qwen3.5-4B-AWQ-4bit autostart=true autorestart=true stderr_logfile=/root/Qwen3.5-4B-AWQ-4bit/logs/api.err.log stdout_logfile=/root/Qwen3.5-4B-AWQ-4bit/logs/api.log4.2 服务管理命令
# 重载supervisor配置 supervisorctl reread supervisorctl update # 服务管理 supervisorctl start qwen35-api supervisorctl stop qwen35-api supervisorctl restart qwen35-api4.3 开机自启
确保supervisor服务已启用开机自启:
systemctl enable supervisor5. 常见问题解决
5.1 显存不足问题
# 检查显存占用 nvidia-smi # 终止残留进程 kill -9 $(ps aux | grep 'vllm' | awk '{print $2}')5.2 API性能优化
在api_service.py中添加批处理支持:
@app.post("/batch_generate") async def batch_generate(prompts: list, max_tokens: int = 256): sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=max_tokens) outputs = llm.generate(prompts, sampling_params) return {"responses": [output.text for output in outputs]}6. 总结
通过本文的部署方案,我们实现了:
- 轻量化部署:4bit量化模型仅需3GB显存,消费级显卡即可运行
- 高效API服务:基于FastAPI和vLLM构建高性能推理服务
- 生产就绪:通过Supervisor实现服务管理和自动恢复
- 灵活扩展:支持单条和批量请求,满足不同场景需求
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。