MobileVLM
首个移动端优化的开源视觉语言模型,1.4B~7B参数规模,骁龙888上21.5 tokens/s
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个移动端优化的开源视觉语言模型,1.4B~7B参数规模,骁龙888上21.5 tokens/s
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你刚用手机拍了一张产品图,想知道这本书的作者是谁,或者想让 AI 帮你分析图表中的数据——但传统的 GPT-4V 需要调用云端 API,不仅响应慢,还要把隐私数据上传到服务器。这是许多企业级用户和个人开发者共同面临的痛点:强大的大模型与移动端部署之间,横亘着一道难以逾越的算力鸿沟。
美团 AutoML 团队于 2023 年 12 月开源的 MobileVLM,正是为解决这一问题而生。它是首批专门针对移动设备优化的开源视觉语言模型(Vision Language Model,VLM),在 1.7B 和 3B 参数规模下实现了与 GPT-4V 相当的问答能力,同时将推理速度推至移动端可用的水平——在骁龙 888 芯片上达到每秒 21.5 个 token 的吞吐量。这意味着什么?一台普通安卓手机的算力,已经可以跑出一个真正可用的多模态 AI 助手。
MobileVLM 的核心创新在于一套移动优先的架构组合拳。首先,团队从零训练了 MobileLLaMA 系列语言模型——1.4B 和 2.7B 两个版本,完全基于移动端友好的设计空间:去除 Transformer 中开销较大的位置编码(如 RoPE),采用 Grouped-Query Attention(GQA)降低 Key-Value 缓存开销,配合高效的 SwiGLU 激活函数,在 3.3T token 的公开数据集上完成预训练。
视觉侧采用了 CLIP 预训练的 SigLIP 作为视觉编码器,并通过轻量级下采样投影器 LDP(Lightweight Downsample Projector)将视觉特征映射到语言模型空间。在 V2 版本中,团队进一步升级为 LDPv2,引入更深层的 MLP 结构,进一步压缩视觉-token 数量,减少语言模型的计算负担。
MobileVLM V2 在 V1 基础上进行了全面升级,通过改进的训练配方(包括预训练阶段 35 小时 + 多任务微调 912 小时,在 8×A100 80G 上完成)和高质量数据集管理,实现了质的飞跃。具体来看,V2 1.7B 模型在 GQA、SQA、VQAT、POPE、MME、MMBench 等主流多模态基准上全面超越 V1 对应版本;V2 3B 模型更是在多项测试中达到甚至超越 7B+ 参数量级模型的水准。
项目提供了完整的训练和推理代码。依赖管理通过 requirements.txt 规范,核心依赖包括 PyTorch 2.0.1、transformers 4.33.1、accelerate、peft、bitsandbytes(量化支持)、gradio(Web UI)等。推理层面支持 fp16 浮点和 int4/int8 量化两种模式,通过 scripts/inference.py 配合 Gradio 可快速搭建本地 Web 界面。V1 版本还提供了 llama.cpp 定制版,支持在纯 CPU 上以量化模式运行模型,大大拓宽了部署场景——从高配游戏手机到树莓派级别的嵌入式设备都有可能。
不过需要注意的是,MobileVLM 的定位是研究和轻量部署场景。在企业级应用中存在几个局限:第一,模型训练依赖 8×A100 级别的硬件,普通开发者无法自行复现训练过程,只能使用官方放出的预训练权重;第二,数据集使用涉及 LLaVA、ShareGPT4V 等第三方数据集,需要遵守各自的许可协议;第三,模型目前仅支持英文图像问答,中文多模态能力尚未覆盖。
从行业视角看,MobileVLM 标志着端侧 AI 的一个重要节点。它证明了在消费级硬件上运行 3B 级 VLM 是完全可行的,这与高通、苹果、联发科等芯片厂商近年力推的 NPU(神经网络处理器)路线高度契合。随着移动端 AI 芯片算力的持续提升,MobileVLM 所代表的"视觉理解+本地推理"模式,很可能会成为未来 AI 手机的标准能力之一。
图1:MobileVLM 架构概览
图2:MobileVLM V2 架构详图,含 LDPv2 投影器结构