開源的輕量化VLM-SmolVLM模型架構(gòu)、數(shù)據(jù)策略及其衍生物PDF解析模型SmolDocling
縮小視覺編碼器的尺寸,能夠有效的降低多模態(tài)大模型的參數(shù)量。再來看一個整體的工作,從視覺側(cè)和語言模型側(cè)綜合考量模型參數(shù)量的平衡模式,進一步降低參數(shù)量,甚至最小達256M參數(shù)量,推理時顯存占用<1GB。下面來看看,僅供參考。
模型架構(gòu)
SmolVLM 架構(gòu)。圖像被分割成子圖像,從視頻中采樣幀,然后編碼成視覺特征。這些特征首先通過像素重排,然后通過MLP投影映射到LLM輸入空間作為視覺標(biāo)記。然后,視覺標(biāo)記與文本嵌入(橙色/紅色)連接/交錯。這個組合序列被傳遞給LLM進行文本輸出。
那么,如何設(shè)計一個高效的小型多模態(tài)模型架構(gòu)?
Q1: 如何在視覺和語言模型之間分配計算?
傳統(tǒng)大型VLMs(如Flamingo)將90%以上參數(shù)分配給語言模型(LM),但SmolVLM發(fā)現(xiàn):小規(guī)模LM需重新平衡視覺與語言的計算資源。
研究方法:將三種不同規(guī)模的SmolLM2變體(135M、360M和1.7B參數(shù))與兩種SigLIP編碼器(一個緊湊的93M SigLIP-B/16和一個較大的428M SigLIP-SO400M)進行配對。
發(fā)現(xiàn):通常情況下,較大的VLM會不均衡地將參數(shù)分配給語言模型,但在小型模型中,這種分配方式不再適用。當(dāng)使用大型編碼器與最小的LM(135M)時,性能顯著下降,表明這種配置效率低下。在中等規(guī)模的LM(360M)中,較大的編碼器可以提高性能,但會增加66%的參數(shù)。只有在最大的LM(1.7B)中,較大的編碼器僅增加10%的參數(shù)。
結(jié)論:緊湊的多模態(tài)模型受益于平衡的編碼器-LM參數(shù)分配,使得較小的視覺編碼器在效率上更具優(yōu)勢。即:模型越小,視覺編碼器應(yīng)更輕量,避免“頭重腳輕”。當(dāng)使用具有最小LM(135M)的大編碼器時,性能顯著下降,突顯了編碼器-LM平衡效率低下。在中等LM規(guī)模(360M)時,較大的編碼器將性能提高了11.6%,但這也伴隨著參數(shù)增加了66%,使得緊湊型編碼器更可取。只有在最大的LM規(guī)模(1.7B)時,較大的編碼器僅代表參數(shù)增加了10%。
圖片
圖片
Q2: 如何有效地將圖像傳遞給語言模型?
如何支持長上下文與對視覺token進行壓縮?為了提高模型的上下文處理能力,采用了自注意力架構(gòu),其中視覺Token與文本token連接,并由語言模型共同處理。這種方法需要比SmolLM2的2ktoken限制更多的上下文。
研究方法:通過增加RoPE基數(shù)從10k到273k來擴展上下文容量,并在長上下文數(shù)據(jù)(如Dolma書籍和The Stack)和短上下文數(shù)據(jù)(如FineWeb-Edu、DCLM和SmolLM2的數(shù)學(xué)數(shù)據(jù))上進行微調(diào)。
發(fā)現(xiàn):擴展上下文窗口對緊湊VLM有顯著的好處。對于1.7B的LM,微調(diào)在16ktoken時表現(xiàn)穩(wěn)定,但對于較小的模型(135M和360M),在超過8k token時表現(xiàn)不佳。因此,研究者們?yōu)镾molVLM采用了16k token的上下文,并為較小的變體設(shè)定了8k token的限制。
圖片
圖片
像素重排:重新排列編碼圖像,以增加通道深度為代價換取空間分辨率。這減少了視覺標(biāo)記數(shù)量,同時保持信息密度。
圖片
圖片
原理:將2×2空間區(qū)域重組為通道維度(上圖),token數(shù)減少4倍(r=2時)。
較小的VLMs從更激進的壓縮(r = 4)中受益,因為減少的token數(shù)減輕了注意力開銷并改善了長上下文建模
較小的VLMs從更激進的壓縮(r = 4)中受益,因為減少的token數(shù)減輕了注意力開銷并改善了長上下文建模
較小的VLMs從更激進的壓縮(r = 4)中受益,因為減少的token數(shù)減輕了注意力開銷并改善了長上下文建模
對比基線:InternVL等使用r=2,但SmolVLM證明小模型需更激進壓縮。
結(jié)論:小型VLM顯著受益于擴展的上下文長度。
Q3: 如何有效地編碼圖像和視頻?
在多模態(tài)建模中,平衡圖像和視頻之間的token分配至關(guān)重要。圖像通常需要更高的分辨率和更多的token來保持質(zhì)量,而視頻則需要更少的token來高效處理長序列。
研究方法:采用了一種圖像分割策略,靈感來自UReader和SPHINX,將高分辨率圖像分割成多個子圖像,并保留原始圖像的縮小版本。這種方法在不增加過多計算開銷的情況下保持了圖像質(zhì)量。
視頻處理:對于視頻,發(fā)現(xiàn)幀平均策略會負面影響性能(下圖)。因此,選擇不采用幀平均策略,而是將視頻幀重新縮放到圖像編碼器的分辨率。
圖片
圖片
結(jié)論:對于小型模型,圖像分割增強了視覺任務(wù)的表現(xiàn),而視頻幀平均則不適用。
數(shù)據(jù)策略
數(shù)據(jù)配比:最終訓(xùn)練集含14%文本、33%視頻、53%圖像
視覺(左側(cè))和視頻(右側(cè))的訓(xùn)練數(shù)據(jù)集詳情,按模態(tài)和子類別細分
視覺(左側(cè))和視頻(右側(cè))的訓(xùn)練數(shù)據(jù)集詳情,按模態(tài)和子類別細分
性能
圖片
圖片
圖片
衍生模型-端到端的PDF解析多模態(tài)模型SmolDocling
模型結(jié)構(gòu):就是SmolVLM
圖片
圖片
訓(xùn)練數(shù)據(jù)(該模型核心):訓(xùn)練數(shù)據(jù)構(gòu)造上,引入了一種新的文檔標(biāo)記格式DocTags,用于標(biāo)準(zhǔn)化文檔轉(zhuǎn)換,這個是核心意義。DocTags定義了一個明確的標(biāo)簽和規(guī)則集,以分離文本內(nèi)容和文檔結(jié)構(gòu),從而提高圖像到序列模型的性能,如下圖:
圖片
圖片
對應(yīng)的語法
圖片
圖片
從上面類XML標(biāo)簽語法看來,感覺設(shè)計的非常冗余。整體上結(jié)合模型架構(gòu)也沒什么特殊的創(chuàng)新點,并且,之前被自媒體吹得性能很強,實際上,該模型還是demo玩具。個人使用后觀點。
參考文獻:SmolVLM: Redefining small and efficient multimodal models,https://arxiv.org/pdf/2504.05299
開源地址:https://github.com/huggingface/smollm