SmolVLM2: 让视频理解能力触手可及

一句话总结: SmolVLM 现已具备更强的视觉理解能力📺

SmolVLM2 标志着视频理解技术的根本性转变——从依赖海量计算资源的巨型模型,转向可在任何设备运行的轻量级模型。我们的目标很简单: 让视频理解技术从手机到服务器都能轻松部署。

我们同步发布三种规模的模型 (22 亿/5 亿/2.56 亿参数),并全面支持 MLX 框架 (提供 Python 和 Swift API)。所有模型及演示案例均可在此获取。

获取链接https://hf.co/collections/HuggingFaceTB/smolvlm2-smallest-video-lm-ever-67ab6b5e84bf8aaa60cb17c7

想立即体验 SmolVLM2?欢迎试用我们的交互式聊天界面,通过直观的交互测试 22 亿参数模型的视频理解能力。

交互式聊天界面https://hf.co/spaces/HuggingFaceTB/SmolVLM2

技术细节

我们推出三款新模型 (2.56 亿/5 亿/22 亿参数)。其中 22 亿参数模型是视觉与视频任务的优选,而 5 亿和 2.56 亿模型更是 迄今发布的最小型视频语言模型

虽然体积小巧,但其内存效率却优于现有所有模型。在视频领域权威基准测试 Video-MME 中,SmolVLM2 在 20 亿参数级别与顶尖模型比肩,在更小规模模型中更是一骑绝尘。

SmolVLM2 性能表现

注: Video-MME 基准因覆盖多样视频类型 (11 秒至 1 小时) 、多模态数据 (含字幕和音频) 及 254 小时高质量专家标注而著称。了解更多https://video-mme.github.io/home_page.html

SmolVLM2-22 亿: 视觉与视频理解新标杆

相较于前代产品,新版 22 亿模型在图像数学解题、图片文字识别、复杂图表解析和科学视觉问答方面表现显著提升:

SmolVLM2 视觉能力提升

在视频任务中,该模型展现出优异性价比。基于Apollo 大型多模态模型视频理解研究的数据混合策略,我们在视频/图像性能之间取得了良好平衡。

Apollo 大型多模态模型视频理解研究https://apollo-lmms.github.io/

其内存效率之高,甚至可在免费版 Google Colab 中运行。

Python 代码示例:

# 确保使用最新版 Transformers
!pip install git+https://github.com/huggingface/transformers.gitfrom transformers import AutoProcessor, AutoModelForImageTextToTextmodel_path = "HuggingFaceTB/SmolVLM2-2.2B-Instruct"
processor = AutoProcessor.from_pretrained(model_path)
model = AutoModelForImageTextToText.from_pretrained(model_path,torch_dtype=torch.bfloat16,_attn_implementation="flash_attention_2"
).to("cuda")messages = [{"role": "user","content": [{"type": "video", "path": "path_to_video.mp4"},{"type": "text", "text": "请详细描述该视频内容"}]},
]inputs = processor.apply_chat_template(messages,add_generation_prompt=True,tokenize=True,return_dict=True,return_tensors="pt",
).to(model.device)generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=64)
generated_texts = processor.batch_decode(generated_ids,skip_special_tokens=True,
)print(generated_texts[0])

更轻量级: 5 亿与 2.56 亿视频模型

我们首次突破小模型极限:SmolVLM2-5 亿视频指令模型在保持 22 亿模型 90% 视频理解能力的同时,参数量减少四分之三 🤯。

SmolVLM2-5 亿视频指令模型https://hf.co/HuggingFaceTB/SmolVLM2-500M-Video-Instruct

而我们的实验性作品SmolVLM2-2.56 亿视频指令模型则探索了小模型的极限。受 IBM 利用256M 模型取得成果的启发,我们继续深挖小模型潜力。虽然属于实验性发布,但期待它能激发更多创新应用。

  • SmolVLM2-2.56 亿视频指令模型https://hf.co/HuggingFaceTB/SmolVLM-256M-Instruct

  • 256M 模型https://ds4sd.github.io/docling/examples/pictures_description/

SmolVLM2 应用案例集

为在小型视频模型领域展现我们的核心理念,我们开发了三个实际应用案例,生动呈现该模型系统的多场景应用能力。

iPhone 视频理解

我们开发了完全本地化运行的 iPhone 应用 (使用 5 亿模型),用户无需云端即可进行视频分析。立即申请测试资格,与我们共同打造移动端 AI 视频应用!https://hf.co/spaces/HuggingFaceTB/SmolVLM2-iPhone-waitlist

