news 2026/4/15 11:55:29

通义千问1.5-1.8B-GPTQ-Int4部署教程:阿里云ECS+GPU实例从0到1完整上线流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通义千问1.5-1.8B-GPTQ-Int4部署教程:阿里云ECS+GPU实例从0到1完整上线流程

通义千问1.5-1.8B-GPTQ-Int4部署教程:阿里云ECS+GPU实例从0到1完整上线流程

想快速体验一个能流畅对话的AI助手,但又担心大模型太吃资源,自己的电脑跑不动?今天,我们就来手把手教你,如何在阿里云ECS上,用一台带GPU的服务器,从零开始部署一个轻量又聪明的AI模型——通义千问1.5-1.8B-Chat-GPTQ-Int4。

这个模型是通义千问家族里的小巧成员,经过GPTQ量化技术压缩到了Int4精度,对显存的需求大大降低。这意味着,你不需要昂贵的A100或H100,用一块消费级的GPU(比如RTX 3090/4090,甚至更早的型号)就能流畅运行。我们将使用高效的vLLM推理框架来部署模型,并用一个简洁美观的Web界面——Chainlit,来和它对话。

整个过程就像搭积木,跟着步骤走,你就能拥有一个专属的、7x24小时在线的AI对话伙伴。无论是用来学习、测试想法,还是作为个人助手,都非常方便。

1. 准备工作:环境与资源

在开始动手之前,我们需要准备好“工地”和“工具”。核心就是一台带GPU的云服务器。

1.1 阿里云ECS GPU实例选购

登录阿里云控制台,进入ECS实例创建页面。这里的关键是选择正确的实例规格:

  • 规格族:推荐选择ecs.gn7i-c8g1.2xlargeecs.gn6i-c4g1.xlarge。这些是搭载了NVIDIA T4或A10显卡的实例,性价比高,非常适合运行我们这类量化后的小模型。
  • 镜像:选择Ubuntu 20.04Ubuntu 22.04的64位公共镜像。这两个版本社区支持好,软件兼容性强。
  • 系统盘:建议至少50GB。模型文件本身不大,但我们需要安装Python、CUDA等一堆工具,留足空间更省心。
  • 安全组:这是服务器的“防火墙”。务必在安全组规则中放行你将要使用的端口,比如我们后面Chainlit默认的7860端口。规则是:协议TCP,端口范围7860,授权对象0.0.0.0/0(如果仅自己测试,可以改成自己的IP地址更安全)。

购买完成后,记下服务器的公网IP地址,我们后面会用它来访问服务。

1.2 连接服务器与基础环境配置

拿到服务器后,我们通过SSH连接它。打开你电脑上的终端(Windows用户可以用PowerShell或Git Bash),输入:

ssh root@你的服务器公网IP

输入密码后,你就进入了服务器的命令行世界。首先,我们更新系统软件包并安装一些必备工具:

# 更新软件包列表 apt-get update # 安装常用工具(wget用于下载,vim用于编辑文件) apt-get install -y wget vim

接下来是最重要的一步:安装NVIDIA显卡驱动和CUDA工具包。阿里云的GPU镜像通常已经预装了驱动,但我们最好确认一下,并安装与vLLM兼容的CUDA。

# 检查GPU驱动是否已安装 nvidia-smi

如果这个命令能正常输出显卡信息(比如看到T4或A10),说明驱动没问题。接下来安装CUDA,vLLM推荐使用CUDA 11.8或12.1。我们以11.8为例:

# 添加NVIDIA包仓库 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" sudo apt-get update # 安装CUDA 11.8 sudo apt-get install -y cuda-11-8

安装完成后,将CUDA路径加入环境变量,让系统能找到它:

echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

最后,安装Python环境。我们使用conda来管理,这样可以方便地创建独立的Python环境,避免包冲突。

# 下载Miniconda安装脚本 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 运行安装脚本(一路按回车和yes) bash Miniconda3-latest-Linux-x86_64.sh # 激活conda source ~/.bashrc

2. 模型部署:使用vLLM启动服务

环境准备好了,现在开始部署模型的核心部分。我们将在一个独立的conda环境中操作。

2.1 创建并激活Python环境

# 创建一个名为‘qwen’的Python 3.9环境 conda create -n qwen python=3.9 -y # 激活这个环境 conda activate qwen

激活后,你的命令行提示符前面应该会显示(qwen),表示已经在这个独立环境里了。

2.2 安装vLLM与模型下载

vLLM是一个高性能的LLM推理和服务引擎,特别擅长通过PagedAttention技术优化显存使用,提升吞吐量。

