更新时间:2024-04-30 GMT+08:00
分享

推理业务迁移评估表

通用的推理业务及LLM推理可提供下表进行业务迁移评估:

收集项

说明

实际情况(请填写)

项目名称

项目名称,例如:XXX项目。

-

使用场景

例如:

  • 使用YOLOv5算法对工地的视频流裁帧后进行安全帽检测。
  • 使用BertBase算法对用户在app上购买商品后的评论进行理解。

-

CPU架构

X86/ARM,自有软件是否支持ARM。

例如:4个推理模型在ARM上运行,6个推理模型在X86上运行。

-

当前使用的操作系统及版本

当前推理业务的操作系统及版本,如:Ubuntu 22.04。

是否使用容器化运行业务,以及容器中OS版本,HostOS中是否有业务软件以及HostOS的类型和版本。

需要评估是否愿意迁移到华为云的通用OS。

-

AI引擎及版本

当前引擎(TF/PT/LibTorch),是否接受切换MindSpore。

例如:当前使用TF 2.6,PyTorch 1.10,可以接受切换MindSpore。

-

业务编程语言、框架、版本。

C++/Python/JAVA等。

例如:业务逻辑使用JAVA,推理服务模块使用C++自定义实现推理框架,Python 3.7等。

-

CPU使用率

业务中是否有大量使用CPU的代码,以及日常运行过程中CPU的占用率(占用多少个核心),以及使用CPU计算的业务功能说明和并发机制。

-

是否有Linux内核驱动

是否有业务相关的Linux内核驱动代码。

-

依赖第三方组件列表

当前业务依赖的第三方软件列表(自行编译的第三方软件列表)。

例如:Faiss等。

-

推理框架

TensorRT/Triton/MSLite等。

例如:

  • 2个推理模型使用TensorRT框架,5个使用Triton框架。
  • 通过stable-diffusion的WebUI提供AIGC推理服务。

-

GPU卡的类型

Vnt1/Ant1/Ant03/Tnt004等。

例如:

20卡Ant1,运行Bert Large推理。

10卡Tnt004运行YOLOv5。

-

Backbone类型

ResNet/DarkNet/Transformer等。

例如:

  • 5个模型使用ResNet Backbone,应用与监控。
  • 3个模型使用Transformer,应用于自然语言处理xxx。
  • 使用stable-diffusion的典型模型:TextEncoder、VaeEncoder、unet、VaeDecoder、SafetyChecker,没有使用LoRA等动态加载的诉求。

-

模型训练方式

关于推理业务中使用的模型,填写该模型训练时使用的框架以及套件。

例如:模型使用PyTorch+Megatron+DeepSpeed进行训练。

-

自定义算子

是否有自定义算子,CPU还是CUDA,复杂程度。

例如:有5个CUDA自定义算子。1个高复杂度算子,基于C++开发2000行代码。4个中等复杂度算子,基于C++开发,平均每个自定义算子约500行代码。

-

动态shape

是否需要支持动态shape。

例如:需要动态Shape,需要动态Shape的模型有ResNet-50、YOLOv5。

-

参数类型(FP32/FP16)

FP32还是FP16混合,判断精度调优难度。

例如:ResNet-50、YOLOv5模型使用FP16。BertLarge使用FP32。

-

模型变更频率

模型变更场景如下:

  • 数据增量,模型算子未变更。
  • 数据增量,模型算子变化,例如:
    • 网络结构变化。
    • AI框架版本升级,使用了新版本算子。

例如:每半年对模型进行一次变更,变更的内容包含模型结构,并升级AI框架。

-

是否使用华为MDC产品

如果使用华为MDC产品,请填写MDC版本号,如果没有可以不填。

例如:使用了C83版本。

-

性能指标与预期

  • 例1:

    模型:YOLOv5

    运行环境:Vnt1 单卡

    性能指标:QPS 100/s (两进程)

    性能约束:单次请求最大可以接受时延需小于100ms

    性能预期:QPS 130/s

  • 例2:

    模型:OCR

    运行环境:6348(单核48U超线程)

    性能指标:QPS 10/s(四进程)

    性能约束:单次请求最大可以接受时延需小于1s

    性能预期:QPS 20/s

-

业务访问方式

推理业务访问:“客户端 -> 云服务” 或 “云客户端 -> 云服务”。

推理业务时延要求,客户端到云服务端到端可接受时延。

例如:当前是“客户端 -> 云服务”模式,客户端请求应答可接受的最长时延为2秒。

-

模型参数规模,是否涉及分布式推理

10B/100B,单机多卡推理。

-

能否提供实际模型、网络验证的代码和数据等信息

提供实际模型、网络验证的代码和数据。

提供与业务类型类似的开源模型,例如GPT3 10B/13B。

提供测试模型以及对应的Demo代码路径(开源或共享)。

可以提前的完成POC评估,例如框架、算子支持度,以及可能的一些性能指标。

-

如果是AIGC场景的业务例如Stable Diffusion,请在上表的基础上,再提供以下信息:

收集项

说明

实际情况(请填写)

使用场景

例如:

  1. 业务是文生图,图生图等。
  2. 业务是否需要频繁更新模型,或者需要动态加载Lora。

-

stable-diffusion套件

  1. 使用differusers (https://github.com/huggingface/diffusers)。
  2. stable-diffusion-webui (https://github.com/AUTOMATIC1111/stable-diffusion-webui)。
  3. 如果是基于其他开源,需要附带开源代码仓地址。

-

具体使用库

例如:

  1. 使用了哪个pipeline (例如lpw_stable_diffusion.py)。
  2. 使用了哪个huggingface的模型 (例如digiplay/majicMIX_realistic_v6)。
  3. 如果有预处理,后处理,对应的模型是什么(例如后处理的超分模型)。

-

Lora/TextInversion

  1. 是否有动态加载Lora的需求,可否接受把Lora固定到模型内。
  2. 是否使用了TextInversion,是否需要动态加载。

-

动态shape

是否可接受分档shape(固定n个挡位的shape)。

-

模型变更频率

模型变更场景如下:

  1. 数据增量,模型算子未变更。
  2. 数据增量,模型算子变化,例如:
    • 网络结构变化。
    • AI框架版本升级,使用了新版本算子。

例如:每半年对模型进行一次变更,变更的内容包含模型结构,并升级AI框架。

-

尺寸要求

超分前产生的图片尺寸要求:

  1. 512*512
  2. 720*720
  3. 1080 *1080
  4. 1920*1920 (shape过大可能导致性能下降)

-

相关文档