TinyLLaVA_Factory 项目介绍
项目背景
TinyLLaVA_Factory 是一个致力于小规模大型多模态模型的模块化开源代码库,主要实现于 PyTorch 和 HuggingFace 框架之上。该项目的核心目标是简化复杂模型的实现过程,提高代码可扩展性,并确保训练结果的可复现性。
项目亮点
- 性能卓越:在性能方面,TinyLLaVA-Phi-2-SigLIP-3.1B 模型表现优于现有的一些更大规模的模型,如 LLaVA-1.5 和 Qwen-VL。
- 开放源码:项目代码完全开源,使得研究人员和开发人员可以根据自身需求进行定制。
- 模块化设计:代码库采用模块化设计,允许用户通过较少的编码工作量和错误实现自定义的多模态模型。
- 集成前沿技术:TinyLLaVA Factory 集成了多种顶尖的模型和方法,例如支持 OpenELM、TinyLlama、StableLM 等多种语言模型,并支持 CLIP、SigLIP 等视觉塔。
基本功能
TinyLLaVA_Factory 不仅能够支持不同的语言模型、视觉模型和连接器,还提供了多种训练调优方案,包括冻结、完全或部分调优,以及 LoRA/QLoRA 调优策略。如此丰富的支持极大程度上提升了模型的灵活性和适应性。
使用说明
环境搭建
为了启动 TinyLLaVA_Factory 项目,建议用户从头创建一个新的环境,具体步骤如下:
- 克隆代码库并进入项目文件夹:
git clone https://github.com/TinyLLaVA/TinyLLaVA_Factory.git cd TinyLLaVA_Factory
- 创建并激活 Conda 环境后,安装所需的软件包:
conda create -n tinyllava_factory python=3.10 -y conda activate tinyllava_factory pip install --upgrade pip pip install -e .
- 安装额外的依赖包:
pip install flash-attn --no-build-isolation
模型训练
在开始训练之前,用户需要准备数据并根据自己的需求修改训练脚本中的路径配置。训练流程包括数据准备、模型训练和模型评估三个主要步骤。
模型库
TinyLLaVA_Factory 提供了训练好的模型,包括 TinyLLaVA-Phi-2-SigLIP-3.1B 等,这些模型表现出色,可以用于多种任务的评估。此外,旧版代码库训练的遗留模型也可以通过特定的示例进行使用。
自定义调整
项目允许用户进行模型的自定义微调。如果用户有自定义的数据集需进行微调,可以参考项目文档中的详细指南进行操作。
结语
TinyLLaVA_Factory 是一个功能完善且灵活的工具,对于希望开发小规模大型多模态模型的研究人员和开发者而言是一个理想选择。通过代码库中详尽的文档和示例,用户可以快速上手并投入实际应用。项目还持续欢迎社区的贡献和反馈,以便于不断完善和扩展其功能和性能。