跳转至

优化

训练出的模型对现场设备通常太大或太慢。优化会把模型编译为 ONNX、做图优化,并针对选定的目标 芯片做 int8 量化,再在该目标上基准实测——用受控、可测的精度损失换取延迟、吞吐与存储 收益。

每个(源版本 × 目标设备)组合是一个独立任务,产出各自的模型版本。一次选择多个目标会 扇出为多个运行。

目标设备

目标以厂商为先:选择厂商会映射到优化器使用的运行时/导出路径。

选择 优化器目标 现场典型运行时
CPU cpu ONNX Runtime(CPU)
Intel openvino OpenVINO
NVIDIA tensorrt TensorRT / Triton
AMD onnx-rocm ONNX Runtime(ROCm)
华为昇腾 ascend 昇腾运行时

旧取值(cpu、openvino、tensorrt……)原样接受。当集群缺少某目标的工具链或硬件时,任务 保持 pending(挂起)而不是静默失败——请在带该加速器的节点上运行。

流水线做什么

  1. 取源版本的 ONNX 产物(训练会产出;手动上传的 .onnx 也可)。
  2. 针对目标做 ONNX 图优化。
  3. 用校准集把权重/激活量化为 int8。
  4. 在目标上用 ONNX Runtime 对源模型与优化模型做基准对比——这是真实测量,不是估算。
  5. 把结果注册为带实测指标与门禁结论的新版本。

优化产物落入对象存储(SeaweedFS),并以类似 {source-version}-onnx-{dtype-suffix} 的名字 注册到源模型之下,因此每个优化版本都保留到训练模型的血缘。

指标与质量门禁

每个优化版本记录:

  • 加速比——同一目标上优化前后延迟对比。
  • 体积缩减——产物字节数前后对比。
  • 延迟——实测推理延迟(优化扫描可搜索参数组合,在 mAP 下降的硬约束内最小化延迟)。
  • 精度下降——量化模型相对 FP32 源模型的评估指标差值(如 mAP50 delta)。

门禁把绝不能回退的项与可由人工接受的项分开:

  • 硬门禁——任务精度下降与数值安全(NaN/Inf)。硬门禁失败会阻止自动注册。
  • 软门禁——延迟/吞吐等性能目标;未达标被标记(YELLOW),可在留痕的情况下人工审核放行, 而不是被悄悄掩盖。

部署 int8 模型前,务必在评估页确认其精度;量化效果依赖硬件与数据。

前提条件

  • 源版本必须有 ONNX 产物。在 Forge 训练(CV 训练器会导出 ONNX),或向模型库手动上传 .onnx。
  • GPU/NPU 目标需要集群中存在对应硬件/工具链,否则任务保持 pending。
  • 使用有代表性的校准集——量化质量取决于校准数据。

常见问题

加速比数字从哪来?

来自真实基准(optimize.py 经 ONNX Runtime)在目标上对比源模型与优化模型,而非查表 估算。

能一次为多类芯片优化吗?

可以——在一个任务中选择多个目标;Forge 为每个目标创建独立任务与独立产物版本,随后在 模型库中横向对比。

int8 模型掉点太多。

用更有代表性的校准集重跑;若下降仍超门禁,该目标保留 FP32/FP16 版本,或选择更温和的 路径。在评估中查看 accuracy_drop。

这会优化 LLM/VLM 模型吗?

本页描述的是 CV 的 ONNX/int8 路线。LLM/VLM 的服务效率主要通过训练阶段的 LoRA/QLoRA 适配器与所选服务运行时来实现;单页式 CV 量化器不会作用于大语言模型权重。

下一步

  • 验证优化版本:评估。
  • 选中获胜目标并部署:模型。