NEO
首个从第一性原理构建的原生视觉-语言模型,打破对CLIP编码器的依赖
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个从第一性原理构建的原生视觉-语言模型,打破对CLIP编码器的依赖
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
当你打开一张照片,脑海中瞬间识别出这是猫、那是咖啡杯、背景是城市天际线——这个对人类而言毫不费力的过程,AI 系统却往往需要依赖外部预训练的视觉编码器(如 CLIP、SigLIP)来处理图像。这种"双系统"架构曾是视觉-语言模型(VLM)的主流范式,但它的代价是:图像理解能力被锁死在视觉编码器的天花板里,语言模型只能被动接收"已经加工好的"视觉特征。
NEO(Native Vision-Language Models)系列,正是在挑战这个前提。它来自商汤科技(Sensetime)旗下的 EvolvingLMMs-Lab,提出了一种更"原生"的路线:从像素到文字,从第一性原理出发,让视觉理解和语言生成在同一个模型里共同生长。

图1:NEO 系列标志(来源:GitHub 仓库 docs/NEO_logo.jpg)
2026 年 5 月,NEO 系列最新成果 NEO-unify 被应用于商汤 SenseNova-U1 基础大模型,在 HuggingFace 引发广泛关注;同期 NEO-ov(One-Vision)论文与权重正式开源,成为 2026 年开源多模态领域最受关注的工作之一。
要理解 NEO 的价值,先要理解它所对抗的主流范式。
当前大多数视觉-语言模型(GPT-4V、Gemini、LLaVA 等)采用"拼接"架构:先用冻结或可训练的视觉编码器(如 CLIP-ViT)将图像转换为特征向量,再将这些向量作为"软提示"(soft prompt)注入到语言模型的输入层。这种方式有效且工程友好,但也带来三个根本性问题:
原生多模态(Native Multimodal)则另辟蹊径:视觉 token 和文本 token 在同一个 Transformer 架构中,从一开始就用统一的训练目标联合学习。视觉信息直接以原始像素特征的形式进入模型,不需要中间编码器做"翻译"。
NEO 正是这一思路的代表作品。它在 3.9 亿图文样本上训练,仅用 390M(约 3.9 亿对)样本就达到了与顶级模块化 VLM 相当甚至更优的表现,证明了原生路线的样本效率优势。

图2:原生 VLM 的核心问题——什么约束了原生多模态模型的能力边界?如何让它更易用?(来源:GitHub 仓库 docs/NEO_motivation.jpg)
NEO 的技术架构可从训练框架和模型结构两个层面理解。
NEO 的训练框架 VLMTrainKit 提供了完整的从零训练能力,核心文件如下:
| 模块 | 文件 | 功能 |
|---|---|---|
| 模型构建 | modeling_neo_qwen3.py (51KB) | 基于 Qwen3 的原生 VLM 核心实现 |
| 视觉编码 | modeling_neo_vit.py (8KB) | 原生视觉编码器(替代 CLIP) |
| 对话管理 | conversation.py (15KB) | 多轮对话模板,支持 <image> 标签 |
| 数据处理 | data_processor.py (17KB) | packed data 训练策略 |
| 训练入口 | train.py (2KB) | HuggingFace Trainer 封装 + DeepSpeed |
NEO 引入了一个巧妙的设计:Pre-Buffer Layers。传统的视觉编码器会生成大量视觉 token(如 ViT-L 生成 256 个 patch token),这些 token 与文本 token 混合后,注意力计算量会随序列长度平方增长。
NEO 的做法是:先用额外的预置层(Pre-Buffer Layers)专门处理视觉 token,将其压缩为更紧凑的表示,再与文本 token 融合。在 modeling_neo_qwen3.py 中,extra_num_layers(默认 12)和 num_hidden_layers(默认 28)共同决定了模型的总深度,其中前 12 层专门做视觉 token 的预处理。
# 关键参数(来自 train.py 脚本)
--extra_num_layers 12 # 预置层数量
--num_hidden_layers 28 # 总层数
--train_buffer # 是否仅训练 pre-buffer 层(冻结主模型)
NEO 采用 packed data 训练策略,将多个图文样本拼接为一个超长序列(默认 max_seq_length=18432),通过 FlatenedDataCollatorForSupervisedDataset 动态填充,实现 GPU 显存的高效利用。这在多模态训练中尤其重要,因为不同图片的分辨率差异会导致序列长度方差极大。
训练脚本默认使用 DeepSpeed ZeRO-3 分片策略,配合 torchrun 分布式启动(支持单机多卡和多机多卡),这是 8B 参数级别模型能在有限硬件上训练的必要条件。
2025 年 12 月发布的 NEO-ov(One-Vision)是 NEO 系列的重大升级,将能力从图像理解扩展到图像、视频、空间智能三大方向。在 VLMEvalKit_ov 评测框架中,覆盖了 30 个基准测试:
评测脚本 eval_image.sh、eval_video.sh、eval_spatial.sh 封装了完整的评测流程,用户只需配置模型路径即可一键评估。

