简单聊聊多模态大语言模型MLLM

阅前声明:

本文是笔者阅读相关文章后,按个人理解的总结。如有不正之处,欢迎指正!

参考文章:

https://zhuanlan.zhihu.com/p/674698482

https://zhuanlan.zhihu.com/p/1903914328081540180

MLLM经典综述:A Survey on Multimodal Large Language Models

MLLM的训练过程:

MMLLM训练过程中,主要包含三个步骤:预训练->指令微调->对齐微调

这三个步骤的主要功能分别是:

预训练 :基于一般的LLM模型,模态编码器,模态接口,这一步主要的功能实现MLLM对多模态的通用世界知识的认识;

指令微调:区别于一般的SFT(有监督微调)方法,使用"指令"辅助训练(也即类似提示词工程),提升MLLM的泛化能力。实现zero-shot的能力(即零样本性能,在没有经历过训练的数据上也能有较好的表现)。

对齐微调:这一步相当于对MLLM模型能力的进一步修正,约束模型的输出范围,让模型的输出更加规范,符合人类社会的伦理要求之类。换言之,就是要让模型的输出符合人类偏好,修正模型的不良行为。

个人理解,对齐微调有点类似LLM中的RAG功能,让MLLM只输出某个范围内的知识。

下面进一步介绍一下这三个步骤的主要内容:

预训练:

预训练过程主要包含三个结构:LLM模型,模态编码器,模态接口

LLM:

传统的LLM只有文本输入文本输出的功能,输入端和输出端的数据类型都是文本。LLM作为MLLM的关键结构之一,如何让LLM能够理解其他类型的数据,这是关键的一步,这一步的实现主要依靠模态编码器

另外,关于LLM,这里有一点就是LLM的架构问题。一般分为密集型模型架构和稀疏模型架构。这两种架构的区别在于:"训练时有多少比例的模型参数会被激活参与计算"。有点类似于传统神经网络中的drop_out操作。主流的稀疏模型架构就是混合专家模型(MoE),其主要还是基于Transformer架构。具体这种模型是什么原理,如何实现稀疏训练的,读者可自行了解。使用稀疏模型的一个好处就是:可以选择性的激活参数来扩展总参数大小,而不会增加计算成本。这种架构貌似正成为主流。

模态编码器:

这个模型的结构其实就是将不同类型的数据进行转化。一般是通过向量化,映射到语义空间的方式,然后通过训练,尽可能将其他数据类型的语义向量和文本向量在语义空间进行对齐。这部分可以参考我的另外一篇关于"语义空间"的介绍。

这里有非常多的经典模态编码器,如CLIP等。许多MLLM都是直接使用这些经典的预训练模态编码器的。

模态接口:

前文提到,模态编码器是将具有相同含义的不同类型数据映射到一个语义空间,让这些数据所对应的语义向量尽可能的接近。但这还并不能将其他数据类型和文本数据类型衔接起来,然后输入到LLM中训练。比如,"一张画有猫的图片"和"这是一只猫的文本",尽管通过模态编码器,这两个数据所对应的语义向量在语义空间非常接近,但他们仍无法重合,无法关联起来。虽然他们很近,但MLLM并不知道这二者可以是等同。此时,就需要模态接口,模态接口就相当于将这两个向量进行映射,使他们一一对应起来。让"一张画有猫的图片"和"这是一只猫的文本"所对应的两个语义向量具有等同关系。

模态编码器经过大量的训练,就能够知道该将哪些语义向量关联起来。这样,就实现了其他类型数据到文本类型数据的转化。

最后,关联起来之后,一种常见的处理方式就是将模态编码器输出的特征转化为token和文本token连接在一起,输入给LLM进行下一步的处理。

指令微调:

这里的"指令"其实是一种标准结构化的数据类型,也即是一些模版数据,数据集就是许多条指令。用这些数据去进行微调训练,这种训练方式有点类似于提示词功能。这里需要介绍一下传统的SFT(监督微调)和指令微调训练的区别,以及为什么在MLLM的训练中使用这种微调方式。

指令数据具有类似这样的结构:

介绍:<用户的问题>

输入:{<图片>,<文本>...}

输出:<...>

首先,这里需要注意的一点是,指令微调也是一种监督学习策略。只不过他和一般的监测学习策略有些不同。

