模型量化提供主流的模型量化算法,您可以使用模型量化对模型进行压缩提速,实现高性能推理。本文为您介绍模型量化的参数配置和使用示例。

前提条件

已开通OSS并完成授权,详情请参见开通OSS服务PAI访问云产品授权:OSS

功能限制

  • 仅PAI-Designer提供该算法组件。
  • 支持的计算引擎为DLC。
  • 如果上游组件接入了图像检测训练组件,则该组件配置的模型参数和数据集需要和图像检测训练组件保持一致。

可视化配置组件参数

  • 输入桩
    输入桩(从左到右) 限制数据类型 建议上游组件 是否必选
    输入模型 OSS 图像检测训练模型剪枝
    训练数据 OSS 读OSS数据组件
    测试数据 OSS 读OSS数据组件
    类别列表文件 OSS 读OSS数据组件
  • 组件参数
    页签 参数 描述
    字段设置 训练模型类型 训练模型的类型,取值如下:
    • YOLOX
    • YOLOX_EDGE

    默认为YOLOX_EDGE。

    训练所用oss目录 训练过程中模型和Log保存的OSS路径。
    训练数据oss路径 存放训练数据文件的OSS路径,如果您使用读OSS数据组件作为上游节点,则该参数无需设置。
    训练集标注结果文件路径 存放训练集标注结果文件的OSS路径。
    评估数据oss路径 存放测试数据文件的OSS路径,如果您使用读OSS数据组件作为上游节点,则该参数无需设置。
    测试集标注结果文件路径 存放测试集标注结果文件的OSS路径。
    类别列表文件oss路径 存放数据类别列表文件的OSS路径,如果您使用读OSS数据组件作为上游节点,则该参数无需设置。
    YOLOX数据源格式 数据的处理格式,取值如下:
    • COCO格式
    • PAI标注格式

    默认值为COCO格式。

    预训练模型oss路径 存放预训练模型的OSS路径,导入预训练模型的权重文件。非必填。
    参数设置 YOLOX端检测模型类型 字段设置训练模型类型选择YOLOX_EDGE时,需要配置该参数。

    YOLOX端检测模型的预置类型,默认为yolox-customized。

    YOLOX检测模型使用的模型大小 字段设置训练模型类型选择YOLOX时,需要配置该参数。
    数据源格式取值如下:
    • yolox-s
    • yolox-m
    • yolox-l
    • yolox-x

    默认为yolox-s。

    yolox端模型depth 字段设置训练模型类型选择YOLOX_EDGE时,需要配置该参数。

    yolox端模型depth,浮点型,默认为1.0。范围为[0.01,1.0]。

    yolox端模型width 字段设置训练模型类型选择YOLOX_EDGE时,需要配置该参数。

    yolox端模型width,浮点型,默认为1.0。范围为[0.01,1.0]。

    YOLOX端检测模型激活函数类型 字段设置训练模型类型选择YOLOX_EDGE时,需要配置该参数。
    YOLOX端检测模型激活函数类型,取值如下:
    • relu
    • lrelu
    • silu
    • hsilu

    默认为relu。

    测试置信度:[0.01,1.0] 字段设置训练模型类型选择YOLOX_EDGE时,需要配置该参数。

    测试置信度,浮点型,默认为0.01。范围为[0.01,1.0]。

    nms阈值:[0.01,1.0] 字段设置训练模型类型选择YOLOX_EDGE时,需要配置该参数。

    nms阈值,浮点型,默认为0.65。范围为[0.01,1.0]。

    检测类别数目 检测类别数目。
    图像尺度 用于YOLOX,图片缩放后的尺度,分别表示高和宽,默认为640 640。
    初始学习率 模型训练的初始学习率,浮点型,默认为0.01。
    训练batch_size 训练batch_size,默认为16。
    评估batch_size 评估batch_size,默认为1。
    总的训练迭代epoch轮数 总的训练迭代epoch轮数,默认为20。
    warmup epochs 采用warmup学习策略时的迭代轮数,默认为5。
    最后稳定lr的epochs 采用warmup学习策略lr稳定后继续训练的迭代轮数,默认为5。
    保存checkpoint的频率 保存checkpoint的频率,以epoch为单位, 表示每过一遍训练数据保存一次checkpoint,默认为1。
    执行调优 读取训练数据线程数 读取训练数据的线程数。
    单机或分布式(MaxCompute/DLC) 组件运行的引擎。系统会根据您设置的训练模型类型,自动匹配。
    worker个数 采用分布式训练时的机器数量,默认为1。
    gpu机型选择 选择运行的GPU规格,默认为8vCPU+32GB Mem+1xv100-ecs.gn6v-c8g1.2xlarge。

使用示例

您可以使用模型量化组件构建如下工作流。工作流本示例中,您需要按照以下流程配置组件:
  1. 通过PAI提供的智能标注模块进行数据标注,详情请参见智能标注(iTAG)
  2. 使用读OSS数据-1读OSS数据-2读OSS数据-3组件分别读取训练数据集、测试数据集和数据类别列表文件。即配置读OSS数据组件的OSS数据路径参数为存放训练数据集、测试数据集和数据类别列表文件的OSS路径。
  3. 通过图像检测训练组件构建目标检测模型。
  4. 使用读OSS数据-4读OSS数据-5读OSS数据-6组件分别读取训练数据集、测试数据集和数据类别列表文件。即配置读OSS数据组件的OSS数据路径参数为存放训练数据集、测试数据集和数据类别列表文件的OSS路径。
  5. 将目标检测模型、训练数据集、测试数据集和数据类别列表文件接入模型量化组件,并配置具体参数,详情请参见上文的可视化配置组件参数