Project Icon

cobra

高效推理的多模态大语言模型扩展

Cobra项目是一个基于Mamba架构的多模态大语言模型,旨在实现高效推理。该模型支持文本和图像输入,提供预训练权重、训练代码和推理脚本。Cobra在处理视觉语言任务时保持高性能,为研究人员和开发者提供了实用的工具。项目包括模型加载、图像处理和文本生成等功能,便于用户快速上手和应用。

Cobra: 将Mamba扩展为多模态大型语言模型以实现高效推理

arXiv 模型 演示

(由SDXL生成,提示词:背景为熔岩的可爱眼镜蛇,卡通风格)

发布

[5/23] 已实施对提示格式的修复,解决了生成过程中的异常行为。请确保使用最新的检查点以适应新的提示格式!

[5/18] 评估代码已上传!

[3/27] 一个直观的演示,展示了我们的Cobra模型和LLaVA v1.5的生成速度。

[3/24] 试试我们的在线演示

[3/24] 训练和推理代码已发布。

[3/24] 我们的模型权重现已可用。

[3/21] 仓库已创建。

安装 | 使用 | 预训练模型 | 训练VLMs | 许可证

安装

本仓库使用Python 3.10构建,但应该与任何Python >= 3.8版本向后兼容。我们需要PyTorch 2.1或更高版本,安装说明可在此处找到。本仓库已使用PyTorch 2.1.0和Torchvision 0.16.0进行了全面测试和开发。

一旦正确安装了PyTorch,您可以通过可编辑安装在本地安装此包(或通过pip install git+https://github.com/h-zhao1997/cobra):

git clone https://github.com/h-zhao1997/cobra
cd cobra
pip install -e .

# 安装mamba和其他包
pip install packaging ninja
pip install "mamba-ssm<2.0.0"
pip install causal-conv1d

# 验证Ninja --> 应返回退出代码"0"
ninja --version; echo $?

如果在安装过程中遇到任何问题,请提交GitHub问题。

使用

安装完成后,加载和运行预训练的cobra模型进行推理很简单:

import requests
import torch

from PIL import Image
from pathlib import Path

from cobra import load

hf_token = Path(".hf_token").read_text().strip()
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
# 如果您的GPU不支持bf16
dtype = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16

# 加载预训练的VLM(本地路径或从HF Hub自动下载的ID)
model_id = "cobra+3b"
vlm = load(model_id, hf_token=hf_token)
vlm.to(device, dtype=dtype)

# 下载图像并指定提示
image_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png"
image = Image.open(requests.get(image_url, stream=True).raw).convert("RGB")
user_prompt = "这张图片中发生了什么?"

# 构建提示
prompt_builder = vlm.get_prompt_builder()
prompt_builder.add_turn(role="human", message=user_prompt)
prompt_text = prompt_builder.get_prompt()

# 生成!
generated_text = vlm.generate(
    image,
    prompt_text,
    use_cache=True,
    do_sample=True,
    temperature=0.4,
    max_new_tokens=512,
)

有关与我们的VLMs交互的完整终端CLI,请查看scripts/generate.py


训练VLMs

预训练数据集

可以通过scripts/preprocess.py中的自动下载脚本下载LLaVa v1.5指令数据集

# 下载`llava-v1.5-instruct`(指令微调)图像和语言数据(包括额外的后处理)
python scripts/preprocess.py --dataset_id "llava-v1.5-instruct" --root_dir <数据根目录路径>

# (如果您还希望下载显式视觉-语言对齐数据)
python scripts/preprocess.py --dataset_id "llava-laion-cc-sbu-558k" --root_dir <数据根目录路径>

LVIS-Instruct-4VLRV-Instruct也可以通过scripts/additional-datasets中的脚本下载。

模型配置和训练脚本

以下是如何按照我们论文中的训练方法在单节点的8个GPU上训练Cobra:

# 在仓库根目录下运行
torchrun --standalone --nnodes 1 --nproc-per-node 8 scripts/pretrain.py \
  --model.vision_backbone_id "dinosiglip-vit-so-384px" \
  --model.image_resize_strategy "resize-naive" \
  --model.llm_backbone_id "mamba-2.8b-zephyr" \
  --model.type "cobra+3b" \
  --model.finetune_global_batch_size 128 \
  --model.finetune_per_device_batch_size 8 \
  --dataset.type "llava-lvis4v-lrv"

引用

如果您在工作中发现我们的代码或模型有用,请引用我们的论文

@article{zhao2024cobra,
      title={Cobra: Extending Mamba to Multi-Modal Large Language Model for Efficient Inference}, 
      author={Han Zhao and Min Zhang and Wei Zhao and Pengxiang Ding and Siteng Huang and Donglin Wang},
      year={2024},
      eprint={2403.14520},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

许可证

本项目在MIT 许可证下发布

致谢

我们的项目基于以下工作构建:

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号