一、多模态大模型的基本原理
-
模态表示(Modal Representation)
不同模态的数据通常具有异构性(例如,文本是序列化的数据,图像是像素矩阵)。为了统一处理,多模态模型首先需要将不同模态的数据转换为通用的嵌入表示:- 文本模态:通过预训练的语言模型(如 Transformer、GPT)生成文本嵌入。
- 图像模态:通过卷积神经网络(如 ResNet)或视觉 Transformer(ViT)提取图像特征。
- 音频模态:通过音频编码器(如 Wav2Vec、HuBERT)生成音频嵌入。
-
跨模态对齐(Cross-Modal Alignment)
使用对齐机制在不同模态之间建立语义关联:-
共享嵌入空间:通过对比学习(Contrastive Learning),将不同模态的数据映射到共享的特征空间中,使得相同语义的内容在嵌入空间中靠近。
-
对齐方式:
- 图像-文本对齐(如 CLIP):最大化图像和文本描述之间的相似度。
- 音频-文本对齐:利用字幕或时间戳进行对齐。
-
-
融合机制(Modality Fusion)
在需要同时处理多模态信息时,模型会融合不同模态的特征。常见的融合方式包括:- 早期融合(Early Fusion) :在模型的输入阶段直接融合模态特征(如拼接或加权平均)。
- 中期融合(Intermediate Fusion) :通过多层 Transformer 等模块交互处理模态特征。
- 晚期融合(Late Fusion) :在各模态的任务输出结果之后再进行融合。
-
任务处理(Task-Specific Heads)
针对不同任务,模型会使用特定的解码头(Task Heads):- 分类任务:如多模态情感分析(使用线性层)。
- 生成任务:如图像生成或文本生成(通过自回归解码器)。
二、多模态大模型的设计模式
-
单流(Single-Stream)架构
将所有模态的特征统一输入到一个 Transformer 模型中处理。- 优点:模型结构简单,模态间交互紧密。
- 缺点:不同模态可能有冲突,学习难度较大。
- 示例:Unified-IO。
-
双流(Dual-Stream)架构
各模态使用独立的编码器生成特征表示,然后通过交互模块(如 Cross-Attention)进行模态融合。- 优点:对模态特定特征的学习更充分。
- 缺点:需要设计额外的交互模块,可能增加计算复杂度。
- 示例:CLIP、ALIGN。
-
模块化设计(Modular Design)
为每个模态设计专用模块,并通过统一框架将它们集成。- 示例:Flamingo 使用冻结的图像编码器与语言模型。
三、工作流程概述
以一个多模态问答任务为例:
-
输入阶段:接收用户输入的文本问题和相关图像。
- 文本模态通过语言模型编码为嵌入。
- 图像模态通过视觉模型提取特征。
-
跨模态对齐:将图像和文本嵌入对齐到统一空间,以建立语义关联。
-
模态融合:通过多层交互模块(如 Transformer)对图像和文本特征进行深度融合。
-
任务解码:通过生成器或分类器,生成答案或其他输出。
InternVL 是一种用于多模态任务的深度学习模型,旨在处理和理解多种类型的数据输入,如图像和文本。它结合了视觉和语言模型,能够执行复杂的跨模态任务,比如图文匹配、图像描述生成等。通过整合视觉特征和语言信息,InternVL 可以在多模态领域取得更好的表现。
按照命令行进行启动,发现踩坑了,图片全部都404
经过排查后 发现 需要在本地做一下端口映射
ssh -CNg -L 1096:127.0.0.1:1096 root@ssh.intern-ai.org.cn -p 32322
不能直接在控制台点击,手动到http://127.0.0.1:1096/
这一次 成功了,也可以正确识别出来 ✅
按照教程配置出来,成功完成训练
最后成功生成转换后的文件
微调前
微调后
我这图片不知道为什么加载不出来