# 安装vLLM。指定版本以确保兼容性。 pip install vllm==0.2.6

安装完成后,我们就可以用一行命令启动模型服务了。这里我们指定使用通义千问1.5-1.8B-Chat的GPTQ-Int4版本。这个模型文件托管在Hugging Face上。

# 启动vLLM服务。这行命令会下载模型并启动一个API服务器。 python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4 \ --served-model-name Qwen1.5-1.8B-Chat \ --api-key token-abc123 \ --port 8000 \ --host 0.0.0.0

命令参数解释:

  • --model: 指定模型在Hugging Face上的路径。vLLM会自动下载。
  • --served-model-name: 给服务起的名字,调用时会用到。
  • --api-key: 设置一个简单的API密钥,增加一点基础安全性(这里示例为token-abc123,你可以改成自己的)。
  • --port: 服务监听的端口,这里是8000。
  • --host 0.0.0.0: 允许任何网络接口访问,这样你才能从自己电脑访问云服务器的服务。

注意:第一次运行会下载模型文件(大约几个GB),需要一些时间,请耐心等待。看到输出日志中显示“Uvicorn running on...”并且没有报错时,说明模型服务已经成功启动在后台了。

为了让服务在后台稳定运行,并且方便查看日志,我们可以使用nohup命令:

# 使用nohup在后台运行,并将日志输出到llm.log文件 nohup python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4 \ --served-model-name Qwen1.5-1.8B-Chat \ --api-key token-abc123 \ --port 8000 \ --host 0.0.0.0 > /root/workspace/llm.log 2>&1 &

2.3 验证模型服务

服务启动后,如何确认它真的在正常工作呢?有两种简单的方法。

方法一:查看日志文件我们刚才把日志输出到了/root/workspace/llm.log。用cat命令查看这个文件的末尾几行:

cat /root/workspace/llm.log

如果你看到类似下面的输出,里面有“Loading model weights...”和“Model loaded in … s”这样的信息,最后是“Uvicorn running on http://0.0.0.0:8000”,那就恭喜你,模型加载成功了!

(此处原文档有一张图片,显示日志加载成功的截图,内容为终端中显示模型加载完成的日志信息。)

方法二:直接调用API测试打开另一个终端窗口,SSH连接到服务器,激活qwen环境,然后用curl命令模拟一个API请求:

curl http://localhost:8000/v1/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer token-abc123" \ -d '{ "model": "Qwen1.5-1.8B-Chat", "prompt": "你好,请介绍一下你自己。", "max_tokens": 100 }'

如果返回一个包含生成文本的JSON响应,那就证明API服务完全正常。

3. 前端搭建:用Chainlit打造聊天界面

模型服务在8000端口跑起来了,但通过命令行curl对话太不友好。我们给这个“大脑”配上一个漂亮的“脸蛋”——Chainlit。它是一个专门为对话式AI应用设计的Python框架,能快速生成Web界面。

3.1 安装与编写Chainlit应用

首先,在同一个qwen环境下安装Chainlit:

pip install chainlit openai

然后,创建一个Python脚本作为我们的前端应用。我们把它命名为app.py

vim app.py

i进入编辑模式,粘贴以下内容:

import chainlit as cl from openai import OpenAI # 配置连接到我们本地的vLLM服务 client = OpenAI( api_key="token-abc123", # 和启动vLLM时设置的api-key一致 base_url="http://localhost:8000/v1" # vLLM服务的地址 ) @cl.on_message async def main(message: cl.Message): """ 每当用户在前端发送消息时,这个函数就会被调用。 """ # 创建一个消息提示,告诉模型它的角色 prompt = f"你是一个乐于助人的AI助手。请回答用户的问题。\n\n用户:{message.content}\n助手:" # 发送请求到vLLM API response = client.completions.create( model="Qwen1.5-1.8B-Chat", # 模型名称,和启动时--served-model-name一致 prompt=prompt, max_tokens=512, temperature=0.7, # 控制创造性,0.0最确定,1.0最随机 stream=True # 启用流式输出,实现打字机效果 ) # 准备一个空的回复对象 msg = cl.Message(content="") # 流式接收响应并逐步发送到前端 async for chunk in response: if chunk.choices[0].text: await msg.stream_token(chunk.choices[0].text) # 流式传输完成后,发送最终消息 await msg.send()

Esc键,然后输入:wq保存并退出vim。

3.2 启动Chainlit前端

现在,启动Chainlit应用。我们同样让它监听一个端口(比如7860),并允许外部访问:

chainlit run app.py --port 7860 --host 0.0.0.0

