LAMM
首个同时覆盖 2D 图像与 3D 点云的多模态大模型训练与评测开源框架,NeurIPS 2023 收
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个同时覆盖 2D 图像与 3D 点云的多模态大模型训练与评测开源框架,NeurIPS 2023 收
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你是一名 AI 研究员,刚刚看到 GPT-4V 能看懂图片、又能回答问题,内心激动不已——但紧接着的困惑是:如何在自己的数据上训练这样的模型?用什么评测指标判断模型好坏?有没有一套工具能把训练和评测串起来?LAMM 正是为回答这些问题而生的。
2023 年是多模态大语言模型(MLLM)的元年。GPT-4V、LLaVA、MiniGPT-4 等模型相继问世,它们不仅能「看见」图像,还能结合视觉信息进行复杂推理。然而对这些模型的研究面临三重困境:训练碎片化(每个团队各自为战)、评测无标准(不同论文用不同数据集横评结果难以对比)、2D/3D 视觉理解通常两套独立系统。
LAMM(Language-Assisted Multi-Modal instruction-tuning,名字取自 LLaMA 的「羊驼」谐音,寓意「可爱小羊」)由上海人工智能实验室(Shanghai AI Lab)的 OpenGVLab 团队推出,于 2023 年 6 月发布论文、10 月被 NeurIPS 2023 Datasets & Benchmarks Track 接收,成为该领域为数不多的顶会级开源基准。

图1:LAMM 整体框架,左侧为多模态输入(图像/点云),右侧为 LLM 输出
LAMM 的核心架构是视觉编码器 + 投影层 + LLM 的经典范式,具体分为三部分:
1. 视觉编码器:LAMM 支持两种视觉编码器。CLIP(默认)预训练于大规模图文对,提取的 2D 图像特征泛化性强;EPCL(可选)为增强版点云编码器,处理 3D 点云数据,支持颜色、高度等辅助信息。代码中 model/LAMM/CLIP/ 和 model/LAMM/EPCL/ 分别对应两种编码器实现,均通过可选导入(try/except)实现解耦。
2. 投影层(Projection Layer):视觉特征通过投影层映射到 LLM 的嵌入空间。LAMM 支持两种特征提取方式:Local Feature(默认)从视觉编码器的倒数第二层提取细粒度局部特征;Global Feature 从最后一层提取全局特征。
3. LLM 基座:默认使用 Vicuna(基于 LLaMA)作为语言模型,支持 7B 和 13B 两种规模。modeling_llama.py 实现了 LLaMA 的自定义前向传播,兼容 DeepSpeed ZeRO 分布式训练。

图2:LAMM 基准数据集覆盖 2D 图像和 3D 点云两类任务
LAMM 的训练流程(src/train.py)设计了两阶段:
Stage 1 - 投影层热启动:冻结 LLM 和视觉编码器,仅训练投影层,快速建立视觉-语言对齐。
Stage 2 - LoRA 高效微调:在 Stage 1 基础上,启用 LoRA(Low-Rank Adaptation)对 LLM 进行轻量微调,大幅降低显存占用。默认 LoRA 配置:rank=32, alpha=32, dropout=0.1,作用于 q_proj/k_proj/v_proj/o_proj 四个注意力投影矩阵。
训练引擎基于 DeepSpeed(支持 ZeRO-2/ZeRO-3 优化),可通过 deepspeed 命令行一键启动多卡分布式训练。Light 训练模式(V100/3090 单卡)也在 2023 年 9 月上线,降低了入门门槛。
# train.py 核心配置示例
parser.add_argument("--stage", type=int, default=1)
parser.add_argument("--use_flash_attn", default=False)
parser.add_argument("--gradient_checkpointing", default=False)
parser.add_argument("--vision_feature_type", choices=("local", "global"))
LAMM 不只是训练框架,更是一套完整的评测体系。评测模块(src/eval.py)基于 ChEF(Comprehensive Evaluation Framework)框架,支持:
LAMM-Benchmark:2D 图像 + 3D 点云的理解能力评测
ChEF:通用多模态 LLM 评测框架,支持多种场景和任务
MP5:Minecraft 嵌入式多模态开放世界评测(与 3D 物理世界交互)
Octavius:MoE + LoRA 混合架构评测
DepictQA:基于 MLLM 的图像质量评估
评测脚本 slurm_eval.sh 支持 SLURM 集群调度,适配大规模多卡评测场景。

图3:LAMM 评测基准覆盖多种视觉理解任务
LAMM 主仓库孕育了多个衍生项目,共同构成一个活跃的多模态研究生态:
| 子项目 | 方向 | 论文 |
|---|---|---|
| Octavius | MoE + LoRA 混合架构,缓解多任务干扰 | ArXiv 2023 |
| ChEF | 多模态 LLM 综合评测框架 | ArXiv 2023 |
| Ch3Ef | 人类价值对齐评估 | ArXiv 2024 |
| DepictQA | 基于 MLLM 的图像质量评估 | ArXiv 2023 |
| MP5 | Minecraft 嵌入式多模态开放世界评测 | ArXiv 2023 |

图4:Octavius 将 MoE 专家混合与 LoRA 相结合,提升多任务泛化能力
LAMM 的定位是科研工具,面向有深度学习训练经验的开发者。典型部署流程如下:
前置准备:1) 准备 Vicuna/LLaMA checkpoint(需自行申请或从第三方获取);2) 下载 LAMM 预训练 delta checkpoint(发布在 HuggingFace);3) 准备 LAMM Dataset(发布在 HuggingFace 和 OpenDataLab);4) 配置 CUDA + cuDNN + NCCL 环境。
启动训练:deepspeed src/train.py --cfg config/train.yaml --llm_ckpt_path /path/to/vicuna --delta_ckpt_path /path/to/lamm_delta --data_path /path/to/lamm_dataset.json --save_path /path/to/output
CLI 演示模式:src/cli_demo.py 提供命令行交互演示,支持图片/点云 + 文本的多轮对话,适合快速验证模型效果。
LAMM 并非面向终端用户的开箱即用产品,以下局限性值得关注:
许可限制:采用 CC BY NC 4.0,仅限非商业用途,模型训练结果不能用于商业产品,限制了企业应用
门槛较高:需要理解 LoRA 微调、DeepSpeed 分布式训练、SLURM 调度等专业知识
外部依赖重:需要自行获取 Vicuna 等基座模型,部署链路较长
文档缺口:核心配置文件(config/train.yaml)的具体含义和使用示例说明不足
LAMM 的价值不仅在于代码本身,更在于它代表了一种趋势——从「单模型刷榜」到「全栈基准建设」。随着多模态模型能力越来越强,如何科学地训练、如何统一地评测,成为社区必须回答的问题。LAMM 提供了:
首个同时覆盖 2D 视觉 + 3D 点云 的多模态训练基准
基于 LoRA 的高效微调范式,让资源有限的实验室也能训练 MLLM
从训练到评测的端到端工具链,减少重复造轮子
2023 年 10 月被 NeurIPS Datasets & Benchmarks Track 接收,本身也说明其学术价值获得了顶级社区的认可。对于想要入局多模态 LLM 研究、或在特定领域(3D 视觉、医疗影像、工业检测)微调专属多模态模型的团队,LAMM 是值得深入研究的参考实现。