VLC 媒体播放器集成

与 VLC 合作开发的智能视频导航功能,支持通过语义搜索跳转到指定片段。在这个 Space体验播放列表生成原型。https://hf.co/spaces/HuggingFaceTB/SmolVLM2-XSPFGenerator

视频精彩片段生成器

擅长处理长视频 (1 小时+),可自动提取足球比赛等场景的关键时刻。立即在线体验。https://hf.co/spaces/HuggingFaceTB/SmolVLM2-HighlightGenerator

使用 Transformers 和 MLX 运行 SmolVLM2

自发布首日起,我们便实现了 SmolVLM2 与 Transformer 架构及 MLX 框架的即开即用兼容适配。在本章节中,您可查阅面向视频与多图像处理的多种推理方案,以及配套的实战教程指南。

Transformers

通过对话式 API 可便捷调用 SmolVLM2 模型,聊天模板会自动对输入进行预处理:
你可以像下面这样加载模型:

# 确保使用最新版 Transformers
!pip install git+https://github.com/huggingface/transformers.gitfrom transformers import AutoProcessor, AutoModelForImageTextToTextprocessor = AutoProcessor.from_pretrained(model_path)
model = AutoModelForImageTextToText.from_pretrained(model_path,torch_dtype=torch.bfloat16,_attn_implementation="flash_attention_2"
).to(DEVICE)
视频推理

通过传入 {"type": "video", "path": {video_path} ,你可以在聊天模板传递视频路径,下面是完整的模板示例:

messages = [{"role": "user","content": [{"type": "video", "path": "视频路径.mp4"},{"type": "text", "text": "请详细描述该视频"}]},
]
inputs = processor.apply_chat_template(messages,add_generation_prompt=True,tokenize=True,return_dict=True,return_tensors="pt",
).to(model.device)generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=64)
generated_texts = processor.batch_decode(generated_ids,skip_special_tokens=True,
)print(generated_texts[0])
多图推理

除了视频,SmolVLM2 支持多图推理。您可以通过聊天模板使用相同的 API。

messages = [{"role": "user","content": [{"type": "text", "text": "这两张图片有何区别?"},{"type": "image", "path": "图片1.png"},{"type": "image", "path": "图片2.png"} ]},
]
inputs = processor.apply_chat_template(messages,add_generation_prompt=True,tokenize=True,return_dict=True,return_tensors="pt",
).to(model.device)generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=64)
generated_texts = processor.batch_decode(generated_ids,skip_special_tokens=True,
)print(generated_texts[0])

使用 MLX 进行推理

要在 Apple 芯片设备上使用 Python 运行 SmolVLM2,可通过优秀的mlx-vlm 库实现。首先安装特定分支:

mlx-vlm 库https://github.com/Blaizzy/mlx-vlm

pip install git+https://github.com/pcuenca/mlx-vlm.git@smolvlm

单图推理示例 (使用未量化的 5 亿参数版本):

未量化的 5 亿参数版本https://hf.co/mlx-community/SmolVLM2-500M-Video-Instruct-mlx

python -m mlx_vlm.generate \--model mlx-community/SmolVLM2-500M-Video-Instruct-mlx \--image https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg \--prompt "请描述这张图片"

视频分析专用脚本 (系统提示词可引导模型关注重点):

python -m mlx_vlm.smolvlm_video_generate \--model mlx-community/SmolVLM2-500M-Video-Instruct-mlx \--system "请专注描述视频片段中的关键戏剧性动作或显著事件,省略常规场景描述" \--prompt "视频中发生了什么?" \--video ~/Downloads/example_video.mov
Swift 语言支持

通过mlx-swift-examples 代码库实现 Swift 支持 (当前需从开发分支编译),这正是我们构建 iPhone 应用的技术基础。

  • mlx-swift-examples 代码库https://github.com/ml-explore/mlx-swift-examples

  • 开发分支https://github.com/cyrilzakka/mlx-swift-examples

图像推理 CLI 示例:

./mlx-run --debug llm-tool \--model mlx-community/SmolVLM2-500M-Video-Instruct-mlx \--prompt "请描述这张图片" \--image https://example.com/image.jpg \--temperature 0.7 --top-p 0.9 --max-tokens 100

视频分析示例 (系统提示词调节输出粒度):

./mlx-run --debug llm-tool \--model mlx-community/SmolVLM2-500M-Video-Instruct-mlx \--system "请专注描述视频片段中的核心事件" \--prompt "发生了什么?" \--video ~/Downloads/example_video.mov \--temperature 0.7 --top-p 0.9 --max-tokens 100

