【MLLM+轻量多模态模型】24.02.Bunny-v1.0-2B-zh: 轻量级多模态语言模型 (效果一般)

24.02 北京人工智能研究院(BAAI)提出以数据为中心的轻量级多模态模型

arxiv论文:2402.Efficient Multimodal Learning from Data-centric Perspective
代码:https://github.com/BAAI-DCAI/Bunny
在线运行:https://wisemodel.cn/space/baai/Bunny

在这里插入图片描述

项目进展 Bunny (兔子,音标 ˈbʌni )

2024.03.15 🔥 Bunny-v1.0-2B-zh,专注中文,发布!它建立在 SigLIP 和 Qwen1.5-1.8B 之上。

2024.03.06 🔥 Bunny训练数据发布!在 HuggingFace 或 ModelScope 中查看有关 Bunny-v1.0-data 的更多详细信息!

2024.02.20 🔥 Bunny技术报告出炉了!

2024.02.07 🔥 Bunny发布!基于 SigLIP 和 Phi-2 构建的 Bunny-v1.0-3B 不仅与类似尺寸的型号相比,而且与更大的 MLLM (7B) 相比,性能优于最先进的 MLLM,甚至实现了与 LLaVA-13B 相当的性能!

简介

翻译原文
Bunny 是一个轻量级但功能强大的多模态模型系列。它提供多种即插即用的视觉编码器,如 EVA-CLIP、SigLIP 和语言主干网(LLM),包括 Phi-1.5、StableLM-2、Qwen1.5 和 Phi-2。为了弥补模型大小的减少,我们通过从更广泛的数据源中精选来构建信息量更大的训练数据。值得注意的是,我们基于 SigLIP 和 Phi-2 构建的 Bunny-v1.0-3B 型号不仅与类似尺寸的型号相比,而且与更大的 MLLM (7B) 相比,性能优于最先进的 MLLM,甚至实现了与 13B 型号相当的性能。> Bunny is a family of lightweight but powerful multimodal models. It offers multiple plug-and-play vision encoders, like EVA-CLIP, SigLIP and language backbones, including Phi-1.5, StableLM-2, Qwen1.5 and Phi-2. To compensate for the decrease in model size, we construct more informative training data by curated selection from a broader data source. Remarkably, our Bunny-v1.0-3B model built upon SigLIP and Phi-2 outperforms the state-of-the-art MLLMs, not only in comparison with models of similar size but also against larger MLLMs (7B), and even achieves performance on par with 13B models.

与主流模型性能对比

在 11 个基准测试中与最先进的 MLLM 的比较。我们的模型在大多数设置中都优于它们。例如LLaVA-v1.5-13B
在这里插入图片描述

算法架构(灵活选择不同的模型组件)

原图1:Bunny供了灵活的视觉编码器和LLM主干组合选择,这些组合通过跨模态的映射模型(projector)进行对齐
其中

在这里插入图片描述
Large Language Model Backbone:提供了三种最先进的轻量级LLM选项:
Phi-1.5 (1.3B)、
StableLM-2 (1.6B)
Phi-2 (2.7B)

视觉编码器(Vision Encoder)
轻量级视觉编码器提供了两个选项:
SigLIP [14] 和 EVACLIP [30],
它们都是具有 428M 参数的高效与语言对齐图像编码器(language-aligned image encoders)。

图像到语言特征的映射模块(Cross-modality Projector)

基于LLaVA模型,我们利用一个带有GELU激活函数两层MLP作为跨模态投影仪来对齐视觉编码器和LLM。

原文效果图

提问为英文翻译
centered 文本居中在这里插入图片描述

实测 (v1.0-3B-中文翻车)

无法用中文直接提问
在这里插入图片描述

如何训练?

Bunny 在 8 个 A100 GPU 上进行训练. (也可用更小的gpu训练)
作者分别构建了 Bunny-pretrain-LAION-2MBunny-695K 进行预训练指令调整

