MM-Interleaved

MM-Interleaved

创新交错图文生成模型

MM-Interleaved是一种新型交错图文生成模型,采用创新的多模态特征同步器MMFS。它能分析高分辨率图像的多尺度特征,生成精确文本描述和匹配图像。该模型在多模态理解和生成任务中表现出色,可适用于多种应用场景。

MM-Interleaved生成模型多模态图像文本预训练Github开源项目

MM-Interleaved: 基于多模态特征同步器的交错图像-文本生成建模

这是MM-Interleaved的官方代码库:一个用于交错图像-文本数据的端到端生成模型。

简介

MM-Interleaved是一个新的端到端生成模型,用于交错图像-文本建模。它引入了一种新颖的细粒度多模态特征同步器MMFS,使其能够识别多张图像中的多尺度高分辨率特征,以自回归方式生成准确的文本描述和视觉一致的图像。更多技术细节请参阅我们的论文

该模型在多个公开可用的数据集上进行预训练,在各种多模态理解和生成的评估基准上取得了优异的零样本性能。它可以进一步针对不同的下游任务进行微调,如视觉问答、图像描述、指代表达定位、文本到图像生成、分割到图像转换和视觉故事讲述。

示例

<div align=center><img src="https://yellow-cdn.veclightyear.com/835a84d5/10d3ee99-61fd-47d8-aff4-ab9a94e1fd73.png" style="zoom:60%;" /></div> <div align=center><img src="https://yellow-cdn.veclightyear.com/835a84d5/f2a24bdf-a09c-4379-8826-086aba1aceb5.png" style="zoom:75%;" /></div> <div align=center><img src="https://yellow-cdn.veclightyear.com/835a84d5/5072ec19-64ee-471c-b134-b60b204e2588.png" width=70% height=70%/></div> <div align=center><img src="https://yellow-cdn.veclightyear.com/835a84d5/acfb7cbe-0b75-4042-9957-d2cfdfade629.png" width=50% height=50% /></div>

设置

第1步,克隆仓库并使用pip安装所有必需的包。

git clone https://github.com/OpenGVLab/MM-Interleaved cd MM-Interleaved pip install -r requirements.txt # 安装`MultiScaleDeformableAttention`模块 cd mm_interleaved/models/utils/ops python setup.py install

第2步,通过运行以下命令从huggingface下载所有预训练模型组件到assets/目录:

python mm_interleaved/scripts/download_hf_models.py

MM-Interleaved的预训练模型权重(不包括指令调优或SFT)可在此链接获取,遵循Llama的模型许可。您可以将它们下载到OUTPUT/mm_interleaved_pretrain并用于进一步的推理、零样本评估或微调任务。

推理

对于推理,我们提供了一个示例推理脚本./inference.py和相应的配置文件./mm_interleaved/configs/release/mm_inference.yaml,原生支持交错图像和文本生成。只需运行以下命令:

python -u inference.py --config_file=mm_interleaved/configs/release/mm_inference.yaml

生成结果将自动保存在./OUTPUT/mm_inference目录下。

交错输入数据默认来自./docs/examples/annt.json。您可以随意修改它以进行自定义生成。以下是交错输入上下文的示例:

{
    // 输入文本句子列表
    "sentences": [
        "厨房里展示了各种各样的物品摆放在柜台上。"
    ],
    // 输入图像路径列表
    "images": [
        "./assets/dataset/coco/val2014/COCO_val2014_000000384213.jpg"
    ],
    // "images"对应的句子索引列表
    "sentence_ixs": [
        0 
    ],
    // 图像及其对应句子的相对顺序列表
    "image_first": [
        false 
    ],
    // 第一次迭代的初始生成模式,可以是"generate_images"或"generate_texts"
    "generate_mode": "generate_images",
    // 总迭代次数
    "num_iter": 1
}

请注意,如果"generate_mode"设置为"generate_images",则应在最后一个句子之后附加一个填充图像作为占位符。目前,输入应至少包含1张图像(包括填充图像,如果存在)。

评估

我们提供了脚本./evaluate.py和相应的配置文件./mm_interleaved/configs/release/mm_eval.yaml,用于对我们预训练模型在论文中提到的所有基准上进行零样本评估。我们还上传了所有注释文件在此处以便于访问。

