MPP-LLaVA: 基于Qwen语言模型的多模态流水线并行系统

279 阅读4分钟

MPP-LLaVA简介

MPP-LLaVA(Multimodal Pipeline Parallel based on Qwen Language Model)是一个基于通义千问(Qwen)大语言模型的多模态流水线并行系统。该项目旨在让个人开发者能够在有限的计算资源下(如RTX3090/4090 24GB显卡)训练出类似LLaVA的8B/14B级别的多模态大语言模型。

MPP-LLaVA的核心创新在于采用了DeepSpeed流水线并行技术,将大规模语言模型分割到多个GPU上进行训练,有效突破了单GPU显存限制。同时,该项目还融合了多项先进技术,如预训练+指令微调的训练范式、多模态输入处理等,使其成为一个功能强大且易于扩展的多模态AI系统框架。

主要特性

MPP-LLaVA具备以下主要特性:

  1. 多模态输入支持:能够处理图像、视频等多种模态的输入。
  2. 多样化对话能力:支持图像单轮问答、图像多轮对话、视频对话等多种交互方式。
  3. 模型规模可扩展:支持8B到14B等不同规模的模型训练。
  4. 高效训练策略:采用预训练+指令微调的两阶段训练方法。
  5. 计算资源友好:通过流水线并行技术,可在6-8张消费级GPU上完成大模型训练。
  6. 开放生态:提供完整的训练代码、推理demo和预训练权重。

MPP-LLaVA框架图

技术实现

MPP-LLaVA的核心技术实现包括:

  1. 基础模型选择:采用Qwen-7B-Chat作为底层语言模型。
  2. 视觉编码器:使用BLIP2中的ViT(Vision Transformer)进行图像特征提取。
  3. 多模态融合:通过Q-former桥接视觉特征和语言特征。
  4. 并行训练:利用DeepSpeed实现Pipeline Parallelism和Data Parallelism。
  5. 训练策略:采用预训练+SFT(Supervised Fine-tuning)两阶段训练方法。
  6. 数据处理:使用LLaVA的预训练和指令微调数据,以及VideoChatGPT的视频数据。

模型能力展示

MPP-LLaVA展现了多方面的多模态理解和生成能力:

图像单轮问答

模型能够理解图片内容,并回答相关问题:

图像单轮问答示例

图像多轮对话

模型可以就同一图片进行多轮问答交互:

图像多轮对话示例

视频对话

模型能够理解视频内容,并与用户进行相关对话:

视频对话示例

多图对话

经过视频SFT后,模型还涌现出了多图对话的能力,可以比较不同图像:

多图对话示例

安装与使用

要开始使用MPP-LLaVA,您需要按照以下步骤进行安装和配置:

  1. 环境配置:
conda create -n minigpt4qwen python=3.8 && conda activate minigpt4qwen
pip install -e .

2. 权重与数据准备:

*   下载预训练权重和SFT权重
*   准备训练数据集

3. 推理:

*   命令行demo:

<!---->

    python cli_demo.py --model-type qwen7b_chat -c <model_path> --llm_device_map "auto"

*   Web UI demo:

<!---->

    python webui_demo.py --model-type qwen7b_chat -c <model_path> --llm_device_map "auto"

4. 训练:

*   预训练阶段:

<!---->

    python -m torch.distributed.run --nproc_per_node=8 train_pipeline.py --cfg-path lavis/projects/pp_qwen7b_video/pretrain.yaml --num-stages 2

*   SFT阶段:

<!---->

    python -m torch.distributed.run --nproc_per_node=8 train_pipeline.py --cfg-path lavis/projects/pp_qwen7b_video/sft.yaml --num-stages 8

未来发展

MPP-LLaVA项目仍在积极开发中,未来计划包括:

  1. 加入Hugging Face Transformers实现
  2. 开源预训练权重
  3. 优化多卡推理性能
  4. 扩展支持更多模态输入
  5. 改进模型架构和训练策略

总结

MPP-LLaVA项目为个人开发者和研究人员提供了一个强大而灵活的多模态AI系统框架。通过创新的流水线并行技术和精心设计的训练策略,它使得在有限计算资源下训练大规模多模态模型成为可能。该项目不仅展示了令人印象深刻的多模态理解和生成能力,还为推动多模态AI技术的民主化做出了重要贡献。

随着项目的不断发展和完善,MPP-LLaVA有望成为多模态AI领域的重要开源项目之一,为更多创新应用的诞生提供基础支持。无论您是AI研究人员、开发者还是对多模态AI感兴趣的爱好者,MPP-LLaVA都值得您深入探索和尝试。

项目链接:www.dongaigc.com/a/mpp-llava… www.dongaigc.com/a/mpp-llava…