SuperAPI AI 工具集

u-LLaVA

u-LLaVA 是一个基于大型语言模型(LLM)的多模态多任务统一框架,由 OPPOMKLab 开发,已被 ECAI 2024 主赛道接收。该项目旨在通过 LLM 统一处理多种视觉-语言任务,包括图像描述、视频描述、视觉问答(VQA)、指代分割(RES)、显著目标分割、语义分割、指代理解(REC)和实例分割等。u-LLaVA 提供了完整的训练和评估流程,支持多阶段训练(预训练和微调),并发布了代码、分割权重和 Salient-15k 数据集。项目采用 Apache 许可证,需要安装依赖、构建 GroundingDINO 的 CUDA 核心,并准备相关数据集。训练分为两个阶段:Stage I 预训练和 Stage II 微调,支持多 GPU 和单 GPU 训练。u-LLaVA 为多模态任务的研究和应用提供了一个统一的解决方案。

访问官网

工具介绍

u-LLaVA 是一个多模态多任务大型语言模型框架,旨在通过 LLM 统一处理多种视觉-语言任务。该项目由 OPPOMKLab 开发,已被 ECAI 2024 主赛道接收。

用途

u-LLaVA 的主要用途是统一多模态任务,包括视觉理解、视觉分割和视觉定位。具体任务涵盖:

  • 视觉理解:图像描述、视频描述、视觉问答(VQA)
  • 视觉分割:指代表达分割(RES)、显著目标分割、语义分割、实例分割
  • 视觉定位:指代表达理解(REC)

主要能力

  • 多模态多任务统一:通过 LLM 处理多种视觉-语言任务。
  • 支持多种数据集:包括文本、图像-文本、视频-文本等混合数据集。
  • 训练流程:分为 Stage I 预训练和 Stage II 微调,支持多 GPU 和单 GPU 训练。
  • 评估:提供批量评估和定性推理功能。
  • 已发布资源:代码、分割权重、Salient-15k 数据集。

使用方式

  1. 安装依赖:pip install -r requirements.txt
  2. 构建 GroundingDINO 的 CUDA 核心:cd ./models/GroundingDINO && ./install.sh && cd ../..
  3. 下载标注和图像数据:根据提供的链接下载 ullava 修改的标注、LLaVA 预训练和微调标注,以及图像存储。
  4. 准备开源 LLaMA 模型:注意 LLaMA2 使用 bf16 训练,Stage I 使用 fp16 可能导致收敛错误;Llama-2 的 tokenizer.legacy 默认为 False,可能引发分词不匹配错误。论文中使用的基座 LLM 是 Vicuna-v1.1,而非 LLaMA2。
  5. 训练 Stage I:使用多 GPU 或单 GPU 命令,例如 python train_ullava_core.py --cfg_path './configs/train/ullava_core_stage1.yaml'。Stage I 使用 4 张 A100 80G 和 bf16 训练 1 个 epoch 约需 6 小时。
  6. 训练 Stage II:使用多 GPU 或单 GPU 命令,例如 python train_ullava.py --cfg_path './configs/train/ullava_stage2_lora.yaml'。
  7. 评估:修改 evaluation/inference_ullava_core.py 和 evaluation/inference_ullava.py 中的解析器进行批量评估和定性推理。

适用场景

u-LLaVA 适用于多模态任务的研究和开发,如视觉问答、图像/视频描述、图像分割和视觉定位等。它可以帮助研究人员和开发者在一个统一的框架下探索多模态任务。

限制

  • 训练需要较高的计算资源(如 A100 80G)。
  • 部分权重和功能(如 grounding&segmentation 权重、ViT-336 支持等)尚未发布,预计在 2024 年 7 月或 8 月前发布。
  • 需要遵循原始数据集的许可证要求。
  • 项目采用 Apache 许可证。