当前位置: 首页 > news >正文

ViT与CLIP:图像×文本 多模态读心术揭秘

讲解ViT与 CLIP的原理、差异,以及它们在多模态大模型中的应用

1 ViT (Vision Transformer)

  • 本质:直接把 Transformer 应用于视觉任务的模型。

  • 工作方式

    1. 将输入图像切成固定大小的 patch(如 16x16),
    2. 将每个 patch 展平后通过线性映射得到 patch embedding,
    3. 添加 positional embedding(位置信息),
    4. 输入到标准 Transformer Encoder 中,得到整图的表示或 per-patch 表示。
  • 用途

    • 单纯视觉任务,如分类、目标检测、分割。

    • 作为视觉编码器,为多模态模型提供“图像理解”能力。

在这里插入图片描述

📊 将图片分块,通过卷积层和flattern,提取出图片的特征,得到(batchsize, 9, embed_dim),过transformer得到embedding。语言encoder和图像encoder在这里有所不同,语言的encoder只与上文特征有关,而图像encoder与全局特征均有关。

2 CLIP (Contrastive Language-Image Pretraining)

  • 本质:OpenAI 提出的 跨模态对比学习框架,预训练得到能够把图片和文本投影到同一语义空间的视觉-文本模型。

  • 架构

    1. 视觉编码器:常用 ViT 或 CNN(如 ResNet),将图像转为 embedding。

    2. 文本编码器:Transformer,将文本转为 embedding。

  • 对比损失训练

    • 对于每个图像和文本描述对,让它们在 embedding 空间靠得更近。对于其他不匹配的组合,让它们远离。 例如,同一batch内做 InfoNCE Loss。
  • 能力

    • 支持 zero-shot 识别(如“狗的图片”与“狗”文本匹配 score 最高),为多模态理解奠定基础。

📊 clip采用对比学习的方式进行训练,目的是将图片特征和文本特征训练到同一个特征空间里面

3 ViT 与 CLIP 的区别

方面ViTCLIP
目标提供纯视觉表示提供图像与文本对齐的跨模态表示
输入图像图像 + 文本对
结构纯视觉 Transformer Encoder视觉编码器(可为 ViT)+ 文本编码器 + 对比损失训练
训练监督分类(ImageNet 标签)或自监督视觉任务大规模图文对的对比预训练
输出图像 embedding图像 embedding + 文本 embedding,且在同一空间
应用视觉下游任务跨模态检索、Zero-shot 分类、多模态大模型视觉模块

📊 ViT 是一种 Transformer 架构用于处理图像;CLIP 则是一个利用对比学习,将 ViT + 文本Transformer 结合训练得到的跨模态模型。

在这里插入图片描述

📊 ViT:强大的图像 Transformer 编码器,用于视觉任务。CLIP:通过对比学习,将 ViT 与文本 Transformer 结合起来,实现图像-文本对齐,成为多模态模型的基础。

4 在多模态大模型里的使用方法

  • 多模态大模型(如 LLaVA、Qwen-VL、Emu)通常需要将图像编码为 embedding,然后与语言模型交互。

  • ViT 可直接做视觉特征提取,但模型不具备“对齐文本语义”的预训练能力。

  • CLIP ViT(即使用 CLIP 训练过的 ViT 作为视觉 encoder)能够输出对语言理解更友好的 embedding,因此被广泛采用。

模型视觉编码与对齐方式多模态输入处理流程
LLaVA使用 CLIP ViT-L/336px 作为视觉编码器,直接提取视觉 embedding,通过 projection layer 映射到语言模型 token embedding 空间1. 图像输入 → CLIP-ViT 提取视觉 embedding(维度为 [n_patches, hidden_size])
2. 经过映射层(projection layer)转换为 token embedding
3. 与文本 token 一起拼接输入 LLM,完成多模态推理与生成
BLIP-2使用 pre-trained ViT-G/14 作为视觉编码器 + Q-Former(Querying Transformer) 提取 query embedding,再连接 LLM1. 图像输入 → ViT-G/14 提取视觉 embedding
2. Q-Former 输入固定数量 query,通过 cross-attention 提取 query embedding
3. 将 query embedding 输入 LLM 进行视觉-文本推理与生成
Qwen-VL使用 CLIP ViT-L/14 作为视觉编码器,通过 Q-Former 提取视觉 token,与 LLM 对齐1. 图像输入 → CLIP-ViT 提取视觉 embedding
2. Q-Former 提取视觉 token
3. 与文本 token 拼接后输入 LLM 实现多模态推理

. 图像输入 → CLIP-ViT 提取视觉 embedding
2. Q-Former 提取视觉 token
3. 与文本 token 拼接后输入 LLM 实现多模态推理 |

📊 表格展示了LLaVA、BLIP-2、Qwen-VL、Emu 实际使用流程与架构

http://www.dtcms.com/a/263017.html

相关文章:

  • 大数据系统架构实践(三):Hbase集群部署
  • 嘉讯科技:医疗信息化、数字化、智能化三者之间的关系和区别
  • EPLAN 中定制 自己的- A3 图框的详细指南(一)
  • 【机器学习深度学习】适合微调的模型选型指南
  • DAOS集群部署-Docker模式
  • CloudBase AI Toolkit 让我用“嘴”开发出的第一款网页游戏
  • 网络安全运维与攻防演练综合实训室解决方案
  • 服务器被入侵的常见迹象有哪些?
  • CentOS服务器SSH远程连接全指南
  • HarmonyOS NEXT应用元服务常见列表操作多类型列表项场景
  • 2025年数字信号、计算机通信与软件工程国际会议(DSCCSE 2025)
  • Excel 如何让表看起来更清晰、专业,而不是花里胡哨?
  • 低功耗MM32L0180系列MCU
  • 【Kafka】docker 中配置带 Kerberos 认证的 Kafka 环境(全过程)
  • [springboot系列] 探秘 JUnit 5:现代 Java 单元测试利器
  • Spring Boot 实现不同用户不同访问权限
  • 基于uniapp的老年皮肤健康管理微信小程序平台(源码+论文+部署+安装+售后)
  • 跨时间潜运动迁移以实现操作中的多帧预测
  • Instrct-GPT 强化学习奖励模型 Reward modeling 的训练过程原理实例化详解
  • nifi1.28.1集群部署详细记录
  • 大语言模型LLM在训练/推理时的padding
  • 用户行为序列建模(篇十一)-小结篇(篇一)
  • 如何读取运行jar中引用jar中的文件
  • C++ --- list
  • 《Effective Python》第十一章 性能——使用 timeit 微基准测试优化性能关键代码
  • 分发糖果
  • Spring Boot 集成 tess4j 实现图片识别文本
  • Springboot + vue + uni-app小程序web端全套家具商场
  • Serverless 架构入门与实战:AWS Lambda、Azure Functions、Cloudflare Workers 对比
  • 人工智能参与高考作文写作的实证研究