SuperAPI AI 工具集

lmms-finetune

lmms-finetune 是一个用于微调大型多模态模型(LMM)的最小化代码库,旨在提供统一、轻量的微调结构。它支持多种主流多模态模型,包括 llava-1.5/1.6、llava-interleave、llava-next-video、llava-onevision、llama-3.2-vision、qwen-vl、qwen2-vl、qwen2.5-vl、phi3-v 等。该代码库抽象了模型加载、数据整理等微调组件,方便快速集成新模型,并采用 Hugging Face 官方实现,确保微调后推理方式与原始模型一致。它支持全量微调、LoRA 和 Q-LoRA(针对 LLM 组件),以及视觉编码器的全量微调和 LoRA。代码库保持简洁易改,适合快速实验和灵活修改。

访问官网

工具介绍

lmms-finetune 是一个用于微调大型多模态模型(LMM)的最小化代码库。随着多模态模型不断发布,其微调过程往往并不简单,该代码库旨在提供一个统一、精简的结构,降低微调门槛。

用途

该代码库主要用于微调各类大型多模态模型,支持单图像模型(如 LLaVA-1.5、LLaVA-1.6/NeXT、Phi-3-Vision、Llama-3.2-Vision)、多图像/交错图像模型(如 Qwen-VL-Chat、Qwen2-VL-Instruct、LLaVA-NeXT-Interleave、Qwen2.5-VL-Instruct)、视频模型(如 LLaVA-NeXT-Video)以及统一模型(如 LLaVA-Onevision)。完整支持列表可查看 supported_models.md 或运行 python supported_models.py。

主要能力

  • 支持多种训练策略:对 LLM 组件支持全量微调、LoRA 和 Q-LoRA;对视觉编码器/主干支持全量微调和 LoRA。
  • 使用 Hugging Face 官方实现,微调后推理方式与原始 HF 模型完全一致。
  • 抽象了微调过程的组件(如模型加载、数据整理),便于集成最新 LMM。
  • 保持代码库简洁轻量,易于理解和修改。
  • 支持文本-图像/视频混合数据,以及纯文本样本。
  • 提供 gradio webui 界面进行微调(运行 python webui.py)。
  • 提供 merge_lora_weights.py 脚本,方便合并 LoRA 权重获得独立模型。

使用方式

  1. 数据准备:数据需为 JSON 文件,包含字典列表,每个字典为一个样本。图像和视频标记分别为 <image> 和 <video>,支持多样本、多图像/视频输入及纯文本样本。实际图像/视频默认存放在对应文件夹,JSON 中的路径相对于根文件夹或使用绝对路径。
  2. 修改示例 bash 脚本(example_video.sh 或 example_image.sh),指定目标模型、数据路径等参数,然后运行 bash example_scripts/example_video.sh 或 bash example_scripts/example_image.sh 开始训练。注意运行提供的 example_video.sh 需要从 ShareGPT4Video 下载视频片段。
  3. 若偏好图形界面,运行 python webui.py 启动 gradio 界面进行微调。
  4. 推理:正确加载微调后的模型后,推理方式与对应的 Hugging Face 模型相同。可参考推理文档和 merge_lora_weights.py 获取独立模型。

适用场景

适合需要快速实验、灵活修改和集成新多模态模型的研究者或开发者。相比大规模、高度优化的框架,本代码库更透明、更易上手,便于了解训练过程细节。

限制

  • 若训练数据包含纯文本条目,且 per_device_batch_size 为 1 或纯文本实例数量远多于多模态实例,训练可能因 deepspeed 的限制/缺陷而失败。
  • 支持模型列表不断更新,部分新模型可能需要从 GitHub 安装最新 transformers(如 Qwen2.5 家族需 transformers-4.49.0.dev0 分支)。
  • 使用 LLaVA-Onevision 时需注意相关说明。

更新记录

  • 2025/01/27:支持 Qwen2.5 家族(需从 GitHub 安装最新 transformers)。
  • 2024/12/16:支持 Llama-3.2-Vision 训练,新增 merge_lora_weights.py。
  • 2024/10/16:新增 LLaVA-Onevision 支持,更新 collators 以适配 transformers 中 LLaVA 模型的新处理方式。
  • 2024/08/28:支持 gradio webui 界面微调。
  • 2024/07/30:支持视觉编码器和投影器的微调。
  • 2024/07/25:发布 Colab notebook 展示 LLaVA-NeXT-Video-7B 完整训练;支持训练集中的纯文本样本。
  • 2024/07/20:初始版本发布。

活跃维护者:Yuqian Hong;初始维护者:Jingyang Zhang、Yueqian Lin。若在研究/项目中使用,欢迎 star、分享或引用。