缩小视觉编码器的尺寸,能够有效的降低多模态大模型的参数量。再来看一个整体的工作,从视觉侧和语言模型侧综合考量模型参数量的平衡模式,进一步降低参数量,甚至最小达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