多模态大模型轻量化探索-开源SmolVLM模型架构、数据策略及其衍生物PDF解析模型SmolDocling

在《多模态大模型轻量化探索-视觉大模型SAM的视觉编码器》介绍到,缩小视觉编码器的尺寸,能够有效的降低多模态大模型的参数量。再来看一个整体的工作,从视觉侧和语言模型侧综合考量模型参数量的平衡模式,进一步降低参数量,甚至最小达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数减轻了注意力开销并改善了长上下文建模

对比基线: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录第36天:动态规划9(序列问题)

一、最长递增子序列&#xff08;Leetcode 300&#xff09; 1.dp数组定义&#xff1a; dp[i] 为以 nums[i] 结尾的最长递增子序列长度。 2.状态转移&#xff1a; dp[i] max(dp[i], dp[j] 1) for all j < i and nums[j] < nums[i] 2.dp数组初始化&#xff1a; 所有 …

【Spring Boot 注解】@SpringBootApplication

文章目录 SpringBootApplication注解一、简介二、使用1.指定要扫描的包 SpringBootApplication注解 一、简介 SpringBootApplication 是 Spring Boot 提供的一个注解&#xff0c;通常用于启动类&#xff08;主类&#xff09;上&#xff0c;它是三个注解的组合&#xff1a; 1.…

openstack虚拟机状态异常处理

1、openstack虚拟机task_state状态异常处理 问题描述&#xff1a; 正常状态&#xff1a; 异常状态&#xff1a; 任务状态应为 无&#xff0c;但该虚拟机为None。无法执行开机、关机等操作。 当前异常状态下通过命令行关闭虚拟机会报错&#xff0c;报错信息如下&#xff1a; […

【数据结构】手撕二叉搜索树

目录 二叉搜索树的概念二叉搜索树的实现节点类构造函数拷贝构造函数赋值运算符重载析构函数插入函数查找函数删除函数中序遍历 二叉搜索树的应用(k和k/v模型 ) 二叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树…

蓝桥杯 20. 倍数问题

倍数问题 原题目链接 题目描述 众所周知&#xff0c;小葱同学擅长计算&#xff0c;尤其擅长判断一个数是否是另一个数的倍数。但当面对多个数时&#xff0c;他就比较苦恼了。 现在小葱给了你 n 个数&#xff0c;希望你从中找出三个数&#xff0c;使得这三个数的 和是 K 的倍…

SpirngAI框架 Advisor API详解

SpringAI提供了Advisors API来实现请求和响应的拦截&#xff0c;修改&#xff0c;增强Spring应用程序和AI模型的互动。 可以使用ChatClient API来配置现有的advisor&#xff0c;例如&#xff1a; var chatClient ChatClient.builder(chatModel) .defaultAdvisors( new Message…

用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本1(Client端)

这里我们来实现这个RPC的client端 为了实现RPC的效果&#xff0c;我们调用的Hello方法&#xff0c;即server端的方法&#xff0c;应该是由代理来调用&#xff0c;让proxy里面封装网络请求&#xff0c;消息的发送和接受处理。而上一篇文章提到的服务端的代理已经在.rpc.go文件中…

bpftrace 中使用 bpf_trace_printk

bpf_trace_printk bcc 中可以通过 bpf_trace_printk 来打印输出 , 同时有个非常有用的功能, 同时输出到 /sys/kernel/tracing/trace 文件中 比如bcc代码 // read_trace.c&#xff08;eBPF 内核态代码&#xff09; #include <vmlinux.h> #include <bpf/bpf_helpers.h…

解决 Chrome 与 Chromedriver 版本不一致问题的方法

目录 常见错误处理 处理方案&#xff1a; 1. 自动版本匹配方法 使用 webdriver-manager 库&#xff08;推荐&#xff09; 2. 手动版本管理方法 检查并匹配版本 3. 版本兼容性解决方案 使用兼容性表 4. 自动更新策略 定期检查更新脚本 5. Docker 容器化方案 最佳实践建…

【强化学习】强化学习算法 - 多臂老虎机问题

