nanoVLM: 最简洁、最轻量的纯 PyTorch 视觉-语言模型训练代码库
nanoVLM 是使用纯 PyTorch 训练 你自己的视觉语言模型 (VLM) 的 最简单 方式。它是一个轻量级 工具包 ,让你可以在 免费的 Colab Notebook 上启动 VLM 训练。我们受到了 Andrej Karpathy 的 nanoGPT 的启发,为视觉领域提供了一个类似的项目。
从本质上讲,nanoVLM 是一个 工具包,可以帮助你构建和训练一个能够理解图像和文本,并基于此生成文本的模型。nanoVLM 的魅力在于它的 简洁性 。整个代码库被有意保持 最小化 和 可读性 ,使其非常适合初学者或任何想要深入了解 VLM 内部机制而不被复杂性淹没的人。
在这篇博客中,我们将介绍该项目背后的核心思想,并提供与代码库交互的简单方法。我们不仅会深入项目细节,还会将所有内容封装起来,让你能够快速上手。
简要
你可以按照以下步骤使用我们的 nanoVLM 工具包开始训练视觉语言模型:
# 克隆仓库
git clone https://github.com/huggingface/nanoVLM.git
# 执行训练脚本
python train.py这里有一个 Colab Notebook,可以帮助你在无需本地设置的情况下启动训练运行!
什么是视觉语言模型?
顾名思义,视觉语言模型 (VLM) 是一种处理两种模态的多模态模型: 视觉和文本。这些模型通常以图像和/或文本作为输入,生成文本作为输出。
基于对图像和文本 (输入) 的理解来生成文本 (输出) 是一个强大的范式。它支持广泛的应用,从图像字幕生成和目标检测到回答关于视觉内容的问题 (如下表所示)。需要注意的是,nanoVLM 仅专注于视觉问答作为训练目标。
为图像生成标题 两只猫躺在床上,旁边有遥控器 图像描述 检测图像中的物体 目标检测 分割图像中的物体 语义分割 图像中有多少只猫? 2 视觉问答如果你有兴趣了解更多关于 VLM 的信息,我们强烈建议阅读我们关于该主题的最新博客: 视觉语言模型 (更好、更快、更强)
使用代码库
“废话少说,直接看代码” - 林纳斯·托瓦兹
在本节中,我们将引导你了解代码库。在跟随学习时,保持一个 标签页 开启以供参考会很有帮助。
以下是我们仓库的文件夹结构。为简洁起见,我们删除了一些辅助文件。
.
├── data
│ ├── collators.py
│ ├── datasets.py
│ └── processors.py
├── generate.py
├── models
│ ├── config.py
│ ├── language_model.py
│ ├── modality_projector.py
│ ├── utils.py
│ ├── vision_language_model.py
│ └── vision_transformer.py
└── train.py架构
.├── data│ └── ...├── models #
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]