那么如何在预训练LLM的基础上引入跨模态的信息(包括图像、语音、视频模态),让其变得更强大、更通用呢?本节将介绍“大模型+多模态”的3种实现方法。
以LLM为核心,调用其他多模态组件
微软亚洲研究院(MSRA)联合浙江大学发布了HuggingGPT框架,该框架能够以LLM为核心,调用其他的多模态组件来合作完成复杂的AI任务,下面根据论文中提到的示例来一步一步地拆解 HuggingGPT框架的执行过程。
假如现在你要执行这样一个复杂的AI任务:生成一张一个小女孩正在读书的照片,要求她的姿势和示例照片中的小男孩的姿势相同,然后用你的声音来描述新生成的照片。HuggingGPT框架把执行这个复杂AI任务的过程分成了4个步骤。
(1)任务规划(Task Planning)。使用LLM了解用户的意图,并将用户的意图拆分为详细的执行步骤。如图5-10左上部分所示,将输入指令拆分为6个子步骤。
(2)模型选择(Model Selection)。根据步骤(1)中拆分的不同子步骤,从Hugging Face平台(一个包含多个模型的开源平台)中选取最合适的模型。
(3)任务执行(Task Execution)。调用步骤(2)中选定的各个模型依次执行,并将执行的结果返回给LLM。
(4)响应生成(Response Generation)。使用LLM对步骤(3)中各个模型返回的结果进行整合,得到最终的结果并进行输出。
基于多模态对齐数据训练多模态大模型
这种方法是直接利用多模态的对齐数据来训练多模态大模型,《多模态大模型:技术原理与实战》一书5.3节中介绍了诸多模型,例如VideoBERT、CLIP、CoCa、CoDi等都是基于这种思路实现的。
这种方法的核心理念是分别构建多个单模态编码器,得到各自的特征向量,然后基于类Transformer对各个模态的特征进行交互和融合,实现在多模态的语义空间对齐。