社区计算机视觉课程文档

多模态模型的迁移学习

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

多模态模型的迁移学习

在前面的章节中,我们深入探讨了 CLIP 及其相关模型等多模态模型的基本概念。本章中,我们将尝试找出如何将不同类型的多模态模型用于您的任务。

有几种方法可以将多模态模型适配到您的用例中

  1. 零样本/少样本学习。零样本/少样本学习是指利用大型预训练模型来解决训练数据中不存在的问题。当任务的标记数据很少(5-10 个示例)或根本没有时,这些方法会很有用。单元 11 将更深入地探讨此主题。

  2. 从头开始训练模型。当无法获得预训练模型权重或模型的训练数据集与您自己的数据集有很大差异时,此方法变得必要。在这里,我们随机初始化模型权重(或通过更复杂的方法,如He 初始化),然后进行常规训练。但是,这种方法需要大量的训练数据。

  3. 迁移学习。迁移学习与从头开始训练不同,它使用预训练模型的权重作为初始权重。

本章主要关注多模态模型中的迁移学习方面。它将回顾迁移学习的含义,阐明其优势,并提供实际示例,说明如何将迁移学习应用于您的任务!

迁移学习

更正式地讲,迁移学习是一组机器学习技术,其中从解决一个问题获得的知识、表示或模式被重新用于解决另一个相似的问题。

在深度学习的背景下,在迁移学习中,当训练特定任务的模型时,我们使用另一个模型的权重作为初始权重。预训练模型通常在大量数据上进行训练,并且对数据的性质和关系具有有用的知识。这些知识嵌入在该模型的权重中,因此,如果我们使用它们作为初始权重,我们就会将预训练模型中嵌入的知识迁移到我们正在训练的模型中。

Transfer Learning

这种方法有几个优点

  • 资源效率: 由于预训练模型是在大量数据上经过长时间训练的,因此迁移学习需要更少的计算资源来使模型收敛。

  • 减少标记数据的大小: 基于同样的原因,需要更少的数据才能在测试样本上达到不错的质量。

  • 知识迁移: 在对新任务进行微调时,模型利用预训练模型权重中编码的现有知识。这种先验知识的整合通常会提高新任务的性能。

然而,尽管迁移学习具有优势,但也存在一些应考虑的挑战

  • 领域转移: 如果数据分布差异很大,将知识从源领域适应目标领域可能具有挑战性。

  • 灾难性遗忘: 在微调过程中,模型会调整其参数以适应新任务,这通常会导致它丢失先前学习的与初始任务相关的知识或表示。

迁移学习应用

我们将探讨迁移学习在各种任务中的实际应用。下表描述了可以使用多模态模型解决的任务,以及如何在您自己的数据上微调它们的示例。

任务 描述 模型
微调 CLIP 在自定义数据集上微调 CLIP openai/clip-vit-base-patch32
VQA 根据图像用自然语言回答问题
语言基于图像
dandelin/vilt-b32-mlm
图像到文本 用自然语言描述图像 microsoft/git-base
开放集目标检测 通过自然语言输入检测目标 YOLO-World
助手(类似 GTP-4V) 多模态领域的指令微调 LLaVA
< > 在 GitHub 上更新