AnyModal 是一个面向 PyTorch 的灵活多模态语言模型框架,旨在以模块化方式构建多模态语言模型。其核心思路是将预训练的视觉(或其他模态)编码器与大语言模型(LLM)通过可插拔的投影器(projector)架构桥接,从而让用户仅需一个配置文件与少量代码即可训练多模态模型。
【主要能力】
- 提供 5 种投影器架构:Linear、MLP、Q-Former(BLIP-2)、Perceiver Resampler(Flamingo)、C-Abstractor(Honeybee)。
- 可插拔编码器:支持 ViT、SigLip、CLIP、DINOv2,且任何 HuggingFace 视觉模型均可开箱即用。
- 配置驱动:所有超参数均可通过 YAML 配置,并支持命令行覆盖(CLI overrides)用于实验。
- 集成 HuggingFace Trainer:支持学习率调度、梯度裁剪、混合精度、检查点保存,以及 wandb/tensorboard 日志。
- 规范的打包:支持 pip 安装,API 带类型注解,并已通过 CI 测试。
- 支持 PEFT/LoRA:可选择在视觉编码器和语言模型上启用 LoRA。
【使用方式】 资料中列出三种使用选项:
- 配置驱动(推荐)
- Python API
- HuggingFace Trainer
投影器架构是关键的 Trainable 组件,负责将编码后的模态特征映射到 LLM 的嵌入空间,用户可根据需求选择。
【预训练模型】 HuggingFace 上提供预训练模型,例如:Image-Captioning-Llama-3.2-1B:ViT + Llama 3.2-1B,在 Flickr30k 上训练。
【扩展性】 支持自定义投影器(Custom Projector)来扩展 AnyModal。
【适用场景与限制】 该框架适用于需要在 PyTorch 中快速搭建、训练和实验多模态语言模型的研究与工程场景,尤其适合希望通过更换投影器或编码器来对比不同架构组合的用户。
资料中未提供具体的安装命令、代码示例细节、支持的平台、收费信息、价格、性能数据或使用步骤,这些内容暂未提供。
【许可】 MIT License,详见 LICENSE。