首页 GPU 云服务器部署 Qwen2.5 模型

GPU 云服务器部署 Qwen2.5 模型

更新时间: 2025-01-26 12:07:14

手动部署

60

https://www.aliyun.com/solution/tech-solution/qwen2-5-for-platforms

方案概览

本方案旨在介绍如何将 Qwen2.5 开源模型部署到 GPU 云服务器。在 GPU 云服务器上安装与配置vLLM 和 Open WebUI。vLLM 负责托管 Qwen2.5 模型,Open WebUI 则为用户提供友好的交互界面。GPU 云服务器凭借其高性能并行计算架构,可以显著加速大模型的推理过程,特别是在处理大规模数据和高并发场景,可以有效提升推理速度和推理吞吐。专有网络 VPC 和交换机用于资源隔离和安全管理,确保数据传输的安全性和网络的高可靠性。方案以 Qwen2.5:7B 为例进行演示,用户可以根据实际需求选择其他参数规模的 Qwen2.5 模型,并相应调整实例规格配置。

方案架构

按照本方案提供的配置完成部署后,会在阿里云上搭建一个如下图所示的运行环境。实际部署时,您可根据具体的资源规划调整部分配置,但最终的运行环境将与下图展示的架构相似。p881923

本方案的技术架构包括以下云服务:

  • 1 个 GPU 云服务器:用于部署模型服务与 Web 应用。

  • 1 个专有网络 VPC将 GPU 云服务器实例部署在专有网络中。

  • 1 台交换机:将 GPU 云服务器实例部署在交换机中。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为阿里云账号充值:假设您选择本文示例规格资源,且资源运行时间不超过 1 小时,预计费用将不超过 15 元。实际情况中可能会因您操作过程中实际使用的流量差异,会导致费用有所变化,请以控制台显示的实际报价以及最终账单为准。

环境准备

10

在开始部署模型之前,需要进行一系列的环境准备工作。这些步骤包括创建专有网络 VPC 和交换机、配置安全组、创建 GPU 云服务器实例。

一、创建专有网络 VPC 和交换机

您需要创建专有网络 VPC 和交换机,为云服务器 ECS 实例构建云上的私有网络。

  1. 登录专有网络管理控制台

  2. 在顶部菜单栏,选择华东 1(杭州)地域。

  3. 在左侧导航栏,单击专有网络

  4. 专有网络页面,单击创建专有网络

  5. 创建专有网络页面,配置 1 个专有网络和 1 台交换机。配置交换机时,请确保交换机所属的可用区的 ECS 是可用状态。

    项目

    说明

    示例值

    VPC 名称

    建议您在部署过程中新建一个 VPC 作为本方案的专有网络。部署过程中填写 VPC 名称即可创建对应名称的 VPC。

    长度为 2~128 个字符,以英文大小写字母或中文开头,可包含数字、下划线(_)和连字符(-)。

    VPC_HZ

    IPv4 网段

    在创建 VPC 时,您必须按照无类域间路由块(CIDR block)的格式为您的专有网络划分私网网段。阿里云 VPC 支持的网段信息请参见专有网络组成部分

    在网络规划时可以按照管理网段-开发网段-测试网段-生产网段等规则做好规划。网段一旦投入使用,调整过程复杂,因此规划十分重要。

    192.168.0.0/16

    交换机名称

    建议您在部署过程中在新建的 VPC 内创建虚拟交换机。部署过程中填写交换机名称即可创建对应名称的虚拟交换机。

    长度为 2~128 个字符,以英文大小写字母或中文开头,可包含数字、下划线(_)和连字符(-)。

    vsw

    可用区

    建议选择排序靠后的,一般此类可用区较新。新可用区资源更充沛,新规格也会在新的可用区优先上线。

    杭州 可用区 J

二、创建安全组

您已经创建了专有网络 VPC 和交换机。接下来您需要创建 1 个安全组,用于限制该专有网络 VPC 下交换机的网络流入和流出。

  1. 登录ECS 管理控制台

  2. 在左侧导航栏,选择网络与安全>安全组

  3. 在顶部菜单栏,选择华东 1(杭州)地域。

  4. 安全组页面,单击创建安全组

  5. 创建安全组页面,创建 1 个安全组。

    项目

    说明

    示例值

    名称

    设置安全组的名称。

    sg

    网络

    选择之前规划的专有网络 VPC。

    VPC_HZ

    安全组类型

    本方案用于为个人用户或组织的基础场景提供网络访问控制,建议您选择普通安全组。

    普通安全组

    入方向

    本方案需要确保 22、3000 端口号开启。

    223000

三、创建 GPU 云服务器

