
基于MIMIC-IT数据集和OpenFlamingo的多模态模型
该项目结合了OpenFlamingo模型和MIMIC-IT数据集进行多模态指令调优,拥有280万条指令-响应对,支持图像和视频内容的精确理解与互动。该项目还包括OtterHD模型,提升高分辨率视觉输入的细粒度解释,并推出MagnifierBench评估基准测试模型的微小物体识别能力。公开的代码可用于训练和预训练,并支持GPT4V的评估和Flamingo架构的多任务处理。
项目鸣谢 | Otter 论文 | OtterHD 论文 | MIMIC-IT 论文
检查点:
免责声明: 代码可能并非完美优化和重构,但所有开源代码均经过测试并可运行,因为我们也使用这些代码来支持我们的研究。如果有任何问题,请随时提出 issue。我们热切期望接收到改进代码质量的建议和 PR。
[2023-11]: 支持 GPT4V 在 8 个基准上的评估;宣布 OtterHD-8B,是从 Fuyu-8B 改进而来的。详情请查看 OtterHD。
<div style="text-align:center"> <img src="https://yellow-cdn.veclightyear.com/35dd4d3f/28b75099-83a4-475e-90c6-20ab70461644.png" width="100%" height="100%"> </div>datasets: - name: magnifierbench split: test prompt: Answer with the option's letter from the given choices directly. api_key: [Your API Key] # GPT4 或 GPT3.5 用于评估答案和真实答案。 debug: true # 设置 debug=true 将会在日志文件中保存模型回应。 - name: mme split: test debug: true - name: mmbench split: test debug: true models: - name: gpt4v api_key: [Your API Key] #调用 GPT4V 模型。
此更改较大,可能会导致之前的代码无法运行,请检查详情。IMAGE_TEXT: # 组名可以是 [IMAGE_TEXT, TEXT_ONLY, IMAGE_TEXT_IN_CONTEXT] LADD: # 数据集名称可以自定义 mimicit_path: azure_storage/json/LA/LADD_instructions.json # 指令 json 文件路径 images_path: azure_storage/Parquets/LA.parquet # 图像 parquet 文件路径 num_samples: -1 # 使用样本数,-1 代表使用所有样本,如果未设置,默认为 -1。 M3IT_CAPTIONING: mimicit_path: azure_storage/json/M3IT/captioning/coco/coco_instructions.json images_path: azure_storage/Parquets/coco.parquet num_samples: 20000
[2023-08]
[2023-07]: 宣布 MIMIC-IT 数据集用于多段插图文/视频指令调优。
[2023-06]
frame tensors 错误地扩展到了错误的 vision_x。
请确保正确调整
sys.path.append("../..")以访问otter.modeling_otter以启动模型。
大型语言模型(LLM)已展示出作为少/零样本学习者在众多任务中具备的杰出通用能力,这得益于它们在大量文本数据上的预训练。在这些 LLM 中,GPT-3 突显出其强大的能力。 此外,GPT-3 的变体,即 InstructGPT 和 ChatGPT,已证明其能够解释自然语言指令以执行复杂的现实任务,这要归功于指令调优。
受 Flamingo 模型上游交错格式预训练的启发,我们推出了 🦦 Otter,一个基于 OpenFlamingo(由 DeepMind 开源的 Flamingo 模型)的多模态模型。我们在我们提出的多模态上下文指令调优(MIMIC-IT)数据集上对 Otter 进行了上下文指令调优。Otter 在图像和视频方面展示了改进的指令跟随和上下文学习能力。
MIMIC-IT 实现了可以回答“嘿,你觉得我把钥匙放在桌子上了吗?”这种问题的自我中心视觉助手模型。利用 MIMIC-IT 的力量来释放您的 AI 驱动视觉助手的全部潜力,并将您的互动视觉语言任务提升到新高度。
<p align="center" width="100%"> <img src="https://yellow-cdn.veclightyear.com/35dd4d3f/e8823894-c02f-46de-8fae-4adebd81df43.png" width="80%" height="80%"> </p>我们还引入了 Syphus,一个自动生成多语言高质量指令-响应对的管道。基于 LLaVA 提出的框架,我们利用 ChatGPT 生成基于视觉内容的指令-响应对。为了保证生成的指令-响应对的质量,我们的管道使用了系统消息、视觉注释和上下文示例作为 ChatGPT 的提示。
更多详情,请查看 MIMIC-IT 数据集。
Otter 旨在支持基于 OpenFlamingo 模型的多模态上下文指令调优,涉及将语言模型置于相应的媒介上,例如对应于标题或指令-响应对的图像。 我们在 MIMIC-IT 数据集上训练 Otter,约有 280 万对上下文指令-响应对,这些对被构造成一个连贯的模板以促进各种任务。Otter 支持视频输入(帧的排列与原始 Flamingo 的实现相同)和多图像输入作为上下文示例,这是第一个多模态指令调整模型。
以下模板包含图像、用户指令和模型生成的响应,利用 User 和 GPT 角色标签来实现用户助手的无缝互动。
prompt = f"<image>User: {instruction} GPT:<answer> {response}<endofchunk>"
在 MIMIC-IT 数据集上训练 Otter 模型使其能够获得不同的能力,通过 LA 和 SD 任务展示出来。在 LA 任务中训练的模型展示了出色的场景理解、推理能力和多轮对话能力。
# 多轮对话 prompt = f"<image>User: {first_instruction} GPT:<answer> {first_response}<endofchunk>User: {second_instruction} GPT:<answer>"
关于组织视觉-语言上下文示例的概念,我们在此展示了 Otter 模型在 LA-T2T 任务训练后获得的遵循上下文指令的能力。组织的输入数据格式如下:
# 含类似指令的多个上下文示例 prompt = f"<image>User:{ict_first_instruction} GPT: <answer>{ict_first_response}<|endofchunk|><image>User:{ict_second_instruction} GPT: <answer>{ict_second_response}<|endofchunk|><image>User:{query_instruction} GPT: <answer>"
有关更多详细信息,请参阅我们的论文附录中的其他任务。
conda env create -f environment.yml 安装,特别是要确保 transformers>=4.28.0, accelerate>=0.18.0。配置环境后,你可以只用几行代码将 🦩 Flamingo 模型 / 🦦 Otter 模型作为 🤗 Hugging Face 模型 使用!一键点击,模型配置/权重将自动下载。请参阅 Huggingface Otter/Flamingo 以了解详情。
Otter 基于 OpenFlamingo 进行训练。你可能需要使用在 luodian/OTTER-9B-INIT 或 luodian/OTTER-MPT7B-Init 上转换的权重。它们分别从 OpenFlamingo-LLaMA7B-v1 和 OpenFlamingo-MPT7B-v2 转换而来,我们为 Otter 的下游指令调整添加了 <answer> 标记。
你也可以使用任何训练过的 Otter 权重在我们的基础上开始训练,请参阅 Otter Weights 以了解更多详情。可以参考 MIMIC-IT 以准备图像/指令/训练 json 文件。
export PYTHONPATH=. RUN_NAME="Otter_MPT7B" GPU=8 WORKERS=$((${GPU}*2)) echo "Using ${GPU} GPUs and ${WORKERS} workers" echo "Running ${RUN_NAME}" accelerate launch --config_file=./pipeline/accelerate_configs/accelerate_config_zero3.yaml \ --num_processes=${GPU} \ pipeline/train/instruction_following.py \ --pretrained_model_name_or_path=luodian/OTTER-MPT7B-Init \ --model_name=otter \ --instruction_format=simple \ --training_data_yaml=./shared_scripts/Demo_Data.yaml \ --batch_size=8 \ --num_epochs=3 \ --report_to_wandb \ --wandb_entity=ntu-slab \ --external_save_dir=./checkpoints \ --run_name=${RUN_NAME} \ --wandb_project=Otter_MPTV \ --workers=${WORKERS} \ --lr_scheduler=cosine \ --learning_rate=2e-5 \ --warmup_steps_ratio=0.01 \ --save_hf_model \ --max_seq_len=1024 \
如果你觉得此仓库有用,请考虑引用:
@article{li2023otter,
title={Otter: A Multi-Modal Model with In-Context Instruction Tuning},
author={Li, Bo and Zhang, Yuanhan and Chen, Liangyu and Wang, Jinghao and Yang, Jingkang and Liu, Ziwei},
journal={arXiv preprint arXiv:2305.03726},
year={2023}
}
@article{li2023mimicit,
title={MIMIC-IT: Multi-Modal In-Context Instruction Tuning},
author={Bo Li and Yuanhan Zhang and Liangyu Chen and Jinghao Wang and Fanyi Pu and Jingkang Yang and Chunyuan Li and Ziwei Liu},
year={2023},
eprint={2306.05425},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
感谢 Jack Hessel 的建议和支持,以及 OpenFlamingo 团队对开源社区的巨大贡献。
巨大的赞誉献给 Flamingo 和 OpenFlamingo 团队在这一伟大架构上的杰出工作。


全球首个AI音乐社区
音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。


阿里Qoder团队推出的桌面端AI智能体
QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以 自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。


一站式搞定所有学习需求
不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。


为AI短剧协作而生
专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。


能听懂你表达的视频模型
Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。


国内直接访问,限时3折
输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具