你会在终端看到输出,告诉你应用运行在http://0.0.0.0:7860

(此处原文档有一张图片,显示Chainlit前端界面打开的截图,内容为一个简洁的网页聊天界面。)

3.3 访问与对话

打开你电脑的浏览器,在地址栏输入:http://你的服务器公网IP:7860

如果一切顺利,你将看到一个清爽的聊天界面。在底部的输入框里,尝试问它一些问题吧,比如“写一首关于春天的诗”或者“用Python写一个计算斐波那契数列的函数”。

(此处原文档有一张图片,显示在Chainlit界面中提问并得到回答的截图,内容为AI模型生成的回复文本。)

看到模型流畅地生成回复,是不是很有成就感?你的个人AI助手已经正式上线了!

4. 总结与后续建议

回顾一下,我们完成了从云服务器选购、环境配置、模型部署到前端搭建的完整流程。你现在拥有一个:

  1. 低成本运行:得益于GPTQ-Int4量化,模型在消费级GPU上也能快速响应。
  2. 高性能服务:vLLM引擎保证了高效的推理速度和吞吐量。
  3. 友好界面:Chainlit提供了开箱即用的美观聊天界面。
  4. 云端可访问:部署在阿里云上,你可以随时随地通过浏览器访问它。

一些实用的进阶建议:

  • 保持服务运行:我们教程中用nohup启动的服务,在关闭SSH窗口后可能会停止。对于生产环境,建议使用systemdsupervisor这样的进程管理工具来守护进程,确保服务在服务器重启后也能自动运行。
  • 安全加固:教程中使用了简单的API Key。在实际公开部署时,你应该设置更复杂的密钥,并考虑在Chainlit应用前增加一层反向代理(如Nginx),并配置HTTPS(SSL证书)来加密通信。
  • 探索更多功能:Chainlit支持标记消息角色、显示文件、添加侧边栏等。vLLM也支持批量推理、参数调整等高级功能。你可以根据需求进一步定制。
  • 模型切换:这套流程不仅适用于通义千问。你只需修改vLLM启动命令中的--model参数为Hugging Face上的其他GPTQ量化模型(如Llama、ChatGLM等),就可以用同样的方式部署其他模型。

希望这个教程能帮你顺利踏出AI模型部署的第一步。动手实践的过程,就是最好的学习。


获取更多AI镜像

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 14:26:19

丹青识画一文详解:OFA模型微调适配东方美学语义空间方法

丹青识画一文详解:OFA模型微调适配东方美学语义空间方法 1. 项目背景与核心价值 「丹青识画」智能影像雅鉴系统是一款将前沿深度学习技术与东方美学视觉完美融合的智能交互产品。这个系统的核心理念是"以科技之眼,点画意之睛",通…

作者头像 李华
网站建设 2026/4/7 12:20:45

PETRV2-BEV安全审计:对抗样本攻击与防御

PETRV2-BEV安全审计:对抗样本攻击与防御 自动驾驶系统正变得越来越智能,但随之而来的安全问题也日益凸显。想象一下,如果路上一个不起眼的涂鸦或者贴纸,就能让自动驾驶汽车“看错”路况,后果会怎样?这并非…

作者头像 李华
网站建设 2026/4/10 17:45:06

Qwen3-ASR-1.7B低资源环境部署:4GB显存GPU运行指南

Qwen3-ASR-1.7B低资源环境部署:4GB显存GPU运行指南 1. 为什么需要在4GB显存上跑Qwen3-ASR-1.7B 你可能已经注意到,Qwen3-ASR-1.7B是个功能很全的语音识别模型,支持52种语言和方言,能处理带背景音乐的歌曲,甚至在老人…

作者头像 李华
网站建设 2026/4/9 15:39:16

漫画脸生成在元宇宙中的应用:Web3.0数字身份设计

漫画脸生成在元宇宙中的应用:Web3.0数字身份设计 想象一下,在未来的虚拟世界里,你的数字形象不再是一串冰冷的代码或一个千篇一律的默认模型,而是一个独一无二、充满个性、甚至能代表你现实世界特质的卡通化身。这个化身可以自由…

作者头像 李华
网站建设 2026/4/13 11:13:35

GitHub使用全攻略:参与FLUX小红书V2开源项目的最佳实践

GitHub使用全攻略:参与FLUX小红书V2开源项目的最佳实践 你是不是也遇到过这种情况?在网上看到一个特别酷的开源项目,比如最近很火的“FLUX小红书V2”这种AI图像生成模型,想下载下来试试,或者发现了一个小bug想帮忙修复…

作者头像 李华