Community 计算机视觉课程文档

多模态模型迁移学习

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

多模态模型迁移学习

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

有几种方法可以将多模态模型应用于您的用例

  1. 零样本/少样本学习。零样本/少样本学习涉及利用大型预训练模型,这些模型能够解决训练数据中未出现的问题。当任务的标记数据很少(5-10 个示例)或根本没有时,这些方法可能很有用。单元 11 将更深入地探讨这个主题。

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

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

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

迁移学习

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

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

Transfer Learning

这种方法有几个优点

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

  • 减少标记数据的大小: 出于同样的原因,在测试样本上获得良好质量所需的数据更少。

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

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

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

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

迁移学习应用

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

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