SuperAPI AI 工具集

getitune-optimizing-a-model

智能体与模型

查看项目

更新于 10-16 02:39

技能介绍

用途:getitune(Geti 训练库)的模型优化技能,对已导出的 OpenVINO 模型执行训练后量化(PTQ),借助 NNCF 将模型转为 INT8,以缩小体积并加快推理。量化针对导出的 IR 模型,不是训练阶段步骤。

主要能力:从导出的 OpenVINO 模型创建引擎并量化,随后用 test() 验证量化模型、用 predict() 运行推理。optimize() 会就地替换引擎中的模型为 INT8 版本。

使用方式:所有操作在 library/ 目录下运行。示例: from getitune.engine import create_engine ov_engine = create_engine(model="/path/to/exported_model.xml", data="/path/to/dataset") ov_engine.optimize() int8_metrics = ov_engine.test() predictions = ov_engine.predict()

流程要点:1)从导出的 OpenVINO 模型(.xml)开始;若只有 checkpoint,先用 getitune-exporting-a-model 技能导出。2)提供校准数据集,校准图像自动取自训练子集,推荐 200-500 张。3)运行 optimize(),完成后 test()/predict() 即使用 INT8。4)用 test() 重新验证精度,与 FP32/FP16 基线对比,预期会有小幅精度下降以换取体积与延迟收益。

对比原模型:optimize() 后引擎持有 INT8 模型;如需复查原始 FP32/FP16 模型,可将原始 .xml 路径直接传给 .test()/.predict(),或从原始 .xml 重新创建引擎。

限制:仅支持 OpenVINO IR(.xml);ONNX 模型须先转换为 OpenVINO IR 才能优化。在 Geti 应用中该能力以 quantize 作业形式暴露(application/backend/app/execution/quantization/),库中的 optimize() 是同一能力,只是没有作业/队列封装。

验证:在 library/ 下可运行 just lint;改动优化代码时运行 just test-unit -- -k optimize。相关技能:getitune-exporting-a-model(生成待量化的 OpenVINO .xml)、getitune-running-inference(用量化模型运行推理)。