Skip to content

主页

Colab Colab Colab Colab Colab

Autodistill使用较大、较慢的基础模型来训练较小、较快的监督模型。使用autodistill,您可以从未标记的图像直接推断在边缘运行的自定义模型,中间无需人工干预。

您可以在自己的硬件上使用Autodistill,或者使用Roboflow托管的Autodistill版本在云中对图像进行标注。

以下是目标模型在使用自动标注的数据集训练后,检测牛奶瓶和瓶盖的示例预测(参见 Autodistill YouTube 视频 以获取完整演示):

🚀 功能

  • 🔌 可插拔接口,将模型连接在一起
  • 🤖 自动标记数据集
  • 🐰 训练快速的监督模型
  • 🔒 拥有你的模型
  • 🚀 将精简模型部署到云端或边缘

📚 基本概念

要使用 autodistill,您将未标记的数据输入到一个基础模型中,该模型使用本体来标记一个用于训练目标模型的数据集,目标模型输出一个经过微调的蒸馏模型,以执行特定任务。

Autodistill 定义了几个基本原语:

  • 任务 - 任务定义了一个目标模型将预测的内容。每个组件(基础模型、本体论和目标模型)在autodistill管道中的任务必须匹配才能相互兼容。目前通过detection任务支持目标检测和实例分割。classification支持将很快添加。
  • 基础模型 - 基础模型是一个大型基础模型,知识面广泛。基础模型通常是多模态的,能够执行许多任务。它们大、慢且昂贵。基础模型的例子包括GroundedSAM和即将推出的GPT-4多模态变体。我们使用基础模型(以及未标记的输入数据和本体)来创建数据集。
  • 本体 - 本体定义了如何提示您的基础模型,您的数据集将描述什么,以及您的目标模型将预测什么。一个简单的本体是 CaptionOntology,它通过文本标题提示基础模型并将其映射到类名。其他本体可能会例如使用 CLIP 向量或示例图像来代替文本标题。
  • 数据集 - 数据集是一组自动标记的数据,可用于训练目标模型。它是基础模型生成的输出。
  • 目标模型 - 目标模型是一种监督模型,它消耗一个数据集并输出一个准备好部署的精简模型。目标模型通常较小、快速,并经过微调以非常好地执行特定任务(但它们在数据集中描述的信息之外的泛化能力较差)。目标模型的例子包括 YOLOv8 和 DETR。
  • 蒸馏模型 - 蒸馏模型是autodistill过程的最终输出;它是一组针对您的任务进行微调的权重,可以部署以获取预测。

💡 理论与限制

人工标注是计算机视觉广泛应用的最大障碍之一。制作一个适合训练生产模型的数据集可能需要数千个小时。训练监督模型的蒸馏过程并不新鲜,实际上,传统的人类标注只是一种从极具能力的基础模型(人脑 🧠)中进行蒸馏的另一种形式。

基础模型知道很多事情,但在生产中我们需要了解一些事情的模型。

随着基础模型越来越优秀,它们将越来越能够增强或替代人类在标注过程中的作用。我们需要用于引导、利用和比较这些模型的工具。此外,这些基础模型庞大、昂贵,并且通常受到私人API的限制。对于许多生产用例,我们需要能够以低成本和实时在边缘运行的模型。

Autodistill 的基础模型已经能够为许多常见用例创建数据集(通过创造性提示和少量示例,我们可以将其用途扩展到更多),但它们还不够完美。还有很多工作要做;这只是开始,我们希望您能帮助测试和扩展系统的功能!

💿 安装

Autodistill 是模块化的。您需要安装 autodistill 包(定义上述概念的接口)以及 Base Model and Target Model plugins(实现特定模型)。

通过将这些单独打包为插件,可以最大限度地减少依赖关系和许可不兼容性,任何人都可以实现和维护新的模型。

示例:

pip install autodistill autodistill-grounded-sam autodistill-yolov8

Install from source You can also clone the project from GitHub for local development:
git clone https://github.com/roboflow/autodistill
cd autodistill
pip install -e .

附加的基础和目标模型如下所列

🎬 视频指南

Autodistill: Train YOLOv8 with ZERO Annotations 自动蒸馏:用零注释训练YOLOv8

发布日期:2023年6月8日

在这个视频中,我们将向您展示如何使用一个新库来训练YOLOv8模型,检测在输送带上移动的瓶子。没错—不需要任何注释时间!我们深入探讨Autodistill的功能,涵盖从设置您的Python环境和准备图像到激动人心的自动图像注释等主题。

💡 社区资源

NoneNone

🗺️ 路线图

除了添加新模型,我们还计划探索几个领域与 autodistill 包括:

  • 💡 本体创建与提示工程
  • 👩‍💻 人工干预支持
  • 🤔 模型评估
  • 🔄 主动学习
  • 💬 语言任务

🏆 贡献

我们非常感谢您的反馈!请查看我们的 贡献指南 开始。感谢 🙏 所有贡献者!

👩‍⚖️ 许可证

这个 autodistill 包是根据 Apache 2.0 许可证发布的。每个基础或目标模型插件可能会使用其对应于其基础模型的许可证。有关更多信息,请参阅每个插件仓库中的许可证。

常见问题 ❓

是什么导致了PytorchStreamReader failed reading zip archive: failed finding central directory错误?

当 PyTorch 无法加载模型的权重时,会导致此错误。进入 ~/.cache/autodistill 目录,并删除与您尝试加载的模型相关的文件夹。然后,再次运行您的代码。模型权重将从头下载。请勿打断安装过程。

💻 探索更多 Roboflow 开源项目

项目 描述
supervision 用于计算机视觉项目的通用工具,从预测过滤和显示到物体跟踪再到模型评估。
Autodistill (该项目) 自动标记图像以用于训练计算机视觉模型。
推断 一个易于使用、准备投入生产的计算机视觉推断服务器,支持许多流行模型架构和微调模型的部署。
笔记本 计算机视觉任务的教程,从训练最先进的模型到跟踪对象再到在区域内计数对象。
Collect 由CLIP驱动的自动化、智能数据收集。