通义千问1.5-1.8B-Chat-GPTQ-Int4一键部署教程:基于Ubuntu 20.04的完整环境搭建

想试试最新的通义千问小模型,但被复杂的部署步骤劝退?别担心,今天咱们就来个保姆级教程,手把手带你从零开始,在Ubuntu 20.04系统上把通义千问1.5-1.8B-Chat-GPTQ-Int4模型跑起来。整个过程就像搭积木,跟着步骤走,半小时内你就能拥有一个属于自己的AI对话服务。

这篇教程会覆盖从创建云服务器到最终验证服务的全流程,重点解决新手常遇到的网络、权限和环境问题。就算你之前没怎么接触过Linux命令行,也能轻松搞定。

1. 环境准备:创建你的专属GPU服务器

部署AI模型,尤其是对话模型,有GPU支持会快很多。咱们第一步就是去创建一个带GPU的云服务器实例。

1.1 选择GPU实例

现在很多云平台都提供带GPU的实例,你可以根据自己的预算和需求选择。对于通义千问1.5-1.8B这个尺寸的模型,一块中等算力的GPU(比如NVIDIA T4或同等级别)就完全够用了,成本也相对可控。

创建实例时,操作系统记得选择 Ubuntu 20.04。这个版本比较稳定,社区支持也好,能避免很多不必要的兼容性问题。实例的其他配置,比如CPU核心数和内存,选择平台推荐的通用配置即可,通常4核8G或8核16G的搭配就足够流畅运行了。

1.2 配置安全组与网络

实例创建好后,有一件非常重要的事:配置安全组(或者叫防火墙规则)。你需要开放模型服务将要使用的端口,比如默认的 8000 端口。

具体操作是在云平台的控制台,找到你的实例,进入安全组或防火墙设置,添加一条入站规则:允许TCP协议访问8000端口,来源可以暂时设置为0.0.0.0/0(允许所有IP访问,测试用)或者更安全地设置为你的本地IP地址。这一步是为了确保你之后能从自己的电脑访问到服务器上的模型服务。

最后,记下云平台分配给你的服务器公网IP地址,后面会用到。

2. 连接服务器与基础环境搭建

拿到服务器IP后,咱们就可以连上去开始干活了。

2.1 通过SSH连接服务器

打开你电脑上的终端(Windows用户可以用PowerShell或Putty等SSH工具),使用下面的命令连接。记得把 <你的服务器IP> 替换成你刚才记下的那个地址。

ssh ubuntu@<你的服务器IP>

第一次连接时会提示你确认主机密钥,输入 yes 就行。然后会要求你输入创建实例时设置的密码或者密钥。连接成功后,你的命令行提示符会变成类似 ubuntu@your-instance-name:~$ 的样子,这说明你已经成功登录到远程服务器了。

2.2 更新系统与安装基础工具

连上服务器后,第一件事是更新系统软件包列表,确保我们安装的都是最新版本的软件。

sudo apt update && sudo apt upgrade -y

这个命令可能会运行几分钟。完成后,我们安装一些后续步骤可能需要的工具,比如用于下载文件的 wgetcurl

sudo apt install -y wget curl

3. 部署通义千问模型服务

基础环境搞定,现在进入核心环节:拉取并运行模型镜像。这里我们使用Docker,它能帮我们省去手动安装Python环境、CUDA驱动等一大堆麻烦事。

3.1 拉取模型Docker镜像

Docker镜像已经打包好了模型和所有运行环境。我们直接拉取即可。在命令行中输入:

docker pull your-model-mirror-registry/qwen1.5-1.8b-chat-gptq-int4:latest

请注意:这里的镜像地址 your-model-mirror-registry/ 是一个占位符。你需要将其替换为实际的、可用的模型镜像仓库地址。通常你可以在模型的官方文档或你获取模型的平台找到正确的镜像名称。拉取镜像需要一些时间,取决于你的网络速度和镜像大小,喝杯咖啡等待一下。

3.2 启动模型服务容器

镜像拉取成功后,我们就可以用它来启动一个容器(可以理解为一个轻量级的、隔离的运行环境)。使用下面的命令:

docker run -d --name qwen-chat \
  --gpus all \
  -p 8000:8000 \
  -v /path/to/your/models:/app/models \
  your-model-mirror-registry/qwen1.5-1.8b-chat-gptq-int4:latest

我来解释一下这个命令的几个关键部分:

  • -d:让容器在后台运行。
  • --name qwen-chat:给容器起个名字,方便管理。
  • --gpus all:非常重要!这表示将宿主机的所有GPU资源都分配给这个容器使用。
  • -p 8000:8000:端口映射。将容器内部的8000端口映射到宿主机的8000端口。这样我们通过访问服务器的8000端口就能访问到模型服务。
  • -v /path/to/your/models:/app/models:数据卷挂载。冒号左边是服务器上的一个目录路径(你需要提前创建好,比如mkdir -p /home/ubuntu/models),右边是容器内的目录。这样可以把模型文件或配置文件持久化保存在服务器上,而不是容器里。
  • 最后一行就是你要运行的镜像名。