比如,对于一条指令训练数据 ,假设指令的问题部分是:"将这段文本分类为消极或积极",另外一个指令数据的问题部分是:"判断这段文本的情感倾向"。通过提供大量这种表达方式不同,但含义相同的句子,模型通过学习就能够自动总结出这些句子的核心要点,当出现一个含义相同即使陌生的问题时,MLLM也能够题解"问题"是什么,这就显著提高了模型的泛化能力和Zero-Shot能力。这里和一般的监督学习不同的点在于,通过指令这种数据格式,训练的过程其实是利用LLM对自然语言的理解能力的。这就像在训练一个已经掌握知识的学生,老师只需要通过指令的形式进行点拨,就能理解和完成新的任务。

而传统的监督学习,需要在大量的数据和标签中,进行一一映射的关系学习,这个过程往往是从空白开始的,且在训练的过程中,并没有对模型本身能力的复用。此外,传统监督模型,本质上是模型在记忆许多输入和输出关系的映射,当训练数据不足时,模型的泛化能力往往很差。而指令微调训练的模型,可以根据语义和逻辑,结合自身知识进行推理和响应,泛化能力更前。

对齐微调:

关于对齐微调,主要的方法有:强化学习与人类反馈(RLHF)和直接偏好优化(DPO)。

对于对齐微调这一步的目的并不难理解,再具体实现上,归根到底还是有奖有罚类的监督学习,让模型的输出符合人类要求规范,在此不做进一步的介绍。

写在最后:

在简单了解了MLLM的原理后,笔者其实对于现有的传统神经网络算法产生了一定担忧。在最初,原以为多模态大语言模型是采用传统视觉模型/音频模型等+LLM的方式实现。但现实是:其将数据采取了新的利用方式,将多模态的数据token化了去处理。这种处理方式和传统的神经网络算法是完全不同的。

笔者近期也测试了豆包的MLLM,发现其对数字识别,图像分类,危险检测等这些粗粒度领域的视觉问题,有非常高的准确度,而且对图片的质量要求,鲁棒性,域自适应能力都非常强。这对于该领域的传统神经网络方法是一个巨大的打击。也无法否认,现在大模型方向越来越主流。

但值得庆幸的是,对于一些细粒度问题,以及生成需求上,现阶段的MLLM还不能够很好的胜任。比如一个非常简单的任务:利用红色检测框,圈出图片中的某个物体,返回处理后的图像。MLLM不仅无法准确圈出目标对象,甚至还会修改原始输入的图片。

究其原因,现阶段的大模型对于多模态->文本的理解,这一步已经做的越来越好了;但是对于文本理解->多模态,仍有较大的提升空间。且本质上,这是一个将图片数据打散又重新还原的过程,目前还存在较大问题。

相关推荐
深圳多奥智能一卡(码、脸)通系统5 分钟前
智能二维码QR\刷IC卡\人脸AI识别梯控系统功能设计需基于模块化架构,整合物联网、生物识别、权限控制等技术,以下是多奥分层次的系统设计框架
人工智能·门禁·电梯门禁·二维码梯控·梯控·电梯
批量小王子7 分钟前
2025-08-19利用opencv检测图片中文字及图片的坐标
人工智能·opencv·计算机视觉
没有梦想的咸鱼185-1037-16631 小时前
SWMM排水管网水力、水质建模及在海绵与水环境中的应用
数据仓库·人工智能·数据挖掘·数据分析
即兴小索奇1 小时前
【无标题】
人工智能·ai·商业·ai商业洞察·即兴小索奇
国际学术会议-杨老师1 小时前
2025年计算机视觉与图像国际会议(ICCVI 2025)
人工智能·计算机视觉
欧阳小猜2 小时前
深度学习②【优化算法(重点!)、数据获取与模型训练全解析】
人工智能·深度学习·算法
fsnine2 小时前
深度学习——神经网络
人工智能·深度学习·神经网络
有Li2 小时前
CXR-LT 2024:一场关于基于胸部X线的长尾、多标签和零样本疾病分类的MICCAI挑战赛|文献速递-深度学习人工智能医疗图像
论文阅读·人工智能·算法·医学生
的小姐姐2 小时前
AI与IIOT如何重新定义设备维护系统?_璞华大数据Hawkeye平台
大数据·人工智能
arron88992 小时前
(双类别检测:电动车 + 头部,再对头部分类)VS 单类别检测 + ROI 分类器 方案
人工智能