您已经创建好专有网络 VPC 和交换机等资源。接下来您需要创建 1 个 GPU 云服务器实例,用于部署应用程序。

  1. 登录ECS 管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏,选择华东 1(杭州)地域。

  4. 实例页面,单击创建实例

  5. 下表中未说明的参数,在本方案中可使用默认值。

    项目

    说明

    示例值

    付费类型

    付费类型影响实例的计费和收费规则。ECS 计费的详细信息请参见计费方式概述

    按量付费

    地域

    实例所在地域

    华东 1(杭州)

    网络及可用区

    选择刚刚创建的专有网络 VPC 和交换机。

    VPC_HZ、vsw

    实例

    ECS 的实例规格及内核、vCPU 数量。关于 ECS 选型的最佳实践请参见实例规格选型指导

    说明

    建议选择配备 16GB 及以上 GPU 显存的实例,例如 ecs.gn6i-c16g1.4xlarge、ecs.gn6i-c24g1.12xlarge或ecs.gn7i-c32g1.8xlarge。

    ecs.gn6i-c8g1.2xlarge

    镜像

    ECS 的“装机盘”,为 ECS 实例提供操作系统、预装软件等。

    公共镜像中选择 Ubuntu

    镜像版本

    镜像的版本。

    Ubuntu 22.04 64位

    安装 GPU 驱动

    image

    勾选安装 GPU 驱动,在下拉列表中选择 CUDA 版本 12.4.1 / Driver 版本 550.90.07 / CUDNN 版本 9.2.0.82

    系统盘类型

    硬盘类型。

    ESSD 云盘

    系统盘容量

    硬盘容量。

    100 GiB

    公网 IP

    用于访问外网和提供企业门户网站服务。

    选中分配公网 IPv4 地址

    带宽计费方式

    由于本方案为解决方案示例,因此选择按使用流量,以节省流量成本。

    按使用流量(CDT)

    带宽值

    本方案以 5 Mbps 为例。

    5 Mbps

    安全组

    使用之前创建的安全组。选择已有安全组

    sg

    管理设置

    选择设置自定义密码,方便后续登录机器安装服务环境。

    自定义密码

部署 vLLM 和 Open WebUI 应用

45

接下来我们使用 vLLM 框架来部署 Qwen2.5 模型,使用 Open WebUI 调用模型服务。vLLM 是一个易于使用的大语言模型推理框架,具有先进的服务吞吐量、高效的注意力键值内存管理、连续批处理输入请求、优化的 CUDA 内核等功能。

Open WebUI 是一款开源项目,提供了一个直观的图形用户界面(GUI),极大地简化了模型的管理和操作流程。通过 Open WebUI,用户可以轻松地与部署的 Qwen2.5 模型进行交互。

  1. 单击云服务器实例右侧的远程连接image

  2. 在远程连接弹窗中点击立即登录按钮。image

  3. 输入密码并点击确定按钮,通过 Workbench 远程连接至 ECS 后台image

  4. 如图所示 GPU 驱动尚未完成安装,请等待 10-20 分钟,安装完成后实例将自动重启。image

  5. GPU 驱动完成安装后,再次登录实例。执行以下脚本部署 vLLM 和 Open WebUI 两个容器。脚本还会在 vLLM 容器中部署 Qwen2.5 模型。

    curl -fsSL https://help-static-aliyun-doc.aliyuncs.com/install-script/qwen2.5-for-platforms/install.sh|bash
说明
  1. 部署 vLLM 和 Open WebUI 大约需要 40 分钟左右,请您耐心等待。

  2. 如果未按照推荐规格选择实例,可能出现显存不足的问题。

    1. 报错信息如下,提示 GPU 显存不足。

      torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 296.00 MiB. GPU 0 has a total capacity of 14.74 GiB of which 242.12 MiB is free. Process 82327 has 14.50 GiB memory in use. Of the allocated memory 14.31 GiB is allocated by PyTorch, and 47.14 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation.  See documentation for Memory Management  (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)
    2. 显存不足问题的几种解决方法:

      1. 更改实例规格,选择具有更高 GPU 显存的实例,或者采用多块 GPU 进行分布式推理

      2. 选择参数规模更小的模型,例如 Qwen2.5:1.5B 或者 Qwen2.5:3B 的模型。

      3. 选择 GPTQ 或者 AWP 量化后的模型,通过降低模型权重的精度来减少显存消耗,同时尽可能保持模型的性能。参考量化模型效果评估,量化对模型的关键指标(如准确率、推断速度)的影响相对有限。

应用体验

3

  1. 打开云服务器 ECS 控制台,定位当前创建的 GPU 云服务器实例,复制公网 IP。image

  2. 在浏览器中访问http://<ECS公网IP>:3000,登录 Open WebUI。如果在下拉列表中未显示可用的模型,表明 vLLM 容器中还在下载模型。请稍等几分钟,然后尝试刷新页面以更新模型列表image

  3. 模型部署成功后如下图所示。image

  4. 可以在对话框中与系统进行交互,调用模型服务获得相应的响应。image

  5. Qwen2.5 模型具备支持超过 29 种语言的能力,例如能够用法语进行自我介绍。image

  6. 由于融入了领域专业专家模型,Qwen2.5 的知识广度和在编码与数学领域的能力都显著提升。我们可以提出一道数学题,Qwen2.5 能够给出正确的解答。image

  7. 点击image图标,选择本地文档上传,可以使用我们提供的“百炼”手机详细参数.docximage

  8. 针对当前文档撰写提示词“总结文档内容”。image

  9. 可以看到 Qwen2.5 模型成功提炼出了文档的关键信息。image

说明

Open WebUI 中文设置:

  1. 点击右上角image图标,在展开的下拉列表中选择 Settingsimage

  2. Settings 弹窗中,选择 General > Languageimage

  3. 在展开的下拉列表中找到并点击 Chinese(简体中文)image

  4. 页面会自动刷新,此时 Open WebUI 的界面语言已切换为简体中文,点击保存按钮后关闭弹窗。image

完成及清理

2

清理资源

  1. 释放 1 台 GPU 云服务器实例:登录ECS 控制台,在实例页面,找到目标实例,然后在操作列选择216更多-竖向..png>释放,根据界面提示释放实例。

  2. 删除 1 个安全组:登录云服务器管理控制台,在安全组页面,选择目标安全组,然后在操作列单击删除

  3. 释放 1 台交换机:登录专有网络控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。

  4. 释放 1 个专有网络 VPC:登录专有网络控制台,在专有网络页面,找到目标 VPC,然后在操作列单击删除,按照界面提示释放实例。