两阶段训练策略。
最初,我们将预训练的视觉编码器中的视觉嵌入与来自 LLM 的文本嵌入对齐
随后,我们应用视觉指令微调来充分利用 MLLM 在各种多模态任务中的能力。
我们在两个阶段采用相同的交叉熵损失进行下一个令牌预测。
在预训练阶段,只对一个 epoch 优化跨模态投影仪。
在微调阶段,我们利用 LoRA [34] 为一个 epoch 训练跨模态投影仪和 LLM 主干。
作者发现 LoRA 在经验上比跨模型架构的所有组合进行完全调整带来更好的性能,这可能是因为较小的模型更容易受到灾难性遗忘的影响,而 LoRA 调整缓解了这个问题

预训练对齐数据构建

我们从LAION-2B 构建了一个高质量的预训练数据,即我们将LAION-2B浓缩为2M核心集,用于数据高效学习

设计了一种基于CLIP嵌入的三步核心集选择方案。
首先,受 SemDeDup 论文的启发,我们通过 k-means 对所有 2B 图像嵌入进行聚类,然后在每个集群中,构建一个无向图,如果它们的余弦相似度高于预定阈值,则任何两个嵌入都连接起来。在每个连通子图中只保留一个样本,其到簇质心的欧几里得距离在中位数处排名。通过将阈值设置为 0.86,我们获得了 952M 的子集。
其次,我们通过其文本嵌入和图像嵌入之间的余弦相似度对剩余的样本进行排序,并保持样本排名 40% - 60%,从而导致 190M 的子集。这样,去除了低质量的图像-文本对。
第三,我们通过其图像嵌入与其聚类质心之间的余弦相似度对剩余的样本进行排序,并保持样本排名 15%-35%,导致子集 38M,捕获 LAION-2B 的本质和多样性。我们最终从38M核心集中随机抽样200万个样本,从而得到Bunny-pretrain-LAION-2M,以获得适当的培训成本。

微调数据Bunny695K的构建

我们收集了一组视觉指令调优数据集——DataOptim,在此基础上我们探索了微调数据集的更好组合。
具体来说,我们利用
SVIT-mix-665K from: SVIT: Scaling up Visual Instruction Tuning
并结合 WizardLM-evol-intstruct-70K 、 ShareGPT-40K ,从而得到 Bunny695K
我们发现,在多模态数据上调整 MLLM 可能会损害其继承认知能力

本地部署测试

待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp顶部状态栏设置(适配刘海屏)

方案一、占位 最顶部放一个高度为“var(--status-bar-height)”的div <template><view><view class"status_bar"><!-- 这里是状态栏 --></view><view> 状态栏下的文字 </view></view> </template> <…

前端调用接口地址跨越问题,nginx配置处理

在nginx配置里面添加add_header如下&#xff1a; add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Origin http://localhost:8080 always; add_header Access-Control-Allow-Methods GET, POST, PUT, D…

[Java、Android面试]_09_Synchronized、volatile、Lock并发

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…

Qt拖放文件实现(Drag,Drop, MimeData )

1 背景 本文讲述了基于Qt实现文件拖放操作。拖放操作至少需要两个窗口&#xff0c;一个作为拖放源窗口&#xff0c;另一个作为拖放目标窗口。 2 实现 这里从QTreeView派生一个类TreeView&#xff0c;处理鼠标开始拖放操作及拖放事件。这个类既是拖放源窗口也是拖放目标窗口。…

自上而下的角色扮演游戏资产包幻想梦境

Fantasy Dreamland 是一個完整的資源包,包含開始製作自上而下的像素藝術遊戲所需的一切! 幻想夢境瓷磚套裝: - 超過 13,000 塊瓷磚! - 超過 500 個動畫圖塊! - 鐵匠! - 城堡! - 洞穴! - 聖誕節! (裝飾) - 城市! - 沙漠! - 沙漠房屋! - 夢想/天空! - …

【解决】使用Jekyll框架进入网页终端返回找不到.min.js或者类似Rollup模块化构建js失败问题

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 文章目录 一、问题表现二、问题解决&#xff08;一&#xff09;检查输出目录&#xff08;二&#xff09;启动Rollup构建 三、…

PCD1000AE单通道高压线性恒流LED控制芯片

