Llama-3.1 8B Carrot - Capx AI
我们很高兴发布我们最新的模型——Llama-3.1-Carrot,这是一个基于 SigLip 和 Meta AI 的 Llama 3.1 8B 的 80 亿参数视觉模型。
主要架构由 2 个组件构成
- Llama 3.1 8B Instruct:一个大型语言模型,以其在指令遵循任务中的强大性能而闻名。
- SigLIP:一个在创建丰富视觉表示方面表现出色的视觉编码器。
模型权重根据 Apache 2.0 许可证在此发布:https://huggingface.co/Capx/Llama-3.1-Vision
在此衷心感谢 BAAI 团队在 Bunny 项目上的出色工作。
模型架构
我们的模型基于 BAAI 的 Bunny 仓库。我们的视觉模型架构可以分为三个主要组件
- 视觉编码器 (SigLIP):负责处理视觉输入并将其编码为高维特征空间。
- 连接器模块:连接视觉编码器和语言模型的关键组件,实现有效的多模态推理。
- 语言模型 (Llama 3.1 8B Instruct):根据编码的视觉特征和文本输入处理文本生成和理解。
来源:https://arxiv.org/abs/2402.11530
我们使用 LoRA 对整个模型进行参数高效训练,以在有限的资源下进行训练。
训练过程
我们采用了两阶段训练方法
预训练阶段:在此阶段,我们将预训练视觉编码器中的视觉嵌入与 LLM 中的文本嵌入对齐。此阶段的目的是使视觉嵌入(即使用预训练视觉编码器(在本例中为 SigLip)从图像中提取的视觉信息的高维表示)适应表示文本的另一个高维空间。这通过跨模态投影仪完成,该投影仪是一个 2 层 MLP,将图像嵌入投影到文本嵌入。
视觉指令微调:此过程涉及在各种多模态任务上训练模型,教会它遵循涉及文本和图像的指令。LoRA (Low-Rank Adaptation):这是一种用于高效微调大型语言模型的技术。它在 LLM 的每一层添加少量可训练参数,允许进行任务特定适应而无需修改所有参数。过程
LLM 骨干网络使用 LoRA 进行微调,这有助于保持模型的通用知识,同时适应多模态任务。视觉编码器和跨模态投影仪经过完全微调,使其能够更完整地适应多模态上下文。
在训练期间,我们监控了损失收敛和验证性能等关键指标,以确保模型行为最佳。
在视觉指令微调阶段观察到以下损失
计算资源使用情况
整个模型在 8 个 A100 GPU 上进行训练,每个 GPU 具有 80GB VRAM。完整训练耗时约 40 小时。
结果和性能
我们的最终模型在各种视觉-语言任务中展现出令人印象深刻的能力
- 图像字幕:为各种图像生成详细且与上下文相关的字幕。
- 视觉推理:在需要对视觉场景进行复杂推理的任务中表现出色。
示例:
用户: 它的表情是什么?
助手: 这只猫的表情很顽皮。它似乎在微笑并伸出舌头。
用户: 背景里有什么?
助手: 背景里有一个带白色围栏的游泳池。附近还有树木和一座房子。
用户: 图像中的角色是谁?
助手: 图像中的角色是马里奥、路易吉和耀西。
用户: 它们是真的吗?
助手: 不,它们不是真的。它们是塑料玩具。
结论
我们希望社区能利用我们的经验并创造出很酷的东西。思想、机会和潜力是无限的!随着我们不断改进和扩展这个模型,我们预计它将在内容审核到高级人机交互系统等各个领域得到应用。谢谢!
我们感谢 BAAI 团队的 Bunny 项目,我们的模型正是在其基础上构建的,也感谢 Meta AI 的 Llama 3.1 模型!