若您使用 MLX 和 Swift 集成 SmolVLM2,欢迎在评论区分享您的实践!

微调 SmolVLM2

您可使用 Transformers 库对视频数据进行微调。我们已在 Colab 环境演示了基于VideoFeedback 数据集对 5 亿参数模型的微调流程。由于模型较小,推荐使用全参数微调而非 QLoRA/LoRA (但可在 cB 变体尝试 QLoRA)。完整教程请参考微调笔记。

  • VideoFeedback 数据集https://hf.co/datasets/TIGER-Lab/VideoFeedback

  • 微调笔记https://github.com/huggingface/smollm/blob/main/vision/finetuning/SmolVLM2_Video_FT.ipynb

延伸信息

特别鸣谢 Raushan Turganbay、Arthur Zucker 和 Pablo Montalvo Leroux 对模型移植的贡献。

如果您想了解更多关于 SmolVLM 系列模型的信息,请阅读以下内容:模型与演示全集|Apollo 视频理解研究

  • 模型与演示全集https://hf.co/collections/HuggingFaceTB/smolvlm2-smallest-video-lm-ever-67ab6b5e84bf8aaa60cb17c7

  • Apollo 视频理解研究https://apollo-lmms.github.io/

期待见证您用 SmolVLM2 构建的创新应用!


英文原文:https://hf.co/blog/smolvlm2

原文作者: Orr Zohar, Miquel Farré, Andres Marafioti, Merve Noyan, Pedro Cuenca, Cyril, Joshua

译者: yaoqih

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

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

相关文章

人工智能将使勒索软件更加危险

Ivanti 预测,勒索软件将成为 2025 年的最大威胁,这一点尤其令人担忧,因为 38% 的安全专家表示,在人工智能的帮助下,勒索软件将变得更加危险。 与威胁级别相比,只有 29% 的安全专家表示他们对勒索软件攻击做…

UE AI 模型自动生成导入场景中

打开小马的weix 关注下 搜索“技术链” 回复《《动画》》 快速推送; 拿到就能用轻松解决!帮忙点个关注吧!

Debain-12.9使用vllm部署内嵌模型/embedding

Debain-12.9使用vllm部署内嵌模型/embedding 基础环境准备下载模型部署模型注册dify模型 基础环境准备 基础环境安装 下载模型 modelscope download --model BAAI/bge-m3 --local_dir BAAI/bge-m3部署模型 vllm serve ~/ollama/BAAI/bge-m3 --served-model-name bge-m3 --t…

电子学会—2023年12月青少年软件编程(图形化)三级等级考试真题——打砖块游戏

完整题目可查看,支持在线编程: 打砖块游戏_scratch_少儿编程题库学习中心-嗨信奥https://www.hixinao.com/tiku/scratch/show-5112.html?_shareid3 程序演示可查看,支持获取源码: 打砖块游戏-scratch作品-少儿编程题库学习中心…

【Attention】SKAttention

SKAttention选择核注意力 标题:SKAttention 期刊:IEEE2019 代码: https://github.com/implus/SKNet 简介: 动机:增大感受野来提升性能、多尺度信息聚合方式解决的问题:自适应调整感受野大小创新性:提出选择性内核…

OceanBase 社区年度之星专访:社区“老炮”代晓磊与数据库的故事

2024年年底,OceanBase 社区颁发了“年度之星”奖项,以奖励过去一年中对社区发展做出卓越贡献的个人。今天,我们有幸邀请到“年度之星”得主 —— 知乎的代晓磊老师,并对他进行了专访。 代晓磊老师深耕数据库运维与开发领域超过14…

Androidstudio实现引导页文字动画

文章目录 1. 功能需求2. 代码实现过程1. 编写布局文件2. 实现引导页GuideActivity 3. 总结4. 效果演示5. 关于作者其它项目视频教程介绍 1. 功能需求 1、引导页具有两行文字(“疫情在前”和“共克时艰”),和向上的 图标。 2、进入【引导页】…

【大模型理论篇】CogVLM:多模态预训练语言模型

1. 模型背景 前两天我们在《Skywork R1V: Pioneering Multimodal Reasoning with Chain-of-Thought》中介绍了将ViT与推理模型结合构造多模态推理模型的案例,其中提到了VLM的应用。追溯起来就是两篇前期工作:Vision LLM以及CogVLM。 今天准备回顾一下Cog…