图3:NEO 整体架构——像素到文字的统一建模(来源:GitHub 仓库 docs/NEO_architecture.jpg)
NEO 提供了完整的预训练 + 监督微调(SFT)流程。开发者只需要准备 JSON 格式数据集(每条包含 image 路径 + conversations 对话对):
# 安装
git clone https://github.com/EvolvingLMMs-Lab/NEO
cd NEO/VLMTrainKit
pip install .
# 单机双卡训练 8B 模型示例
torchrun --nproc_per_node=2 neo/train/train.py \
--model_name_or_path /path/to/Qwen3-8B-Base \
--dataset_use your_dataset \
--deepspeed ./scripts/zero3.json \
--train_buffer # 仅训练 pre-buffer 层
核心参数说明:
--train_buffer:冻结主模型,仅训练 pre-buffer 层,适合快速适配新视觉领域(如医学影像、工业检测)--data_flatten:启用 packed data,显著提升显存利用率--max_pixels / --min_pixels:控制图像 token 数量(默认最大 262144 像素)NEO-ov 提供了开箱即用的评测脚本,覆盖 30 个权威多模态基准:
cd VLMEvalKit_ov
pip install -r requirements.txt
# 图像理解
bash eval_image.sh
# 视频理解
bash eval_video.sh
# 空间推理
bash eval_spatial.sh
NEO 和 NEO-ov 均在 HuggingFace 开源:
| 模型 | 参数量 | 基座 | HuggingFace 链接 |
|---|---|---|---|
| NEO-ov-2B-SFT | 2B | Qwen3-1.7B | Paranioar/NEO1_5-2B-SFT |
| NEO-ov-9B-SFT | 9B | Qwen3-8B | Paranioar/NEO1_5-9B-SFT |
使用前需签署商汤的模型协议方可下载。
--train_buffer 参数使得开发者无需全量微调即可适配新视觉领域:冻结主 LLM 和视觉编码器,仅训练 12 个 pre-buffer 层,大幅降低微调成本。这对于垂直领域(医疗影像、法律文档、卫星遥感)的快速部署极有价值。
NEO-unify 架构已被商汤 SenseNova-U1 基础大模型采用,实现了多模态理解与生成能力的统一,表明 NEO 已具备工业级应用价值。
| 规格 | 值 |
|---|---|
| 训练样本量 | 390M 图文对 |
| 最大上下文长度 | 18,432 tokens |
| 图像分辨率范围 | 自适应(min 12544px ~ max 262144px) |
| 训练框架 | HuggingFace Trainer + DeepSpeed ZeRO-3 |
| 基础模型 | Qwen3-1.7B / Qwen3-8B |
| 训练阶段 | PT(预训练)→ MT(多模态训练)→ SFT(监督微调) |
| 许可证 | Apache-2.0 |
尽管 NEO 展示了原生 VLM 的潜力,但它并非没有局限:
即使是"参数高效"的 2B 模型,完整的三阶段训练(PT → MT → SFT)仍需大量 GPU 算力。DeepSpeed ZeRO-3 + 多机多卡训练意味着这不是普通开发者能轻易复现的工作。
评测结果显示,NEO-ov-9B 在多数基准上优于 InternVL3.5-9B 等开源竞品,但与 GPT-4V、Gemini Ultra 等商业闭源模型仍有差距,尤其在复杂推理和多轮对话上。
GitHub README 提供了清晰的结构说明,但关键细节(如多机多卡配置、模型权重下载协议的具体要求)需要查阅多个文档页面才能拼凑完整。对于工程团队来说,"从零训练"仍需要相当多的踩坑和调参工作。
NEO-ov 的视频理解(6 个基准)和空间智能(12 个基准)评测集覆盖尚不完整,在长视频理解、3D 空间推理等高难度任务上的能力边界还需更多验证。
相比 LLaVA、InternVL 等成熟开源项目,NEO 的第三方插件、社区工具、托管服务等生态资源仍较匮乏。
NEO 的出现正值视觉-语言模型领域的关键节点。2025-2026 年,Qwen3-VL、InternVL3.5 等主流开源项目纷纷向原生架构靠拢,NEO 作为这一趋势的先行者之一,提供了有价值的实证数据:390M 训练样本即可超越部分使用数十亿样本训练的模块化模型,证明了原生路线的样本效率优势。
NEO-unify 集成进 SenseNova-U1,意味着商汤正在将"原生多模态"作为其基础模型战略的核心技术路线。相比依赖 OpenAI CLIP 或 EVA-CLIP 等第三方视觉编码器,原生架构让商汤拥有更大的技术自主权——视觉感知能力的上限不再受制于外部预训练模型。
对于 AI 爱好者:NEO-ov 的评测权重已在 HuggingFace 开放,可以直接下载使用,适合多模态推理、文档理解、视频分析等场景的快速实验。
对于 AI 开发者:NEO 的 pre-buffer 微调机制(--train_buffer)是极具吸引力的特性——只需训练 12 层参数即可适配新视觉领域,大幅降低了垂直领域微调的门槛。但完整的从零训练仍是有门槛的工作,适合有 ML 基础设施的团队。
NEO 系列采用了 Apache-2.0 许可证(训练代码和模型权重),是目前少数全面开源的原生多模态项目之一。完整的训练框架(VLMTrainKit)、评测框架(VLMEvalKit_ov)和模型权重三方齐备,为学术研究和工业应用都提供了宝贵的参考实现。
NEO 系列代表了 2025-2026 年开源视觉-语言模型的重要突破——它用 390M 训练样本证明了原生 VLM 的可行性,打破了"必须依赖预训练视觉编码器"的路径依赖。Pre-Buffer Layers 设计和 packed data 训练策略是工程上的亮点,商汤 SenseNova-U1 的采用验证了其工业价值。
但与此同时,高训练成本、仍存的性能差距、不够完善的文档生态,都是其需要正视的现实。对于普通开发者,下载使用已微调的 SFT 权重是最经济的起点;对于有实力的团队,从零训练适配自己的视觉领域才是 NEO 真正释放价值的地方。
推荐指数(开发者视角):
| 维度 | 评分 | 说明 |
|---|---|---|
| 技术创新 | ★★★★★ | 原生架构的先行实践 |
| 工程可用性 | ★★★☆☆ | 评测权重开箱即用,训练框架有门槛 |
| 文档质量 | ★★★☆☆ | 结构清晰但细节不足 |
| 生态活跃度 | ★★★☆☆ | 新项目,社区资源有限 |
| 商业价值 | ★★★★☆ | SenseNova-U1 背书,工业级应用验证 |