找回密码
 立即注册
首页 业界区 科技 nanoVLM: 最简洁、最轻量的纯 PyTorch 视觉-语言模型训 ...

nanoVLM: 最简洁、最轻量的纯 PyTorch 视觉-语言模型训练代码库

揭荸 2025-6-19 10:35:35
nanoVLM 是使用纯 PyTorch 训练 你自己的视觉语言模型 (VLM) 的 最简单 方式。它是一个轻量级 工具包 ,让你可以在 免费的 Colab Notebook 上启动 VLM 训练。
我们受到了 Andrej Karpathy 的 nanoGPT 的启发,为视觉领域提供了一个类似的项目。
从本质上讲,nanoVLM 是一个 工具包,可以帮助你构建和训练一个能够理解图像和文本,并基于此生成文本的模型。nanoVLM 的魅力在于它的 简洁性 。整个代码库被有意保持 最小化可读性 ,使其非常适合初学者或任何想要深入了解 VLM 内部机制而不被复杂性淹没的人。
在这篇博客中,我们将介绍该项目背后的核心思想,并提供与代码库交互的简单方法。我们不仅会深入项目细节,还会将所有内容封装起来,让你能够快速上手。
简要

你可以按照以下步骤使用我们的 nanoVLM 工具包开始训练视觉语言模型:
  1. # 克隆仓库
  2. git clone https://github.com/huggingface/nanoVLM.git
  3. # 执行训练脚本
  4. python train.py
复制代码
这里有一个 Colab Notebook,可以帮助你在无需本地设置的情况下启动训练运行!
什么是视觉语言模型?

顾名思义,视觉语言模型 (VLM) 是一种处理两种模态的多模态模型: 视觉和文本。这些模型通常以图像和/或文本作为输入,生成文本作为输出。
基于对图像和文本 (输入) 的理解来生成文本 (输出) 是一个强大的范式。它支持广泛的应用,从图像字幕生成和目标检测到回答关于视觉内容的问题 (如下表所示)。需要注意的是,nanoVLM 仅专注于视觉问答作为训练目标。
1.jpeg
为图像生成标题两只猫躺在床上,旁边有遥控器图像描述
检测图像中的物体目标检测
分割图像中的物体语义分割
图像中有多少只猫?2视觉问答
如果你有兴趣了解更多关于 VLM 的信息,我们强烈建议阅读我们关于该主题的最新博客: 视觉语言模型 (更好、更快、更强)
使用代码库

“废话少说,直接看代码” - 林纳斯·托瓦兹
在本节中,我们将引导你了解代码库。在跟随学习时,保持一个 标签页 开启以供参考会很有帮助。
以下是我们仓库的文件夹结构。为简洁起见,我们删除了一些辅助文件。
  1. .
  2. ├── data
  3. │ ├── collators.py
  4. │ ├── datasets.py
  5. │ └── processors.py
  6. ├── generate.py
  7. ├── models
  8. │ ├── config.py
  9. │ ├── language_model.py
  10. │ ├── modality_projector.py
  11. │ ├── utils.py
  12. │ ├── vision_language_model.py
  13. │ └── vision_transformer.py
  14. └── train.py
复制代码
架构

[code].├── data│ └── ...├── models #
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册