training_extensions
Intel开源的低代码CV训练框架,三行Python代码完成从数据到OpenVINO模型部署的全流程
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Intel开源的低代码CV训练框架,三行Python代码完成从数据到OpenVINO模型部署的全流程
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在工业质检、医疗影像、安防监控等场景中,部署一个可用的视觉 AI 模型从来不是「下载权重、跑推理」那么简单。真实项目往往面临:数据格式五花八门(COCO/YOLO/VOC)、模型选型反复试错、训练调参需要 GPU 资源、最终还要把模型塞进边缘设备运行——每一步都可能让非深度学习专业的开发者卡壳。
Geti™ Library(getitune) 正是为解决这一痛点而生的框架。它由 Intel Open Edge Platform 团队维护,原名 OpenVINO™ Training Extensions(otx),2025年正式更名为 getitune,定位是低代码迁移学习框架:用一套 API/CLI,覆盖从数据接入、模型训练、评测优化到 OpenVINO 部署的全流程,让用户在几分钟内完成原本需要数天的工作。
Geti 诞生于 Intel 推动 OpenVINO 从「推理工具」向「全栈平台」演进的战略背景下。OpenVINO 本身久经打磨,但训练环节一直是短板——用户需要在 PyTorch/TensorFlow 中完成训练,再手动导出 IR 模型才能用 OpenVINO 部署。Geti 填补了这个空白,让整个链条可以在一个框架内闭环。项目的 GitHub 仓库现由 open-edge-platform 组织托管,获得了 1232 颗 Stars、466 个 Fork,是 Intel 在开源 CV 训练领域最具影响力的项目之一。
Geti 目前支持六类核心视觉任务,每类任务都内置了经过验证的预训练配方(Recipe):
| 任务类型 | 代表模型 | 典型场景 |
|---|---|---|
| 多分类 / 多标签 / 层级分类 | EfficientNet, ViT, DINOv2 | 商品分类、情绪识别 |
| 目标检测 | YOLOX, RT-DETR, ATSS, SSD | 工业缺陷检测、人流统计 |
| 旋转目标检测 | MaskRCNN-R50 | 遥感影像、无人机航拍 |
| 实例分割 | MaskRCNN, RTMDet-Inst, YOLO26 | 医学影像分割、车辆分割 |
| 语义分割 | DINOv2, LiteHRNet, SegNeXt | 道路分割、农田遥感 |
| 关键点检测 | RTMPose | 人体姿态估计 |
每类任务的 Recipe 以 YAML 文件形式存在,捆绑了模型架构、数据管道和训练超参数。用户只需指定 model= 路径,即可获得开箱即用的基线。
Geti 的 API 设计极度简洁,核心入口是 create_engine:
from getitune.engine import create_engine
engine = create_engine(
data="tests/assets/classification_cifar10",
model="src/getitune/recipe/classification/multi_class_cls/efficientnet_b0.yaml",
)
engine.train()
engine.test()
exported_path = engine.export() # 导出 OpenVINO IR
三行代码完成训练、评测、导出。对比原生 PyTorch 实现,这可能需要几十行数据加载器、模型定义、优化器配置代码。Geti 通过 YAML Recipe 将这些复杂性封装起来,同时保留了 Override 机制——用户可以在 API 调用时直接覆盖 max_epochs、batch_size、lr 等参数,也可以深入 YAML 自定义模型级别的超参数。
真实项目的数据格式往往不统一:有的团队用 COCO JSON,有的用 YOLO 的 data.yaml,还有的用 Pascal VOC 目录结构。Geti 内置 Datumaro 作为数据前端,传入数据集路径后自动检测格式并转换,用户无需编写任何数据转换脚本:
# 同一个 API,不管数据是 COCO 还是 YOLO 还是 VOC 格式
engine = create_engine(data="/path/to/coco_or_yolo_or_voc_dataset", model="...")
engine.train()
Geti 的源码位于 library/src/getitune/,核心模块组织如下:
engine/ — 统一的训练引擎,通过 create_engine() 工厂函数,根据模型类型自动选择后端backend/lightning/ — PyTorch Lightning 训练后端,管理分布式训练、混合精度、梯度裁剪等backend/openvino/ — OpenVINO 推理后端,支持 IR 模型加载、NNCF 后训练量化(PTQ)backend/ultralytics/ — Ultralytics YOLO 生态集成,支撑 YOLO 系列模型models/ — 模型类集合(EfficientNet、ATSS、YOLOX、DINOv2 等),封装了架构定义和预训练权重加载data/ — DataModule 实现,基于 Datumaro 的数据加载、格式检测、增强(Augmentation)管道recipe/ — 所有任务类型的 YAML 配方目录,按 classification/、detection/、segmentation/ 等组织这种架构的核心优势是后端解耦:用户用同一套 API 切换不同的训练后端(Lightning / Ultralytics)或推理后端(PyTorch / OpenVINO),而无需修改业务代码。
PyTorch Lightning 是当前工业界最成熟的分布式训练框架之一,Geti 选择它作为默认训练后端,继承了以下能力:
用户也可以绕过 Recipe,直接实例化模型类传入自定义优化器:
from getitune.models import EfficientNet
from torch.optim import AdamW
model = EfficientNet(label_info=datamodule.label_info, model_name="efficientnet_b0",
optimizer=lambda params: AdamW(params, lr=0.001))
Geti 的推理路径分为两层:PyTorch 原生推理(用于快速验证)和 OpenVINO 推理(用于部署优化)。
# OpenVINO 推理 + NNCF 优化(后训练量化)
ov_engine = create_engine(data="/path/to/dataset", model="exported_model.xml")
ov_engine.test()
ov_engine.optimize() # NNCF PTQ,精度损失通常 < 1%
OpenVINO 后端还支持 OpenVINO ModelAPI,提供标准化的推理接口,对接 Intel 硬件(CPU/GPU/VPU)获得推理加速。
Geti 目前尚未发布到 PyPI(README 标注 "not yet published"),需从源码安装:
# 推荐用 uv(honors lockfile,速度更快)
uv pip install "getitune[cpu]" # CPU 训练
uv pip install "getitune[cuda]" # NVIDIA GPU
uv pip install "getitune[xpu]" # Intel GPU
# 源码安装
git clone https://github.com/open-edge-platform/training_extensions.git
cd training_extensions/library
uv sync --extra cuda
提供了三种互斥的 extras 选择对应的 PyTorch 轮子:
[cpu] — torch==2.10.0+cpu,无 GPU 环境或 Apple Silicon[cuda] — torch==2.10.0+cu128,NVIDIA GPU(CUDA 12.8)[xpu] — torch==2.10.0+xpu + triton-xpu,Intel 独立/集成 GPUDocker 方面,仓库提供了多阶段 Dockerfile.cuda,基于 pytorch/pytorch:2.1.2-cuda11.8,最终产出包含预训练权重下载好的镜像,适合在容器环境中一键部署。
| 项目 | 规格 |
|---|---|
| 语言 | Python ≥ 3.11 |
| 深度学习框架 | PyTorch 2.10 + PyTorch Lightning |
| 推理优化 | OpenVINO 2026.1 + ONNX |
| 数据处理 | Datumaro(自动格式检测) |
| 训练调度 | LR Warmup + ReduceLROnPlateau / CosineAnnealing |
| Augmentation | CPU 端 TorchVision transforms + GPU 端 Kornia |
| 模型格式 | PyTorch checkpoint / ONNX / OpenVINO IR |
| 许可证 | Apache 2.0 |
| CI 状态 | Pre-Merge 测试通过,Codecov 覆盖 |
pip install getitune 一键安装方式Geti 代表了 Intel 在边缘 AI 全栈化方向上的关键一步。它不仅降低了计算机视觉模型的训练门槛,还通过与 OpenVINO 的深度集成,真正打通了「训练→优化→部署」的最后一公里。随着边缘计算场景(工业质检、智慧城市、智能驾驶)对 CV 模型需求的爆发,类似 Geti 这样的一站式框架将成为加速 AI 落地的关键工具。
项目当前在 Intel 内部有持续的维护投入(develop 分支活跃更新),2026年更新至 PyTorch 2.10 + OpenVINO 2026.1,发展势头良好。