运行命令后,如果没有报错,会返回一长串容器ID。你可以用 docker ps 命令查看容器是否正在运行。

4. 验证服务与快速测试

服务启动后,我们得确认它真的在正常工作,并且能响应我们的请求。

4.1 检查服务健康状态

首先,我们可以在服务器内部,用最简单的 curl 命令检查服务的健康接口(如果镜像提供了的话)。

curl http://localhost:8000/health

或者,更直接地,测试一下模型的服务端点:

curl -X POST http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen1.5-1.8B-Chat",
    "messages": [{"role": "user", "content": "你好,请介绍一下你自己。"}],
    "stream": false
  }'

如果服务正常,你会看到一段JSON格式的回复,里面包含了模型生成的问候语。

4.2 从本地电脑访问测试

在服务器上测试通过,说明服务本身没问题。接下来,我们要从你自己的笔记本电脑上访问这个服务。打开你电脑上的浏览器或者任何能发HTTP请求的工具(比如Postman)。

在地址栏输入:http://<你的服务器IP>:8000/docs (如果该镜像提供了OpenAPI文档页面)。或者,写一个简单的Python脚本来测试:

在你的电脑上创建一个 test_qwen.py 文件,内容如下:

import requests
import json

server_ip = "<你的服务器IP>"  # 替换成你的服务器公网IP
url = f"http://{server_ip}:8000/v1/chat/completions"

headers = {
    "Content-Type": "application/json"
}

data = {
    "model": "Qwen1.5-1.8B-Chat",
    "messages": [
        {"role": "user", "content": "用一句话解释什么是人工智能。"}
    ],
    "stream": False
}

try:
    response = requests.post(url, headers=headers, data=json.dumps(data), timeout=30)
    if response.status_code == 200:
        result = response.json()
        print("模型回复:", result["choices"][0]["message"]["content"])
    else:
        print(f"请求失败,状态码:{response.status_code}")
        print(response.text)
except requests.exceptions.ConnectionError:
    print("连接失败!请检查:")
    print("1. 服务器IP地址是否正确。")
    print("2. 服务器安全组是否开放了8000端口。")
    print("3. 服务器上的Docker容器是否正在运行(使用 `docker ps` 命令查看)。")
except Exception as e:
    print(f"发生错误:{e}")

保存后,在终端里运行 python test_qwen.py。如果一切顺利,你就能在电脑上看到通义千问模型的回复了。

5. 常见问题与解决思路

部署过程很少一帆风顺,这里总结几个你可能遇到的问题和解决办法。

问题1:docker pulldocker run 速度慢或失败。

  • 原因:网络连接镜像仓库不稳定。
  • 解决:可以尝试配置Docker国内镜像加速器。修改或创建 /etc/docker/daemon.json 文件,添加国内镜像源(如中科大、阿里云镜像源),然后重启Docker服务 (sudo systemctl restart docker)。

问题2:docker run 时报错,提示 --gpus 参数不可用。

  • 原因:服务器没有安装NVIDIA Docker运行时,或者Docker版本太旧。
  • 解决:需要先安装 nvidia-container-toolkit。可以按照NVIDIA官方文档操作,通常步骤是添加仓库、安装工具包,然后重启Docker。

问题3:本地电脑无法访问 http://服务器IP:8000

  • 原因A:云平台安全组/防火墙没开8000端口。
    • 解决:回头检查第一步的安全组设置,确保入站规则正确。
  • 原因B:服务器内部的防火墙(如ufw)阻止了端口。
    • 解决:在服务器上运行 sudo ufw allow 8000/tcp 开放端口,然后 sudo ufw reload
  • 原因C:Docker容器没有成功启动。
    • 解决:在服务器上用 docker logs qwen-chat 查看容器日志,通常错误信息会直接告诉你哪里出错了,比如端口被占用、模型文件缺失等。

问题4:模型响应速度很慢。

  • 原因:首次运行需要加载模型到GPU显存,或者输入的文本很长。
  • 解决:首次查询后,后续请求会快很多。对于1.8B参数量的模型,在T4这样的GPU上,生成一段话通常在几秒内。

6. 总结与后续探索

跟着上面这些步骤走一遍,你应该已经成功在Ubuntu 20.04的服务器上把通义千问1.5-1.8B-Chat模型跑起来了。整个过程的核心其实就是利用Docker把复杂的依赖环境打包,我们只需要做好服务器的基础配置和端口映射就行。

这个部署好的服务,现在就是一个可以通过HTTP API调用的AI对话后端了。你可以用我们测试的Python脚本,或者用更成熟的SDK(比如OpenAI SDK,如果镜像兼容OpenAI API格式的话)来开发自己的应用,比如做个简单的聊天机器人、集成到你的网站里等等。

模型本身是1.8B参数量的Int4量化版本,在保证不错对话能力的同时,对硬件的要求和响应速度都比较友好,特别适合个人开发者或者小规模应用场景拿来尝鲜和做原型验证。如果后续你想尝试更大的模型,或者想用WebUI来交互,也可以在这个基础上,去找对应的镜像来部署,流程都是大同小异的。


获取更多AI镜像

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

Logo

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

更多推荐