Linux vim mode | raw / cooked

注:机翻,未校。 vim terminal “raw” mode Vim 终端 “raw” 模式 1. 原始模式与已处理模式的区别 We know vim puts the terminal in “raw” mode where it receives keystrokes as they are typed, opposed to “cooked” mode where the command…

【Linux线程】——线程概念线程接口

目录 前言 1.线程 2.线程的本质 3.Linux线程库 3.1创建线程——pthread_create 3.2线程终止——pthread_exit 3.3线程等待——pthread_join 3.4线程分离——pthread_detach 3.5获取线程tid——pthread_self 4.线程的优缺点 4.1线程的优点 4.2线程的缺点 结语 前言…

机器学习——KNN超参数

sklearn.model_selection.GridSearchCV 是 scikit-learn 中用于超参数调优的核心工具,通过结合交叉验证和网格搜索实现模型参数的自动化优化。以下是详细介绍: 一、功能概述 GridSearchCV 在指定参数网格上穷举所有可能的超参数组合,通过交叉…

STM32基础教程——定时器

前言 TIM定时器(Timer):STM32的TIM定时器是一种功能强大的外设模块,通过时基单元(包含预分频器、计数器和自动重载寄存器)实现精准定时和计数功能。其核心原理是:内部时钟(CK_INT)或…

[特殊字符] 树莓派声卡驱动原理全解析:从模拟耳机口到HiFi DAC

一、为什么要关注树莓派的声卡驱动? 树莓派(Raspberry Pi)作为一款广泛应用的单板计算机,集成了多种音频输出接口(如 3.5mm 耳机、HDMI、I2S 外接 DAC 等)。但许多用户在使用中会遇到诸如“耳机输出杂音”…

使用若依AI生成springBoot的前后端分离版本

目录 1. 从Git上面下载前后端分离版本 2. 执行SQL脚本 3. 初始化前端 安装Node.js和npm配置 ✅ 第一步:在 Node 安装目录下创建两个文件夹 ✅ 第二步:配置 npm 全局目录和缓存目录 ✅ 第三步:验证配置是否成功 ✅ 第四步:…

神聖的綫性代數速成例題12. 齊次方程組零解充要條件、其齊次方程組非零解、 齊次方程組基礎解系

1. 綫性空間的定義: 設是一個非空集合,是一個數域。 在集合的元素之間定義了加法運算,即對於任意,有唯一的,使得;在數域與集合的元素之間定義了數乘運算,即對於任意和,有唯一的&am…

万亿级数据量的OceanBase应用从JVM到协议栈立体化改造实现性能调优

本文基于某电商平台亿级商品详情页场景,通过Java应用层与数据库层的协同优化,实现98%的查询响应时间低于50ms。 一、JDBC连接池深度调优 HikariCP配置示例: HikariConfig config new HikariConfig(); config.setJdbcUrl("jdbc:ocean…

腾讯:《详解DeepSeek:模型训练、优化及数据处理的技术精髓》23页|附下载方法

导 读 INTRODUCTION 这是一篇来自腾讯的关于DeepSeek大语言模型及其技术特点、应用场景和未来发展趋势的文章,主要介绍了DeepSeek的核心技术优势、行业应用案例以及在AI领域的竞争力和发展趋势。为理解DeepSeek大语言模型的技术优势和应用前景提供了深入的分析&…

Vue 入门到实战 五

第5章 过渡与动画 目录 5.1 单元素/组件过渡 5.1.1 过渡class 5.1.2 CSS 过渡 5.1.3 CSS 动画 5.1.4 同时使用过渡和动画 5.1.5 JavaScript 钩子方法 5.2 多元素/组件过渡 5.2.1 多元素过渡 5.2.2 多组件过渡 5.3 列表过渡 5.3.1 列表的普通过渡 5.3.2 列表的平滑…

L2TP实验

一、拓朴图 二、实验配置 1.基础配置 1.1接口IP及服务配置 [PPPoE Client]interface GigabitEthernet 0/0/0 [PPPoE Client-GigabitEthernet0/0/0]service-manage all permit [NAS]interface GigabitEthernet 0/0/0 [NAS-GigabitEthernet0/0/0]ip add 192.168.0.2 24 [NAS-Gi…

简单实用!百度AI + Raphael AI = 免费生图

简单实用!百度AI Raphael AI 免费生图 -- ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b55eda9141d34697b05db0cd60f62b75.png#pic_center) 第一步:下载或截取一些好看的图片当参考图片 第二步:用百度AI描述你想要的图片&…