多模態(tài)大模型Ovis核心技術(shù)點(diǎn)、訓(xùn)練方法、數(shù)據(jù)細(xì)節(jié) 原創(chuàng)
文章提出:傳統(tǒng)的 MLLMs 中,文本嵌入是從 LLM 的嵌入查找表中索引得到的,而視覺(jué)嵌入是由視覺(jué)編碼器(如:ViT)直接生成的連續(xù)向量。這種差異導(dǎo)致在視覺(jué)和文本信息融合時(shí)存在挑戰(zhàn)。
與傳統(tǒng)的MLLM不同,Ovis 通過(guò)在視覺(jué)編碼器的過(guò)程中引入一個(gè)額外的視覺(jué)嵌入查找表來(lái)解決這個(gè)問(wèn)題。這種方法使得視覺(jué)嵌入的生成過(guò)程與文本嵌入類似。
效果
核心創(chuàng)新
從下面模型結(jié)構(gòu)代碼可以看到,Ovis和傳統(tǒng)的LLava架構(gòu)其實(shí)差不多,最大的區(qū)別就是LLava使用MLP,Ovis使用“視覺(jué)詞匯”。
模型結(jié)構(gòu)代碼
Ovis 的核心創(chuàng)新在于其視覺(jué)嵌入表的引入:
- 圖(a):基于連接器的MLLM:傳統(tǒng)多模態(tài)模型(如LLava)的典型架構(gòu),連接器通常是一個(gè)MLP,其作用是將視覺(jué)特征投影到與文本嵌入相同的維度空間中。
- 圖(b):Ovis的結(jié)構(gòu)化嵌入對(duì)齊:視覺(jué)編碼器的輸出不再直接通過(guò)MLP投影,而是送入一個(gè)視覺(jué)嵌入表(Visual Embedding Table)。這個(gè)表是一個(gè)可學(xué)習(xí)的結(jié)構(gòu),類似于文本嵌入。表。
- 視覺(jué)編碼器:圖像首先被視覺(jué)編碼器(如 ViT)處理,分為多個(gè)patches,每個(gè)patch生成一個(gè)連續(xù)的特征向量。
- 視覺(jué)嵌入表:不同于傳統(tǒng)方法直接通過(guò) MLP 投影,Ovis 在視覺(jué)編碼器后整合了一個(gè)可學(xué)習(xí)的視覺(jué)嵌入表。每個(gè)圖像patch的特征向量用于多次索引該表,生成最終的視覺(jué)嵌入。為了使視覺(jué)和文本嵌入具有兼容的形狀,視覺(jué)嵌入表的維度設(shè)置為與文本嵌入表相同。
視覺(jué)嵌入表實(shí)現(xiàn)過(guò)程
- 嵌入對(duì)齊:視覺(jué)嵌入表的引入使得視覺(jué)嵌入的生成方式與文本嵌入類似。文本嵌入通常通過(guò)查找表為每個(gè)token分配一個(gè)嵌入向量,而 Ovis 通過(guò)視覺(jué)嵌入表為視覺(jué)patch生成結(jié)構(gòu)化的嵌入,實(shí)現(xiàn)了兩者的對(duì)齊。
訓(xùn)練方法
訓(xùn)練分為三個(gè)階段:
階段 1:初始化訓(xùn)練
在這個(gè)階段,凍結(jié) LLM 和視覺(jué)編碼器的大部分參數(shù),僅隨機(jī)初始化視覺(jué)編碼器的最后一塊參數(shù)。使用視覺(jué)描述數(shù)據(jù)集(如 COYO)來(lái)訓(xùn)練這些新初始化的參數(shù),以及 Ovis 的投影矩陣 和視覺(jué)嵌入表 。
階段 2:擴(kuò)展訓(xùn)練
在這個(gè)階段,解凍 Ovis 的投影矩陣 和視覺(jué)嵌入表 ,并繼續(xù)訓(xùn)練視覺(jué)編碼器的所有參數(shù)。使用視覺(jué)描述數(shù)據(jù)集(如 ShareGPT4V-Pretrain)進(jìn)行訓(xùn)練。這個(gè)階段的目標(biāo)是進(jìn)一步優(yōu)化視覺(jué)嵌入的生成。
階段 3:多模態(tài)指令學(xué)習(xí)
在前兩個(gè)階段的基礎(chǔ)上,解凍 LLM 模塊,并在多模態(tài)指令數(shù)據(jù)集(如 LLaVA-Finetune)上訓(xùn)練整個(gè)模型。這個(gè)階段的目的是賦予 Ovis 跟隨多模態(tài)指令的能力。
訓(xùn)練超參數(shù)設(shè)置:
訓(xùn)練數(shù)據(jù)集
參考文獻(xiàn):Ovis: Structural Embedding Alignment for Multimodal Large Language Model,https://arxiv.org/abs/2405.20797
公眾號(hào)大模型自然語(yǔ)言處理 作者:余俊暉
原文鏈接:??https://mp.weixin.qq.com/s/IMhx1_b6mTnughMTzw5zrA???
