在人工智能快速发展的今天,视觉多模态模型成为了研究与应用的热点。为了帮助大家更好地理解和运用这一技术,我将详细介绍如何从零开始训练一个视觉多模态模型。以下是完整的 10 个步骤,分为两个部分:第一部分是使用作者已经训练好的模型进行体验;第二部分是自己动手训练模型。如果你只想感受训练过程,可以跳过第一部分直接进入第二部分。
第一部分:使用预训练模型
步骤 6:获取预训练模型
在开始之前,我们需要先获取作者提供的已经训练好的模型。这个模型经过精心训练,能够快速上手并体验其强大的视觉多模态能力。以下是获取模型的命令:
bash
git clone https://huggingface.co/jingyaogong/MiniMind2-V
将上述命令复制到终端中运行,即可将预训练模型下载到你的本地根目录下。
步骤 7:运行预训练模型
下载完成后,我们就可以运行这个预训练模型了。运行以下命令来启动模型:
bash
python eval_vlm.py --load 1
如果你是在 Ubuntu 或者 Windows 系统下,还可以通过浏览器运行模型,只需执行以下命令:
bash
python web_demo_vlm.py
这样,你就可以在浏览器中直观地看到模型的运行效果,感受其强大的视觉理解和生成能力。
第二部分:自己训练模型
步骤 1:选择合适的云服务器配置
在训练模型之前,我们需要准备一个合适的开发环境。这里推荐使用以下配置的云服务器:
plaintext
Miniconda conda3
Python 3.10(ubuntu22.04)
CUDA 11.8
这样的配置能够确保模型训练过程的顺利进行,并且能够充分利用 GPU 的加速能力。
步骤 2:创建 Python 环境
为了保证训练过程的稳定性和依赖管理的便捷性,我们需要创建一个新的 Python 环境。执行以下命令来创建并激活环境:
bash
mkdir mini
cd mini
conda create --name mini python=3.11.3 # 选择 y 表示同意继续
conda init bash
# 此处需要重新启动终端
conda activate mini
# 需要特定的 python 和 pip 版本号
pip install pip==22.3.1
通过创建独立的 Python 环境,我们可以更好地管理项目所需的依赖,避免与其他项目发生冲突。
步骤 3:克隆代码仓库
接下来,我们需要从 GitHub 上克隆项目代码仓库。执行以下命令:
bash
git clone https://github.com/jingyaogong/minimind-v
克隆成功后,在项目根目录下创建一个名为 minimind-v
的文件夹。这个文件夹将作为我们后续操作的根目录。
步骤 4:下载必要的模型和数据集
在开始训练之前,还需要下载一些必要的模型和数据集。执行以下命令来下载 CLIP 模型和纯语言模型权重,并将它们放置在正确的位置:
bash
# 下载clip模型到 ./model/vision_model 目录下
git clone https://huggingface.co/openai/clip-vit-base-patch16
# 下载纯语言模型权重到 ./out 目录下(作为训练VLM的基座语言模型)
# 下载地址:https://huggingface.co/jingyaogong/MiniMind2-V-PyTorch/blob/main/lm_512.pth
# 从下面链接提供的数据集下载链接 下载需要的数据文件(创建./dataset目录)并放到./dataset下;需要下载的文件是 pretrain_images.zip 和 pretrain_data.jsonl
# https://huggingface.co/datasets/jingyaogong/minimind-v_dataset
这些模型和数据集是训练视觉多模态模型的基础,确保它们正确下载并放置在指定位置是训练成功的关键。
步骤 5:安装项目依赖
在根目录下,执行以下命令来安装项目所需的依赖:
bash
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
这一步将确保所有必要的 Python 库和工具都已安装在你的环境中,为后续的训练做好准备。
步骤 8:开始预训练
现在,我们已经做好了所有准备工作,可以开始训练模型了。首先进行预训练,执行以下命令:
bash
python train_pretrain_vlm.py --epochs 4
预训练阶段将学习图像描述的相关知识,这个过程可能需要一些时间,但它是构建模型基础能力的重要一步。
步骤 9:进行监督微调
预训练完成后,我们需要进一步对模型进行监督微调,使其能够更好地理解和回答与图像相关的问题。执行以下命令来进行微调:
bash
python train_sft_vlm.py --epochs 4 # 每隔 100 步会保存到 ./out/***.pth 中
监督微调阶段将使模型具备更强的对话能力和对图像的理解能力。
步骤 10:测试训练好的模型
经过预训练和监督微调后,我们的模型已经具备了一定的能力。现在,我们可以测试模型的效果,执行以下命令:
bash
python eval_vlm.py --model_mode 1 # 默认为0:测试pretrain模型效果,设置为1:测试sft模型效果
通过测试,我们可以直观地看到模型在视觉多模态任务上的表现,并根据结果进一步优化和调整模型。
以上就是从零开始训练一个视觉多模态模型的完整 10 个步骤。无论你是想直接体验预训练模型的效果,还是希望通过自己动手训练来深入了解模型的构建过程,这些步骤都能为你提供清晰的指导。希望这篇文章能够帮助你顺利开启视觉多模态模型的探索之旅!