SuperAPI AI 工具集

MPP-LLaVA

MPP-LLaVA 是一个个人开源项目,主要包含 MPP-Qwen14B 和 MPP-Qwen-Next,基于 Qwen-LM 实现多模态流水线并行(Multimodal Pipeline Parallel)。项目支持视频、图像、多图三种模态与 sft、对话两种训练/推理形式,目标是在 RTX3090/4090 24GB 显存条件下训练 8B/14B 规模的类 LLaVA 多模态大语言模型。仓库基于 Lavis 构建,复用其 BLIP2 的 ViT 和 Q-former,语言模型采用 Qwen7B-Chat,训练范式参照 LLaVA(pretrain + sft),并支持 DeepSpeed 流水线并行。项目还开源了处理好的预训练和 sft 数据集 JSON 文件、sft 权重(约 15GB,提供 modelscope 与百度网盘链接),以及单图、多图、视频推理的支持。

访问官网

工具介绍

MPP-LLaVA 是一个个人开源项目,包含 MPP-Qwen14B 与 MPP-Qwen-Next(Multimodal Pipeline Parallel based on Qwen-LM)。项目定位是让开发者在 RTX3090/4090 24GB 显存上训练自己的 8B/14B 规模的类 LLaVA 多模态大语言模型,支持视频、图像、多图三种输入与 sft、对话两种模式。

主要能力与特性:

  • 支持图像单轮问答、图像多轮对话、视频对话。
  • 多图对话:未经多图 sft,但在视频 sft 后涌现该能力。
  • 支持多卡推理,使用 transformers 的 device_map="auto" 加载 LLM 部分。
  • 支持单图推理、多图推理、视频推理。
  • 支持多轮对话 sft、多图 sft、视频 sft。
  • 支持 DeepSpeed 流水线并行(PP+DP)。
  • 已加入 huggingface-transformers 实现并推送至 huggingface。
  • 开源处理好的 pretrain 和 sft 数据集 JSON 文件。
  • 开源 sft 权重(15GB),提供 modelscope 链接与百度网盘链接。

技术栈与来源:

  • 基于 Lavis 构建,使用其中 BLIP2 的 ViT 和 Q-former。
  • 语言模型采用 Qwen7B-Chat(License 见项目 LICENSE,支持商用和科研、开发用途)。
  • 训练范式参照 LLaVA(pretrain + sft),使用其预训练和指令微调数据。
  • 视频 sft 使用 VideoChatGPT 的 100k 数据。
  • 使用 DeepSpeedExamples。
  • 部分代码基于 Lavis,采用 BSD 3-Clause License。

版本演进(按仓库更新记录):

  • 2023/10:MiniGPT4Qwen,采用 18.8k 高质量双语指令微调数据,单阶段训练的个人版双语 MLLM。
  • 2024/2:MiniGPT4Qwen-14B,Scaling Up 至 14B,使用 DeepSpeed Pipeline Parallel,全过程仅使用 2 张 4090 显卡。
  • 2024/3:MPPQwen-14B,将 MiniGPT4Qwen-14B 扩展为 MPP-Qwen14B,数据和训练范式参照 LLaVA(pretrain + sft),指令微调时打开 LLM,全部训练过程在 6 张 RTX4090 上完成。
  • 2024/4:支持多卡推理,修正 chat template 以获得更好的对话效果。
  • 2024/5:代码支持多轮对话 sft、视频 sft、多图 sft。
  • 2024/6:MPP-Qwen-Next 加入 LLaVA 多轮对话 sft 数据以及 VideoChatGPT 的 100k sft 数据,支持图像多轮对话、视频对话,并涌现多图对话能力;同时开源 sft 权重(15GB)。

使用方式(据仓库提供的信息):

  • 权重与数据准备:模型权重参照 WEIGHT.md,训练数据参照 DATA.md;需放在 cache 目录中,结构见仓库说明。可从 modelscope 或百度网盘下载 sft 后的模型权重(15GB)。
  • 推理:支持单 GPU 推理;多 GPU 推理时 LLM 使用 device_map="auto" 加载,可多卡加载 LLM 部分模型。运行后输入图片路径,可输入多张图片,用 :f 结束图片路径输入后进入对话;:clh 清空对话历史(但图像输入不会更改)。提供 gradio webui demo。
  • 训练:支持 DeepSpeed 流水线并行,示例配置 nproc_per_node: 8 dp: 4 pp: 2(nproc_per_node = pp * dp),以及 nproc_per_node: 8 dp: 1 pp: 8。支持 pipeline parallel 的权重转换为 pth 文件(仅转换 linear projection 层;若需转换 projection 层和所有 LLM 的参数,转换后模型文件名为 unfreeze_llm_model.pth),转换后模型文件存储在 ckpt_dir 底下,名为 model.pth。
  • 自定义数据格式(若想继续训练):单轮时 instruction 和 output 为 str;多轮时 instruction 和 output 为等长的 list。

适用场景:

  • 个人或小团队在消费级显卡(如 RTX3090/4090 24GB)上训练 8B/14B 多模态大语言模型。
  • 需要图像、多图、视频对话能力的多模态模型研究、开发与实验。
  • 需要流水线并行(PP+DP)训练与多卡推理的多模态模型项目。

限制与注意事项:

  • 多图对话能力未经专门的多图 sft,是在视频 sft 后涌现的。
  • 若路径经常出错,可把所有路径(包括 dataset configs)改成绝对路径。
  • 权重与数据准备需先按 WEIGHT.md 配置好权重。
  • 其他未在资料中说明的功能、收费、价格、平台、效果等暂未提供。