1、环境/问题介绍 概述&#xff1a;多臂老虎机问题是指&#xff1a;智能体在有限的试验回合 &#x1d447; 内&#xff0c;从 &#x1d43e; 台具有未知奖赏分布的“老虎机”中反复选择一个臂&#xff08;即拉杆&#xff09;&#xff0c;每次拉杆后获得随机奖励&#xff0c;目…

pcie协议复位

pcie协议复位共有4中情况&#xff1b;cold reset&#xff1b;warm reset&#xff1b;hot reset&#xff1b;function level reset&#xff1b; 分类&#xff1a; 依据spec 6.6&#xff1a; Conventional reset&#xff08;传统复位&#xff09;&#xff1a;cold&#xff0c;…

Redis--哈希类型

目录 一、Hash 哈希 1.2 常用命令 1.2.1 HSET 1.2.2 HGET 1.2.3 HEXISTS 1.2.4 HDEL 1.2.5 HKEYS 1.2.6 HVALS 1.2.7 HGETALL 1.2.8 HMGET 1.2.9 HLEN 1.2.10 HSETNX 1.2.11 HINCRBY 1.2.12 HINCRBYFLOAT 1.3 内部编码 一、Hash 哈希 几乎所有的主流编程语言都提…

华为安全认证好还是数通认证好?

在华为认证体系中&#xff0c;安全认证 与数通认证 &#xff08;数据通信&#xff09;是两个热门方向&#xff0c;分别面向网络安全与网络架构领域。 安全和数通的技术难度对比 市场需求 安全认证&#xff1a;随着网络安全形势日益严峻&#xff0c;企业对网络安全的重视程度不…

Nacos源码—5.Nacos配置中心实现分析二

大纲 1.关于Nacos配置中心的几个问题 2.Nacos如何整合SpringBoot读取远程配置 3.Nacos加载读取远程配置数据的源码分析 4.客户端如何感知远程配置数据的变更 5.集群架构下节点间如何同步配置数据 4.客户端如何感知远程配置数据的变更 (1)ConfigService对象使用介绍 (2)客…

电力MOSFET的专用集成驱动电路IR2233

IR2233是IR2133/IR2233/IR2235 系列驱动芯片中的一种,是专为高电压、高速度的电力MOSFET和IGBT驱动而设计的。该系列驱动芯片内部集成了互相独立的三组板桥驱动电路,可对上下桥臂提供死区时间,特别适合于三相电源变换等方面的应用。其内部集成了独立的运算放大器可通过外部桥…

六级阅读———2024.12卷一 仔细阅读2

文章 An awakening has been taking place in the physical world against the beauty model that has been dictated to us for years.But in the digital arena,social media determines what is considered beautiful.(51) The two opposing struggles are taking place i…

【C/C++】errno/strerror 和 GetLastError()/FormatMessage 的区别

strerror 和 errno 详解 printf("Error: %s\n", strerror(errno));这行代码用于在 C 语言中输出系统错误信息&#xff0c;但它与 Windows 的 GetLastError() 有重要区别。下面我将详细解释每个部分及其工作原理。 1. 组件解析 errno 定义&#xff1a;errno 是一个…

Unicode和UTF - 8主要有以下区别

Unicode和UTF - 8主要有以下区别 概念范畴 Unicode:是字符集 。它为世界上几乎所有的字符(包括各国文字、标点符号、特殊符号等)分配了唯一的编号,这个编号也叫码位、码点,比如“中”字的Unicode码点是U+4E2D 。它规定了字符的抽象表示,只关注字符与数字编号的对应关系,…

企业数字化转型第二课:接受不完美(1/2)

一.引言 先看一组中国企业数字化转型相关的数据&#xff1a; 战略认知层面&#xff1a;92%中国企业将数字化纳入战略核心&#xff08;麦肯锡2023&#xff09;执行困境层面&#xff1a;63%企业转型首年遭遇重大挫折&#xff08;BCG 2024追踪&#xff09;价值释放周期&#xff1…

OSCP - Proving Grounds - Sumo

主要知识点 ShellShock漏洞dirtycow提权 具体步骤 执行nmap扫描,比较直观&#xff0c;22和80端口开放&#xff0c;但是80端口没有什么内容 Nmap scan report for 192.168.210.87 Host is up (0.44s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERV…