多模态大模型轻量化探索-开源SmolVLM模型架构、数据策略及其衍生物PDF解析模型SmolDocling
在《多模态大模型轻量化探索-视觉大模型SAM的视觉编码器》介绍到,缩小视觉编码器的尺寸,能够有效的降低多模态大模型的参数量。再来看一个整体的工作,从视觉侧和语言模型侧综合考量模型参数量的平衡模式,进一步降低参数量,甚至最小达256M参数量,推理时显存占用<1GB。下面来看看,仅供参考。
模型架构
那么,如何设计一个高效的小型多模态模型架构?
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时)。
对比基线: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
相关文章:
多模态大模型轻量化探索-开源SmolVLM模型架构、数据策略及其衍生物PDF解析模型SmolDocling
在《多模态大模型轻量化探索-视觉大模型SAM的视觉编码器》介绍到,缩小视觉编码器的尺寸,能够有效的降低多模态大模型的参数量。再来看一个整体的工作,从视觉侧和语言模型侧综合考量模型参数量的平衡模式,进一步降低参数量…...
gRPC学习笔记记录以及整合gin开发
gprc基础 前置环境准备 grpc下载 项目目录下执行 go get google.golang.org/grpclatestProtocol Buffers v3 https://github.com/protocolbuffers/protobuf/releases/download/v3.20.1/protoc-3.20.1-linux-x86_64.zip go语言插件: go install google.golang.…...
Linux diff 命令使用详解
简介 Linux 中的 diff 命令用于逐行比较文件。它以各种格式报告差异,广泛应用于脚本编写、开发和补丁生成。 基础语法 diff [OPTION]... FILES常用选项 -i:忽略大小写 -u:打印输出时不包含任何多余的上下文行 -c:输出不同行周…...
非对称加密算法(RSA、ECC、SM2)——密码学基础
对称加密算法(AES、ChaCha20和SM4)Python实现——密码学基础(Python出现No module named “Crypto” 解决方案) 这篇的续篇,因此实践部分少些; 文章目录 一、非对称加密算法基础二、RSA算法2.1 RSA原理与数学基础2.2 RSA密钥长度…...
【安装指南】Chat2DB-集成了AI功能的数据库管理工具
一、Chat2DB 的介绍 Chat2DB 是一款开源的、AI 驱动的数据库工具和 SQL 客户端,提供现代化的图形界面,支持 MySQL、Oracle、PostgreSQL、DB2、SQL Server、SQLite、H2、ClickHouse、BigQuery 等多种数据库。它旨在简化数据库管理、SQL 查询编写、报表生…...
【C++】认识map和set
目录 前言: 一:认识map和set 二:map和set的使用 1.set的使用 2.map的使用 三:map的insert方法返回值 四:map的[ ]的使用 五:multiset和multimap 六:map和set的底层数据结构 七&#x…...
LWIP带freeRTOS系统移植笔记
以正点原子学习视频为基础的文章 LWIP带freeRTOS系统移植 准备资料/工程 1、lwIP例程1 lwIP裸机移植 工程 , 作为基础工程 改名为LWIP_freeRTOS_yizhi工程 2、lwIP例程6 lwIP_FreeRTOS移植 工程 3、freeRTO源码 打开https://www.freertos.org/网址下载…...
【MinerU技术原理深度解析】大模型时代的文档解析革命
目录 一、MinerU概述 获取MinerU 二、核心功能与技术亮点 1. 多模态解析能力 2. 高效预处理能力 3. 多场景适配性 4. API服务 三、技术架构解析 3.1 概述 1. 模块化处理流程 2. 关键模型与技术 3.2 核心组件技术原理 3.2.1 布局检测(Layout Detection) 3.2.2 公式…...
rabbitMQ如何确保消息不会丢失
rabbitmq消息丢失的三种情况 生产者将消息发送到RabbitMQ的过程中时,消息丢失。消息发送到RabbitMQ,还未被持久化就丢失了数据。消费者接收到消息,还未处理,比如服务宕机导致消息丢失。 解决方案 生产者发送过程中,…...
数字智慧方案5970丨智慧农业大数据服务建设方案(69页PPT)(文末有下载方式)
详细资料请看本解读文章的最后内容。 资料解读:智慧农业大数据服务建设方案 在当今数字化时代,农业领域也正经历着深刻变革,智慧农业大数据服务建设方案应运而生。这一方案对推动农业现代化进程意义非凡,下面让我们深入剖析其核心…...
英一真题阅读单词笔记 22-23年
2022年真题阅读单词 2022 年 Text 1 第一段 1 complain [kəmˈpleɪn] v. 抱怨,投诉;诉说(病痛) 2 plastic [ˈplstɪk] n. 塑料;信用卡 a. 造型的,塑造的;塑料制的 3 durable [ˈd…...
Java大师成长计划之第10天:锁与原子操作
📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4o-mini模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中,锁与原子…...
2025大模型安全研究十大框架合集(10份)
2025大模型安全研究十大框架合集的详细介绍: Anthropic AI信任研究框架 Anthropic于2024年10月更新的《安全责任扩展政策》(RSP),提出了一个灵活的动态AI风险治理框架。该框架规定当AI模型达到特定能力时,将自动升级安全措施,如…...
溯因推理思维——AI与思维模型【92】
一、定义 溯因推理思维模型是一种从结果出发,通过分析、推测和验证,寻找导致该结果的可能原因的思维方式。它试图在已知的现象或结果基础上,逆向追溯可能的原因,构建合理的解释框架,以理解事物的本质和内在机制。 二、由来 溯因推理的思想可以追溯到古希腊哲学家亚里士…...
系统架构设计师:设计模式——结构型设计模式
一、结构型设计模式 结构型设计模式涉及如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父类的性质。 这一模式尤其有助于多个独立开发的类库协…...
接口测试实战指南:从入门到精通的质量保障之道
为什么接口测试如此重要? 在当今快速迭代的软件开发环境中,接口测试已成为质量保障体系中不可或缺的一环。据统计,有效的接口测试可以发现约70%的系统缺陷,同时能将测试效率提升3-5倍。本指南将从实战角度出发,系统性…...
对第三方软件开展安全测评,如何保障其安全使用?
对第三方软件开展安全测评,能够精准找出软件存在的各类安全隐患,进而为软件的安全使用给予保障。此次会从漏洞发现、风险评估、测试环境等多个方面进行具体说明。 漏洞发现情况 在测评过程中,我们借助专业技术与工具,对第三方软…...
计算方法实验四 解线性方程组的间接方法
【实验性质】 综合性实验。 【实验目的】 掌握迭代法求解线性方程组。 【实验内容】 应用雅可比迭代法和Gauss-Sediel迭代法求解下方程组: 【理论基础】 线性方程组的数值解法分直接算法和迭代算法。迭代法将方程组的求解转化为构造一个向量序列&…...
Qt 中基于 QTableView + QSqlTableModel 的分页搜索与数据管理实现
Qt 中基于 QTableView QSqlTableModel 的分页搜索与数据管理实现 一、组件说明 QTableView:一个基于模型的表格视图控件,支持排序、选择、委托自定义。QSqlTableModel:与数据库表直接绑定的模型类,可用于展示和编辑数据库表数据…...
云计算-容器云-服务网格Bookinfo
服务网格:创建 Ingress Gateway 将 Bookinfo 应用部署到 default 命名空间下,请为 Bookinfo 应用创建一个网 关,使外部可以访问 Bookinfo 应用。 上传ServiceMesh.tar.gz包 [rootk8s-master-node1 ~]# tar -zxvf ServiceMesh.tar.gz [rootk…...
PostgreSQL自定义函数
自定义函数 基本语法 //建一个名字为function_name的自定义函数create or replace function function_name() returns data_type as //returns 返回一个data_type数据类型的结果;data_type 是返回的字段的类型;$$ //固定写法......//方法体$$ LANGUAGE …...
学习记录:DAY22
我的重生开发之旅:优化DI容器,git提交规范,AOP处理器,锁与并发安全 前言 我重生了,重生到了五一开始的一天。上一世,我天天摆烂,最后惨遭实习生优化。这一世,我要好好内卷… 今天的…...
HarmonyOS NEXT第一课——HarmonyOS介绍
一、什么是HarmonyOS 万物互联时代应用开发的机遇、挑战和趋势 随着万物互联时代的开启,应用的设备底座将从几十亿手机扩展到数百亿IoT设备。全新的全场景设备体验,正深入改变消费者的使用习惯。 同时应用开发者也面临设备底座从手机单设备到全场景多设…...
数据库系统概论|第五章:数据库完整性—课程笔记1
前言 在前文介绍完数据库标准语言SQL之后,大家已经基本上掌握了关于数据库编程的基本操作,那我们今天将顺承介绍关于数据库完整性的介绍,数据库的完整性是指数据的正确性和相容性。数据的完整性是为了防止数据库中存在不符合语义的数据&…...
开源无人机地面站QGroundControl安卓界面美化与逻辑优化实战
QGroundControl作为开源无人机地面站软件,其安卓客户端界面美化与逻辑优化是提升用户体验的重要工程。 通过Qt框架的界面重构和代码逻辑优化,可以实现视觉升级与性能提升的双重目标。本文将系统讲解QGC安卓客户端的二次开发全流程,包括开发环境搭建、界面视觉升级、多分辨率…...
工作记录 2017-12-12 + 在IIS下发布wordpress
工作记录 2017-12-12 序号 工作 相关人员 1 修改邮件上的问题。 更新RD服务器。 在IIS下发布wordpress。 郝 服务器更新 RD服务器更新了,更新的文件放在190的D:\Temp\CHTeam\fnehr_update_20171212\下了。 数据库更新: 数据库没有更新 更新的文件…...
BBR 之 ProbeRTT 新改
早在 1981 年,Jaffe 在 Flow Control Power is Nondecentralizable 中就给出过论证,测量 maxbw 必然引入队列,而获得 minrtt 时带宽必然欠载,这确定了后面 30 年的拥塞控制算法基调,但 BBR 在 35 年后非常聪明地在两者…...
[创业之路-354]:农业文明到智能纪元:四次工业革命下的人类迁徙与价值重构
农业文明到智能纪元:四次工业革命下的人类迁徙与价值重构 从游牧到定居,从蒸汽轰鸣到算法洪流,人类文明的每一次跨越都伴随着生产关系的剧烈震荡。四次工业革命的浪潮不仅重塑了物质世界的生产方式,更将人类推向了身份认同与存在…...
敏感词 v0.25.0 新特性之 wordCheck 策略支持用户自定义
开源项目 敏感词核心 https://github.com/houbb/sensitive-word 敏感词控台 https://github.com/houbb/sensitive-word-admin 版本特性 大家好,我是老马。 敏感词一开始了内置了多种检验策略,但是很多用户在使用的过程中希望可以自定义策略。 所以 v0…...
从0到上线,CodeBuddy 如何帮我快速构建旅游 App?
引言 腾讯云AI代码助手之前就改成了CodeBuddy我相信这也是在为后期做准备。那么这篇文章会对CodeBuddy进行比较详细的介绍,并一起来上手实战,感受一下实际开发中这款插件能带给我们多少的便利。本篇文章是一边写一边进行测试,并不是测试完之…...
微信小程序 自定义组件 标签管理
环境 小程序环境: 微信开发者工具:RC 1.06.2503281 win32-x64 基础运行库:3.8.1 概述 基础功能 标签增删改查:支持添加/删除单个标签、批量删除、重置默认标签 数据展示:通过对话框展示结构化数据并支持复制 动…...
从 Eclipse Papyrus / XText 转向.NET —— SCADE MBD技术的演化
从KPN[1]的萌芽开始,到SCADE的推出[2],再到Scade 6的技术更迭[3],SCADE 基于模型的开发技术已经历许多。现在,Scade One 已开启全新的探索 —— 从 Eclipse Papyrus / XText 转向.NET 8跨平台应用。 [1]: KPN, Kahn进程网络 (197…...
【学习笔记】机器学习(Machine Learning) | 第五章(2)| 分类与逻辑回归
机器学习(Machine Learning) 简要声明 基于吴恩达教授(Andrew Ng)课程视频 BiliBili课程资源 文章目录 机器学习(Machine Learning)简要声明 二、决策边界决策边界的数学表达线性决策边界示例非线性决策边界非线性决策边界的示例…...
python 常用web开发框架及使用示例
Python常用Web开发框架及使用示例 Python拥有丰富的Web开发框架生态系统,以下是主流框架及其使用示例: 一、Flask - 轻量级框架 安装 pip install flask 基础示例 from flask import Flask, request, jsonifyapp Flask(__name__)app.route(/) def…...
[ Qt ] | 第一个Qt程序
1. 创建Qt项目 我们打开Qt Create工具,左上角“文件”,新建文件。 --- --- --- --- 这个是我们的APP“走出国门”的时候,要关注的,这里就不说了。 后面这两个直接默认,下一步就行~~。 2. 项目默认内容 下面就是Qt C…...
react + antd 实现后台管理系统
文章目录 完整路由搭建Layout 和 Aside组件引入 AntdAside组件实现 项目效果图 项目完整代码地址 https://gitee.com/lyh1999/react-back-management 项目完整代码地址 react依赖安装 最好采用yarn 安装 react-router 安装依赖 配置路由 history模式 / // src/router/…...
vue3+ts项目 配置vue-router
安装vue-router pnpm install vue-router配置 1.src/router/index.ts文件下的内容 import type { App } from vue import type { RouteRecordRaw } from vue-router import { createRouter, createWebHistory } from vue-router import remainingRouter from ./modules/remai…...
MySQL基本查询(二)
文章目录 UpdateDelete插入查询结果(select insert)聚合函数分组聚合统计 Update 1. 语法: set后面加列属性或者表达式 UPDATE table_name SET column expr [, column expr …][WHERE …] [ORDER BY …] [LIMIT …] 案例 将孙悟空同学的…...
MySQL:联合查询
目录 一、笛卡尔积 二、内连接 三、外连接 (1)左外连接 (2)右外连接 (3)全外连接 四、自连接 五、子查询 (1)单行子查询 (2)多行子查询 &…...
[算法学习]——通过RMQ与dfs序实现O(1)求LCA(含封装板子)
每周五篇博客:(3/5) 碎碎念 其实不是我想多水一篇博客,本来这篇是欧拉序的博客,结果dfs序也是可以O1求lca的,而且常数更优,结果就变成这样了。。。 前置知识 [算法学习]——dfs序 思想 分…...
复刻低成本机械臂 SO-ARM100 舵机配置篇(WSL)
视频讲解: 复刻低成本机械臂 SO-ARM100 舵机配置篇(WSL) 飞特舵机 组装之前需要配置舵机的ID,如下的网址为舵机的资料,实际上用不到,但可以mark在这里 Software-深圳飞特模型有限公司 User Guide里面可以…...
聊一聊接口测试更侧重于哪方面的验证
目录 一、功能性验证 输入与输出正确性 参数校验 业务逻辑覆盖 二、数据一致性验证 数据格式规范 数据完整性 数据类型与范围 三、异常场景验证 容错能力测试 边界条件覆盖 错误码与信息清晰度 四、安全与权限验证 身份认证 数据安全 防攻击能力 五、性能与可…...
【网络安全实验】SSL协议的应用
目录 一、SSL协议介绍 2.功能与特点 1)数据加密 2)身份验证 3)数据完整性校验 3.SSL的工作流程(握手过程) 1)客户端问候(ClientHello) 2)服务器响应(…...
测试——用例篇
目录 1. 测试用例 1.1 概念 2. 设计测试用例的万能公式 2.1 常规思考逆向思维发散性思维 2.2 万能公式 3. 设计测试用例例的方法 3.1 基于需求的设计方法 编辑 3.2 具体的设计方法 3.2.1 等价类 3.2.2 边界值 3.2.3 正交法 3.2.4 判定表法 3.2.5 场景法 3.2.6…...
计算机视觉技术的发展历程
计算机视觉技术的发展历程可以分为以下几个阶段: 早期探索阶段(1960s-1980s) 1960年代:计算机视觉的概念开始形成,研究者尝试让计算机识别和理解图像,主要集中在基础的图像处理,如边缘检测和特…...
docker 官方:在 alpine 上安装 python 的方法
在 alpine 上安装 python 的方法在 alpine 上安装 python 的方法: # alpine 官方 apk add python3 # docker 官方 docker pull python:3.11-alpine # 第三方 docker run --rm frolvlad/alpine-python3 python3 -c print("Hello World") # 编译安装 略 要点…...
mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件
1. mescroll的uni版本, 是专门用在uni-app的下拉刷新和上拉加载的组件, 支持一套代码编译到iOS、Android、H5、小程序等多个平台 2. mescroll的uni版本, 继承了mescroll.js的实用功能: 自动处理分页, 自动控制无数据, 空布局提示, 回到顶部按钮 .. 3. mescroll的uni版本, 丰富的…...
openEuler 22.03 安装 Mysql 5.7,RPM 在线安装
目录 一、检查系统是否安装其他版本Mariadb数据库二、安装 MySQL三、配置 MySQL四、修改默认存储路径五、开放防火墙端口六、数据备份七、生产环境优化八、常用命令 一、检查系统是否安装其他版本Mariadb数据库 # 查看已安装的 Mariadb 数据库版本 [rootopeneuler ~]# rpm -qa…...
云原生后端架构的挑战与应对策略
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 随着云计算、容器化以及微服务等技术的快速发展,云原生架构已经成为现代软件开发和运维的主流趋势。企业通过构建云原生后端系统,能够实现灵活的资源管理、快速的应用迭代和高效的系统扩展。然而,尽管云原…...
第十六届蓝桥杯 2025 C/C++组 客流量上限
目录 题目: 题目描述: 题目链接: 思路: 打表找规律: 核心思路: 思路详解: 得到答案的方式: 按计算器: 暴力求解代码: 快速幂代码: 位运…...