边缘云AI推理最佳实践

随着大模型的发展,将推动AI从大规模集中训练向分布式推理应用转换。边缘节点服务 ENS可以一站式提供靠近终端用户的、全域覆盖的、弹性分布式算力资源,通过终端数据就近计算和处理,优化响应时延、中心负荷和整体成本。本方案将为您介绍如何使用边缘节点服务 ENS构建面向AI推理场景的基础资源环境。

前提条件

  • 您已开通边缘节点服务 ENS,详情请参考开通服务

  • 请确保您已完成边缘云节点VPC创建及网段规划。

资源评估

边缘云异构算力概述

边缘云在广分布的节点上提供了四类不同价位和面向不同场景的异构算力,单卡显存从12G到48G不等,后续也会根据GPU的发展不断扩展算力规格。

卡分类

显存(GB)

资源规格

A

12

A*1

-

-

-

B

16

B*1

B*2

B*4

-

C

24

C*1

C*2

C*4

C*8

D

48

D*1

D*2

-

-

以千问和LLaMA2模型为例,可以覆盖0.5B~72B不同参数规模的大模型应用,支持如:轻量化对话、智能客服、文生图、视频理解、代码生成、内容创作和智能助理等多种业务场景。您可以根据业务需求,灵活选择不同规格的异构算力资源。

模型参数量

推理可选资源

1B

A*1

B*1

C*1

D*1

7B

-

B*1

C*1

D*1

14B

-

B*2

C*2

D*1

32B

-

B*4

C*4

D*2

72B

-

-

C*8

-

说明

这里的显存需求和选型是按照FP16精度进行评估的,如果精度下降还可以支持更大参数规模的模型。

边缘云配套能力概述

为了更好地支持边缘AI推理业务,边缘云在不同层面还提供了配套的增值能力,您可以根据业务需求,选择适合的配套能力搭建边缘AI推理基础环境。

image
  1. 基础资源层:除了提供异构算力外,还提供了CPU算力和存储服务,帮助客户做数据持久化。

  2. 资源配置层:提供完备的网络服务,如NAT、负载均衡、EIP等能力,同时提供了容器服务,并可以通过容器多开技术帮助客户在一个异构算力实例内运行多个容器服务,提升单实例资源利用率,从而实现成本优化。

  3. 业务加速层:为了帮助客户提升推理性能,在业务加速层提供了阿里云自研的AIACC推理加速引擎,以及开源的TensorRT工具包,支持使用不同加速方案的业务落地。

  4. 业务调度层:边缘云还提供了业务调度能力,用户可以将业务调度托管到边缘云,由边缘云根据调度策略就近接入客户,并可在节点故障或就近资源不足时,将业务调度到可用节点,同时通过协同存储实现不同节点间的用户数据同步,确保在任意节点用户服务接入的一致性体验。

边缘AI推理基础环境搭建实践

步骤一:创建异构算力资源

  1. 登录ENS控制台

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

  3. 实例页面,单击创建实例,选择对应的异构算力规格完成资源申请,实例创建的具体流程请参见创建实例

    image

说明
  • 异构算力仅支持包年包月付费方式。

  • 具体的实例规格,请在创建前与阿里云商务经理进行确认。

步骤二:创建配套网络资源

  1. 在ENS控制台左侧导航栏网络管理下,选择需要的网络服务进行资源创建。

  2. 如果异构算力需要访问公网或具备公网服务能力,可申请边缘弹性公网IP,具体流程请参见创建和管理边缘弹性公网IP

  3. 如果需要将外部流量分发到后端多台计算实例上同步处理,并且可以消除系统中的单点故障,可申请边缘负载均衡,具体创建流程请参见创建ELB实例

  4. 如果需要具备公网地址转换功能,可申请边缘NAT网关实例,具体创建流程请参见创建和管理边缘NAT网关实例

步骤三:创建配套存储资源

  1. 在ENS控制台左侧导航栏存储与快照下,选择需要的存储服务进行资源创建。

  2. 如果异构算力需要具有存储空间实现数据持久化,可申请云盘,具体流程请参见创建和管理云盘创建实例

  3. 如果需要在多个算力间共享数据,可申请协同存储NAS,具体创建流程请参见创建并管理文件系统

步骤四:部署推理加速引擎

  1. 在虚机中部署自研AIACC推理加速引擎(以Ubuntu 20.04 操作系统的T4算力为例)。

    1. 登录到已经申请好的异构算力资源,具体操作流程请参见连接实例

    2. 安装cuda-toolkit。

      1. T4卡需要安装cuda-toolkit 11.8版本。

      2. 更新PATH和LD_LIBRARY_PATH。

    3. 安装GPU驱动。

      1. T4卡需要安装12.2版本(建议安装最新驱动版本)。

      2. 在NVIDIA官网下载对应驱动:NVIDIA-Linux-x86_64-535.154.05.run。

    4. 环境变量更新:添加AIACC授权

      echo 'export DEEPGPU_EXT_CURL=MzkuOTguMjIuMTI2OjcwNzA=' >> /etc/profile
      source /etc/profile
    5. 确认组件版本

      1. python版本:3.8。

      2. pytorch版本:2.1.0。

      3. deepytorch_inference版本:deepytorch_inference==0.7.18+pt2.1.0cu118-cp38-cp38。

      4. python相关的组件可以直接通过pip3指令安装,比如:

      pip3 install torch==2.1.0 torchvision==0.16.0 numpy transformers
      说明

      关于自研AIACC推理加速引擎的详细介绍请参见什么是Deepytorch Infernce

  2. 在虚机中采用容器部署自研AIACC推理加速引擎(以Ubuntu 20.04 操作系统的T4算力为例)。

    1. 登录到已经申请好的异构算力资源。

    2. 安装GPU驱动。

      1. GPU驱动版本 12.2。

    3. 安装Nvidia Container Toolkit。具体流程请参见https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

    4. 获取AIACC容器镜像deepytorch_t4_ubuntu20.04.tar.gz(容器部署可简化虚机部署时环境配置的复杂度),镜像获取地址请与阿里云商务经理进行确认。

    5. 容器镜像加载,你也可以直接使用kubernetes创建和管理容器实例。

      [root]# docker load -i deepytorch_t4_ubuntu20.04.tar
      
      [root]# docker images
      REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
      <none>       <none>    7aef27446ff0   3 days ago   22.6GB
    6. 创建容器,完成自研AIACC推理加速引擎环境部署。

      #!/bin/bash
      
      /usr/bin/docker run --runtime=nvidia -ti -d --gpus all --network=host \
                 7aef27446ff0 sleep 86400000
  3. 容器部署开源TensorRT套件

    1. 安装Nvidia GPU Driver。

    2. 安装Nvidia container toolkit。

    3. 下载TensorRT套件容器镜像,下载地址:https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/index.html

      说明

      需要关注镜像对应的CUDA、TensorRT等组件版本应与安装的GPU driver版本对应。

    4. 创建容器,完成TensorRT套件环境部署。

步骤五:关联资源完成环境搭建

通过边缘云控制台或OpenAPI进行资源关联操作,完成基础资源环境搭建。该通用架构可以支持图像分类、目标检测、语音识别、语义分析等AI在线推理的场景。

image
说明

如果想使用边缘云业务调度能力,将业务调度托管到边缘云,可联系阿里云商务经理进行咨询。