保姆级教程:使用vllm部署通义千问1.5-1.8B-Chat-GPTQ-Int4模型

1. 快速了解通义千问1.5-1.8B模型

通义千问1.5-1.8B-Chat-GPTQ-Int4是一个经过量化处理的小型语言模型,专门为资源受限的环境设计。这个模型虽然参数规模不大,但具备了相当不错的文本理解和生成能力。

这个模型有什么特点?

  • 小巧高效:1.8B的参数规模,相比动辄几十B的大模型,对硬件要求更低
  • 量化优化:使用GPTQ-Int4量化技术,在保持性能的同时大幅减少内存占用
  • 对话专用:专门针对聊天场景进行优化,对话效果更加自然
  • 多语言支持:不仅能处理中文,还具备一定的英文和其他语言能力

适合哪些人使用?

  • 想体验大模型但显卡配置不高的开发者
  • 需要本地部署聊天机器人的个人用户
  • 学习AI模型部署的初学者
  • 想要快速验证想法的创业团队

2. 环境准备与快速部署

2.1 系统要求

在开始部署之前,先确认你的环境满足以下要求:

硬件要求

  • GPU:至少4GB显存(推荐8GB以上)
  • 内存:8GB以上
  • 存储:10GB可用空间

软件要求

  • Ubuntu 18.04+ 或 CentOS 7+
  • Python 3.8+
  • CUDA 11.0+(如果使用GPU)

2.2 一键部署步骤

部署过程其实很简单,跟着步骤来就行:

# 1. 拉取镜像(如果你使用的是云服务平台)
# 通常云平台会提供一键部署,这里以本地部署为例

# 2. 创建工作目录
mkdir -p ~/qwen-deployment
cd ~/qwen-deployment

# 3. 安装必要的依赖
pip install vllm chainlit transformers

# 4. 设置环境变量(重要!)
export VLLM_USE_MODELSCOPE=True

重要提示VLLM_USE_MODELSCOPE=True 这个环境变量一定要设置,不然模型无法正确加载。

3. 启动模型服务

3.1 使用vllm启动服务

现在我们来启动模型服务,只需要一行命令:

python -m vllm.entrypoints.openai.api_server \
    --model qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4 \
    --max-model-len 2048 \
    --gpu-memory-utilization 0.8 \
    --port 8000

参数说明

  • --model:指定要加载的模型名称
  • --max-model-len:设置模型最大处理长度,2048对于大多数场景够用了
  • --gpu-memory-utilization:GPU内存使用率,0.8表示使用80%的显存
  • --port:服务监听的端口号

3.2 检查服务状态

服务启动后,怎么知道是否成功了呢?可以通过以下方式检查:

# 查看服务日志
cat /root/workspace/llm.log

# 或者使用curl测试服务
curl http://localhost:8000/v1/models

如果看到返回模型信息,说明服务已经正常启动了。

4. 使用chainlit前端界面

4.1 启动chainlit界面

模型服务启动后,我们可以用chainlit来提供一个漂亮的网页界面:

# 新建一个Python文件
echo 'import chainlit as cl
import openai
import os

openai.api_base = "http://localhost:8000/v1"
openai.api_key = "empty"

@cl.on_message
async def main(message: cl.Message):
    response = openai.ChatCompletion.create(
        model="qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4",
        messages=[{"role": "user", "content": message.content}],
        max_tokens=512
    )
    
    await cl.Message(content=response.choices[0].message.content).send()
' > app.py

# 启动chainlit
chainlit run app.py

4.2 界面使用指南

启动chainlit后,在浏览器打开显示的地址(通常是http://localhost:8001),你会看到一个简洁的聊天界面:

界面功能

  • 中间是聊天区域,可以输入问题
  • 左侧可能有历史对话记录(取决于配置)
  • 响应速度取决于你的硬件配置

使用技巧

  • 问题尽量明确具体,模型理解能力更强
  • 如果回答不理想,可以换种问法再试
  • 复杂问题可以拆分成几个小问题

5. 直接调用API接口

除了使用网页界面,你也可以直接通过API来调用模型:

import openai
import requests
import json

# 设置API参数
url = "http://localhost:8000/v1/chat/completions"
headers = {"Content-Type": "application/json"}
data = {
    "model": "qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4",
    "messages": [
        {"role": "system", "content": "你是一个有帮助的助手"},
        {"role": "user", "content": "请介绍一下你自己"}
    ],
    "max_tokens": 500,
    "temperature": 0.7
}

# 发送请求
response = requests.post(url, headers=headers, data=json.dumps(data))
result = response.json()

print(result['choices'][0]['message']['content'])

API参数说明

  • temperature:控制生成随机性,0-1之间,越大越有创意
  • max_tokens:生成的最大token数
  • top_p:核采样参数,控制生成多样性

6. 实用技巧与常见问题

6.1 提升对话质量的技巧

想要获得更好的对话效果,可以试试这些方法:

提示词工程

# 不好的提问方式
"写一篇文章"

# 好的提问方式
"请写一篇关于人工智能发展历史的科普文章,字数800字左右,语言通俗易懂"

系统提示设置

system_prompt = """你是一个专业的科技作者,擅长用通俗易懂的语言解释复杂的技术概念。
请用中文回答,保持回答的专业性和准确性。"""

6.2 常见问题解决

问题1:模型加载失败

  • 检查网络连接,确保能访问ModelScope
  • 确认设置了 VLLM_USE_MODELSCOPE=True 环境变量

问题2:显存不足

  • 降低 --gpu-memory-utilization 参数值
  • 减少 --max-model-len 参数值

问题3:响应速度慢

  • 检查GPU使用情况,可能是其他程序占用了资源
  • 考虑升级硬件配置

问题4:回答质量不高

  • 尝试调整temperature参数(0.3-0.7之间效果较好)
  • 提供更详细的上下文信息

6.3 性能优化建议

如果你发现性能不够理想,可以尝试这些优化方法:

# 使用更低的精度(如果支持)
python -m vllm.entrypoints.openai.api_server \
    --model qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4 \
    --dtype half \
    --max-model-len 1024 \
    --gpu-memory-utilization 0.7

7. 总结

通过这个教程,你应该已经成功部署了通义千问1.5-1.8B-Chat-GPTQ-Int4模型,并学会了如何使用它。这个模型虽然规模不大,但对于日常的对话、写作辅助、创意生成等任务已经足够用了。

关键收获

  1. 部署简单:使用vllm可以快速部署模型服务
  2. 使用方便:通过chainlit提供友好的网页界面
  3. 资源友好:小显存也能运行大模型
  4. 功能实用:满足基本的文本生成需求

下一步建议

  • 尝试不同的提示词,探索模型的更多能力
  • 考虑将模型集成到你自己的应用中
  • 关注模型更新,新版本可能会有性能提升

最重要的是,多实践多尝试,只有实际使用才能更好地理解模型的能力和限制。祝你使用愉快!


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