TIPC (Training and Inference Performance Check) 是一个自动化的测试和基准测试框架,旨在验证模型性能、确保可复现性,并在 PaddleOCR 中跨不同硬件配置和精度设置测量训练/推理速度。该系统为 PaddleOCR 生态系统中的所有模型提供了标准化的测试工作流,从轻量级移动模型到服务器级架构。
有关 TIPC 测试的核心 OCR 管道信息,请参阅 核心管道。有关特定部署的测试,请参阅 部署和推理。
TIPC 作为多阶段管道运行,在不同的测试模式和模型配置中协调准备、执行和分析阶段。
来源: test_tipc/prepare.sh1-700 test_tipc/test_train_inference_python.sh1-344 test_tipc/benchmark_train.sh1-295
TIPC 支持多种测试模式,在全面性和执行时间之间取得平衡,可以进行快速验证和全面基准测试。
| 模式 | 目的 | 训练数据 | 推理范围 | 用例 |
|---|---|---|---|---|
lite_train_lite_infer | 快速验证 | 精简数据集 | 基础推理 | CI/CD 管道 |
lite_train_whole_infer | 导出验证 | 精简数据集 | 完整推理矩阵 | 预发布测试 |
whole_train_whole_infer | 全面验证 | 完整数据集 | 完整测试 | 发布验证 |
whole_infer | 仅推理 | 预训练模型 | 推理矩阵 | 部署测试 |
benchmark_train | 性能测试 | 基准数据集 | 训练指标 | 性能分析 |
来源: test_tipc/test_train_inference_python.sh5-6 test_tipc/prepare.sh6-8
来源: test_tipc/test_train_inference_python.sh181-343 test_tipc/benchmark_train.sh150-294
TIPC 使用结构化的配置格式,该格式定义了每个模型变体的测试参数、模型规格和执行设置。
配置文件遵循标准格式,具有不同的测试阶段的独立部分
===========================train_params===========================
model_name:layoutxlm_ser
python:python3.7
gpu_list:0|0,1
Global.use_gpu:True|True
Global.auto_cast:fp32
Global.epoch_num:lite_train_lite_infer=1|whole_train_whole_infer=17
来源: test_tipc/configs/layoutxlm_ser/train_infer_python.txt1-12
| 章节 | 功能 | 关键参数 |
|---|---|---|
train_params | 训练配置 | gpu_list, epoch_num, batch_size_per_card |
eval_params | 评估设置 | eval_py, 评估指标 |
infer_params | 推理配置 | 硬件标志、精度设置 |
train_benchmark_params | 性能测试 | batch_size, fp_items, 性能分析选项 |
配置解析由 common_func.sh 中的函数处理,这些函数提取键值对并支持基于测试模式的条件参数。
来源: test_tipc/common_func.sh test_tipc/test_train_inference_python.sh15-89
TIPC 集成了 PaddlePaddle 的性能分析功能,提供详细的性能指标和优化洞察。
ppocr/utils/profiler.py 中的 ProfilerOptions 类提供了全面的性能分析配置
来源: ppocr/utils/profiler.py51-59
来源: ppocr/utils/profiler.py87-131
基准测试系统生成结构化的性能数据,这些数据由分析脚本进行处理
来源: test_tipc/docs/benchmark_train.md39 test_tipc/benchmark_train.sh238-290
TIPC 系统地测试不同的硬件配置和精度设置,以确保在各种部署场景下的最佳性能。
来源: test_tipc/test_train_inference_python.sh99-179
func_inference() 函数协调了跨硬件矩阵的全面测试
| 参数 | CPU 选项 | GPU 选项 |
|---|---|---|
use_gpu | False, cpu | True, gpu |
use_mkldnn | True, False | 不适用 |
use_trt | 不适用 | True, False |
精度 | fp32, int8 | fp32, fp16, int8 |
cpu_threads | 1, 6 | 不适用 |
来源: test_tipc/test_train_inference_python.sh109-178
TIPC 框架组织成几个关键组件,负责测试管道的不同方面。
| 脚本 | 主要功能 | 关键操作 |
|---|---|---|
prepare.sh | 环境准备 | 数据集下载、模型设置、依赖安装 |
test_train_inference_python.sh | 测试编排 | 训练执行、模型导出、推理测试 |
benchmark_train.sh | 性能测量 | 性能分析、速度分析、指标收集 |
common_func.sh | 实用函数 | 配置解析、参数提取 |
来源: test_tipc/prepare.sh1-4 test_tipc/test_train_inference_python.sh1-4 test_tipc/benchmark_train.sh1-4
每个模型维护其自己的配置目录,其中包含训练参数、推理设置和模型特定的 YAML 配置
test_tipc/configs/layoutxlm_ser/
├── train_infer_python.txt # TIPC test configuration
└── ser_layoutxlm_xfund_zh.yml # Model training configuration
YAML 配置文件定义了 TIPC 在测试期间使用的完整模型架构、数据管道和训练超参数。
来源: test_tipc/configs/layoutxlm_ser/train_infer_python.txt test_tipc/configs/layoutxlm_ser/ser_layoutxlm_xfund_zh.yml1-123