SuperAPI AI 工具集

nanoVLM

nanoVLM 是 Hugging Face 推出的开源仓库,用于训练和微调小型视觉语言模型(VLM)。它采用纯 PyTorch 实现,代码简洁易读,模型定义与训练逻辑约 750 行,包含视觉骨干、语言解码器、模态投影和训练循环。默认配置使用 SigLIP-B/16-224-85M 和 SmolLM2-135M 作为骨干,构建 222M 参数模型,可在单张 H100 上约 6 小时训练 170 万样本,在 MMStar 上达到 35.3% 准确率。仓库提供训练、生成、评估脚本,支持 Hugging Face Hub 集成和本地保存加载,并附有 VRAM 测量工具。适合希望快速上手、实验小型 VLM 的研究者和开发者。

访问官网

工具介绍

nanoVLM 是 Hugging Face 发布的一个开源仓库,旨在提供最简单、最快速的小型视觉语言模型(VLM)训练与微调方案。其设计理念类似 nanoGPT,强调代码的简洁性和可读性,使用纯 PyTorch 实现,不依赖 transformers.Trainer、accelerate 或 deepspeed 等高级训练框架。

用途 nanoVLM 主要用于教育和实验目的,帮助社区快速理解并上手视觉语言模型的训练流程。它并非追求最先进的性能,而是提供一个轻量级、易于修改和实验的平台,适合探索小型 VLM 的能力与效率。

主要能力

  • 模型定义与训练逻辑总计约 750 行代码,包括视觉骨干(models/vision_transformer.py,约 150 行)、语言解码器(models/language_model.py,约 250 行)、模态投影(models/modality_projection.py,约 50 行)、VLM 主体(models/vision_language_model.py,约 100 行)以及训练循环(train.py,约 200 行)。
  • 默认配置使用 SigLIP-B/16-224-85M 和 HuggingFaceTB/SmolLM2-135M 作为骨干,构建 222M 参数的 nanoVLM。在单张 H100 GPU 上训练约 6 小时(约 170 万样本)后,在 MMStar 基准上达到 35.3% 的准确率。
  • 提供训练脚本、生成脚本和评估支持(通过 lmms-eval 工具包)。
  • 支持从 Hugging Face Hub 加载预训练权重,也可将训练好的模型上传至 Hub,自动生成 config.json、model.safetensors 和 README.md 模型卡。
  • 支持本地保存和加载模型。
  • 提供 measure_vram.py 脚本,用于测量特定硬件和配置下的显存需求。

使用方式 用户可以通过克隆仓库、设置环境后运行脚本,或直接在 Colab 中打开。推荐使用 uv 作为包管理器,也可手动安装 torchvision、pillow、datasets、huggingface-hub、transformers 和 wandb 等依赖。训练时运行提供的训练脚本,使用默认的 models/config.py;生成时使用 generate 脚本,可加载预训练模型或自定义模型。评估可通过 lmms-eval 进行。

适用场景 nanoVLM 适合研究人员、学生和开发者快速实验小型 VLM,调整不同设置和配置,探索模型能力与效率。也适合作为教学材料,理解 VLM 的基本组成和训练过程。

限制

  • 仓库在 2025 年 6 月 4 日和 2025 年 9 月 9 日进行了破坏性更新,部分支持脚本(如 notebook、内存评估)可能不再工作,旧版 222M 模型与新流程不兼容。
  • 训练默认模型至少需要约 4.5 GB 显存(批次大小为 1),约 8 GB 显存可支持批次大小 16。实际需求随模型架构和序列长度变化。
  • 项目不接受引入 transformers.Trainer、accelerate 或 deepspeed 等依赖的贡献,以保持纯 PyTorch 的简洁性。
  • 当前路线图包括更多评估、数据打包、多 GPU 训练、多图像支持、图像分割、VLMEvalKit 集成等,但部分功能尚未实现。