评估默认在slurm分布式环境下进行。请首先下载预训练模型权重和配置文件中指定的相同路径下的每个数据集的评估数据。然后运行以下命令:

bash slurm_run.sh ${GPUS} ${GPUS_PER_NODE} ${JOB_NAME} ${QUOTATYPE} ${PARATITION} evaluate.py ./mm_interleaved/configs/release/mm_eval.yaml

所有评估数据集的文件结构预期如下:

├── coco
│   ├── annotations
│   │   ├── captions_val2014.json
│   │   ├── captions_val2017.json
│   │   ├── coco_karpathy_test_gt.json
│   │   ├── coco_karpathy_test.json
│   │   ├── coco_karpathy_val_gt.json
│   │   └── coco_karpathy_val.json
│   ├── test2014
│   ├── val2014
│   └── val2017
├── flickr30k
│   ├── flickr30k-images
│   └── test1k.token.coco_format
├── image2paragraph
│   ├── annotations
│   │   ├── paragraphs_coco.json
│   │   ├── paragraphs_v1.json
│   │   ├── test_split.json
│   │   └── val_split.json
│   └── images
├── lncoco
│   ├── coco_val_captions.jsonl
├── nocaps
│   ├── images
│   └── nocaps_val_4500_captions.json
├── OK-VQA
│   ├── mscoco_val2014_annotations.json
│   └── OpenEnded_mscoco_val2014_questions.json
├── textvqa
│   ├── textvqa_val_annotations.json
│   ├── textvqa_val_questions.json
│   └── train_images
├── visdial
│   ├── visdial_1.0_val_dense_annotations.json
│   ├── visdial_1.0_val.json
│   └── VisualDialog_val2018
├── VizWiz
│   ├── val
│   └── val.json
└── VQAv2
    ├── v2_mscoco_val2014_annotations.json
    └── v2_OpenEnded_mscoco_val2014_questions.json

预训练

我们还提供了预训练脚本./train.py和相应的配置文件mm_interleaved/configs/release/mm_pretrain.yaml。默认情况下,我们使用DeepSpeed ZeRO-1在slurm环境下进行高效的分布式训练。训练引擎基于huggingface的trainer实现。

我们使用webdataset进行高效的数据加载。对于MMC4数据集,只需将所有图像和注释文件下载到配置文件中指定的同一目录下即可。带有.jsonl.zip后缀的原始注释文件可以直接处理,无需进一步修改。对于LAION-COCO和LAION-En等图像-文本对数据集,每个注释文件预计有约10,000行图像-文本对数据。每行是一个json字典,包含两个键值对,即"image"和相应的"caption"。在./docs/examples/0000001.txt中提供了一个示例注释文件。准备好所有预训练数据后,请修改配置文件中的数据路径以及其他相关参数。

此外,我们还支持在训练期间对多个数据集进行零样本评估。为此,修改训练配置文件的data.val部分,并包含您想要在训练过程中实时监控的评估数据集的配置。

预训练命令为:

bash slurm_run.sh ${GPUS} ${GPUS_PER_NODE} ${JOB_NAME} ${QUOTATYPE} ${PARATITION} train.py ./mm_interleaved/configs/release/mm_pretrain.yaml

计划

  • 发布推理和评估代码
  • 发布预训练代码
  • 发布预训练模型权重
  • 发布微调代码

致谢

我们感谢来自OpenFlamingotransformersdiffusersLLaMACLIPBLIPViT-Adapter的优秀工作。

引用

如果您觉得MM-Interleaved有帮助,请考虑给这个仓库点个星:star:,并在您的出版物中引用。

@article{tian2024mminterleaved, title={MM-Interleaved: Interleaved Image-Text Generative Modeling via Multi-modal Feature Synchronizer}, author={Tian, Changyao and Zhu, Xizhou and Xiong, Yuwen and Wang, Weiyun and Chen, Zhe and Wang, Wenhai and Chen, Yuntao and Lu, Lewei and Lu, Tong and Zhou, Jie and Li, Hongsheng and Qiao, Yu and Dai, Jifeng}, journal={arXiv preprint arXiv:2401.10208}, year={2024}, }

许可证

本项目根据Apache 2.0许可证发布。本项目的部分内容包含来自其他来源的代码和模型,这些内容受其各自的许可证约束。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多