利用特定领域模型训练新模型

在人工智能领域,尽管像OpenAI的GPT-4带视觉功能或Google的Gemini这样的通用大型模型备受关注,但最近的实验表明,在特定领域,如专门的人或车辆检测模型,往往在速度和性能上超越了Google Cloud和AWS提供的更大通用模型。

本文将探讨如何利用两个或更多领域特定模型的专业知识来标注数据并训练新模型。然后,将评估新组合模型,看看它与多个领域特定专业模型以及像COCO和Google Cloud Vision、AWS Rekognition等大型模型相比如何。

为什么使用多个模型进行标注?

在某些情况下,将模型与大型模型的多功能性结合起来,同时保持领域特定模型的准确性和速度,可能会有所帮助。例如,如果想快速启动一个模型,可以组合不同的数据集,并使用多个模型在数据集之间进行一致的标注。

在想要在现有模型中添加新类别的场景中,可以快速使用现有模型,以及专门针对额外对象的模型,来补充现有模型。如果已经为同一用途拥有多个专业模型,将它们组合起来可以提高操作效率和速度。

为了使用专业模型来训练用例的组合模型,需要收集或上传数据集的图像。也可以在Roboflow Universe上搜索图像,快速开始构建模型。

例如,将使用Roboflow Universe上的Udacity自动驾驶数据集的一个子集。

使用Autodistill进行标注

通常,在这个点上,开始标注图像。幸运的是,有两个专业模型,可以使用Autodistill快速标注图像。首先,配置Autodistill使用Universe模型进行标注。

from autodistill_roboflow_universe import RoboflowUniverseModel from autodistill.detection import CaptionOntology model_configs = [ ("vehicle-detection-3mmwj", 1), ("people-detection-o4rdr", 7) ] base_model = RoboflowUniverseModel( ontology=CaptionOntology( { "person": "person", "vehicle": "vehicle" } ), api_key="YOUR_ROBOFLOW_API_KEY", model_configs=model_configs, )

然后,使用Autodistill和Google Colab的一个功能,可以运行模型对图像进行标注,并直接在Roboflow界面内同步。一旦启动标注,它只花了几分钟就标注了150多张图像。一旦数据集被标注,可以在将其添加到数据集之前,检查其准确性并纠正错误。

模型训练

一旦图像被标注,可以继续训练模型的第一个版本,实现了83.4%的准确率。

组合模型评估

现在已经训练了模型,可以运行一些评估,看看组合模型的理由是否成立。首先,将评估组合模型与使用的两个专业模型相比。然后,将看看模型与其他像COCO、Google Cloud Vision和Amazon Rekognition等产品的表现如何。

为了看看新模型表现如何,可以在专业模型数据集的测试分割上运行预测,使用托管的推理API。在结果中,看到推理时间有小幅(5~10毫秒)的下降。

虽然拥有与其他专业模型相当的推理时间很有用,但执行的检测通常可以使用大型视觉模型完成。除了比较来自Google Cloud Vision和Amazon的AWS Rekognition的两个云产品外,还可以比较“快速”组合模型,该模型在Roboflow上训练,与同样大小的YOLOv8n Microsoft COCO模型相比。

在准确性方面,组合模型,经过数据集的图像训练并由领域特定模型标注,以相当大的优势超越了所有其他产品,这是预料之中的,因为模型是针对相同图像的相同用例进行训练的。

此外,一个比专业模型大但比其他大型模型小的组合模型,提供了在本地托管模型的机会,使用开源推理包。在本地运行模型可以带来巨大的速度优势,而托管的托管推理API则提供了与其他大型模型相当的速率。

在本指南中,阐述了使用领域特定模型进行新模型训练的用例,介绍了训练自己的组合模型的步骤,然后评估了模型,证明了在自定义数据集上结合两个专业视觉模型的专业知识的有用性。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485