概述 PCD1000AE 是一款线性恒流 IC&#xff0c;输出电流可调&#xff0c;恒流精度高&#xff0c;应用方案简单&#xff0c;成本和阻容降压相当&#xff0c;具有过温保护功能&#xff0c;更安全&#xff0c;更可靠。 特点 输出电流可调 5mA-60mA&#xff0c; 恒流精度可以达…

【C++】vector容器初步模拟

送给大家一句话&#xff1a; 努力一点&#xff0c;漂亮—点&#xff0c;阳光一点。早晚有一天&#xff0c;你会惊艳了时光&#xff0c;既无人能替&#xff0c;又光芒万丈。 vector容器初步模拟 1 认识vector开始了解底层实现 2 开始实现成员变量构造函数 析构函数尾插迭代器插入…

【漏洞复现】福建科立迅通信指挥调度平台down_file.php sql注入漏洞

漏洞描述 福建科立迅通信调度平台 20240318 以及之前版本存在一个严重漏洞,影响了文件 api/client/down_file.php 的一个未知功能。攻击者可以通过操纵参数 uuid 发起 SQL 注入攻击。攻击者可以远程发起攻击。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守…

GraalVM详细安装及打包springboot、java、javafx使用教程(打包springboot2篇)

前言 在当前多元化开发环境下&#xff0c;Java作为一种广泛应用的编程语言&#xff0c;其应用部署效率与灵活性的重要性日益凸显。Spring Boot框架以其简洁的配置和强大的功能深受开发者喜爱&#xff0c;而JavaFX则为开发者提供了构建丰富桌面客户端应用的能力。然而&#xff…

基于Java中的SSM框架实现图书仓储管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现图书仓储管理系统演示 摘要 随着社会经济的迅速发展和科学技术的全面进步&#xff0c;计算机事业的飞速发展&#xff0c;以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期&#xff0c;随着经济文化水平的显著提高&#xff0c;人们对生活质量及…

3.idea的import和open的区别

1.推荐open的情况&#xff1a;如果项目里面有.idea,推荐Open打开。 2.推荐import的情况&#xff1a;如果项目里面没有.idea,推荐import打开。但是新版idea改了import的地方&#xff0c;在File—>New—>Select directory with existing sources。 3.导入项目的情况&#x…

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结 模糊图像增强技术之锐化类滤波场景应用小结—【蘇小沐】 &#xff08;一&#xff09;锐化类滤波器 模糊消除类滤波器&#xff08;Remove blur / Unsharpness&#xff09;。 通用去模糊滤波器&#xff1a;针对大…

(ROOT)KAFKA详解

生产篇 使用 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to Y…

#Linux(环境变量)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;查看环境变量 &#xff08;2&#xff09;修改环境变量 第一种方法&#xff1a;直接使用命令设置&#xff08;立即生效&#xff0c;只会作用…

了解交换机上的SFP和QSFP端口

在当今互联的世界中&#xff0c;可靠、高效的网络通信对于企业的蓬勃发展至关重要。为了实现顺畅的连接&#xff0c;了解能够实现该目标的技术非常重要。其中一项关键技术是交换机上的SFP和QSFP端口。本文将简要介绍这些概念&#xff0c;定义并解释交换机SFP端口和QSFP端口的优…

50道JAVA基础算法编程题【内含分析、程序答案】

【程序1】 题目&#xff1a;古典问题&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子总数为多少&#xff1f; 程序分析&#xff1a; 兔子的…

视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。

在视频业务深入的过程中越来越多的硬件设备接入视频交互的视频会议中远程交互&#xff0c;有的是视频采集&#xff0c;有的是医疗影像等资料&#xff0c;都需要在终端承显&#xff0c;这就需要我们的设备终端能多设备&#xff0c;多协议接入&#xff0c;设备接入如下。 1&#…

【Python操作基础】系列——赋值语句

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

Flutter Dart BigDecimal

目录 前言API构造函数四则及幂运算其他 代码BigDecimal.dartbigdecimal_test.dart 前言 Dart中只有BigInt没有BigDecimal&#xff0c;所以需要手动去实现BigDecimal。 如果我的代码帮到你&#xff0c;请给我点个赞。 API 构造函数 BigDecimal([dynamic number]) 将任意toSt…