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