CodeFuse-VLM 开源,支持多模态多任务预训练/微调

hgfkjgl.png


CodeFuse-MFT-VLM 项目地址:
https://github.com/codefuse-ai/CodeFuse-MFT-VLM

CodeFuse-VLM-14B 模型地址:
CodeFuse-VLM-14B
 

CodeFuse-VLM框架简介

随着huggingface开源社区的不断更新,会有更多的vision encoder 和 LLM 底座发布,这些vision encoder 和 LLM底座都有各自的强项,例如 code-llama 适合生成代码类任务,但是不适合生成中文类的任务,因此用户常常需要根据vision encoder和LLM的特长来搭建自己的多模态大语言模型。针对多模态大语言模型种类繁多的落地场景,我们搭建了CodeFuse-VLM 框架,支持多种视觉模型和语言大模型,使得MFT-VLM可以适应不同种类的任务。


CodeFuse-VLM 支持多种视觉达模型:CLIP,CLIP-336px,Chinese Clip,Chinese Clip-336px,Qwen Clip;多种语言达模型:Vicuna-7B,Vicunam-13B,LLAMA-2-7B,Qwen-7B,Qwen-14B。用户可以根据自己的需求,通过配置文件的方式搭配VL-MFTCoder中不同的Vision Encoder 和 LLM,使用同一套框架去适配的不同的模型,大大提高了开发效率

CodeFuse-VLM-arch.png


我们在2024年1月开源了多模态多任务微调框架——CodeFuse-VLM。在CodeFuse多任务微调的基础上,CodeFuse-VLM可以实现在多个模态,多个任务上同时并行地进行微调。通过结合多种损失函数,我们有效地解决了多任务学习中常见的任务间数据量不平衡、难易不一和收敛速度不一致等挑战。此外,CodeFuse-VLM框架具备高效训练特征,支持高效的PEFT微调,能有效提升微调训练速度并降低对资源的需求。 

https://cloud.video.taobao.com/play/u/23956347/p/1/d/ld/e/6/t/1/446458089308.mp4?auth_key=YXBwX2tleT04MDAwMDAwMTMmYXV0aF9pbmZvPXsidGltZXN0YW1wRW5jcnlwdGVkIjoiZDcxNGY0MjE3MDZmY2ZiYWY4ZWEyY2ExMGQyZGUxMDMifSZkdXJhdGlvbj0mdGltZXN0YW1wPTE3MDcxMjE2OTc=icon-default.png?t=N7T8https://cloud.video.taobao.com/play/u/23956347/p/1/d/ld/e/6/t/1/446458089308.mp4?auth_key=YXBwX2tleT04MDAwMDAwMTMmYXV0aF9pbmZvPXsidGltZXN0YW1wRW5jcnlwdGVkIjoiZDcxNGY0MjE3MDZmY2ZiYWY4ZWEyY2ExMGQyZGUxMDMifSZkdXJhdGlvbj0mdGltZXN0YW1wPTE3MDcxMjE2OTc=


CodeFuse-VLM-14B模型

我们基于Qwen-VL的视觉编码器和Qwen-14B 大语言模型,在CodeFuse-VLM框架下训练了CodeFuse-VLM-14B 模型,在多个通用和代码任务上的性能超过 LLAVA-1.5 和 Qwen-VL。
 

预训练数据

参考了Qwen-VL的Multi-Task Pretraining数据集,我们准备使用多种数据对齐Qwen-VL-14B的模态。在预训练当中我们使用多任务训练的方式,每一个数据集都是一个训练任务任务。

dataset

type

number of samples

synthdog-en

OCR

50w

synthdog-zh

OCR

50w

cc3m(downsampled)

Image Caption

55w

SBU

Image Caption

85w

Visual Genome VQA

VQA

50w

Visual Genome Region descriptions

Ref Grouding

50w

Visual Genome objects

Caption With Grouding

50w

OCR_VQA

OCR and VQA

50w

我们使用预训练数据集训练模态对齐的cross attention 模块,可以执行以下代码来启动模型预训练

sh scripts/pretrain_multinode.sh

指令微调数据

我们使用了 LLAVA-1.5 的指令微调数据,总共65w样本,LLAVA的指令微调数据集包含复杂图片的推理分析,对LLM理解视觉特征很有帮助。

截屏2023-12-03 下午5.21.11.png


指令微调数据构成如下,在视觉指令微调当中我们使用多任务训练的方式,每一个数据集都是一个训练任务任务。

dataset

type

number of samples

OCR_VQA

OCR and VQA

7w

GQA

Image Caption

8w

Visual Genome

Ref Grouding and Caption With Grouding

10w

COCO

Detailed Description and Complex Reasoning

37w

Text-VQA

Detailed Description and Complex Reasoning

3w

我们使用指令微调数据训练CodeFuse-VLM-14B中的Qwen-14B大语言模型,可以执行以下代码来启动模型的指令微调

sh scripts/finetune_multinode.sh

模型性能

我们训练的CodeFuse-VLM-14B 模型在多个benchmark上的表现超过Qwen-VL和LLAVA-1.5, 具体得分参考下面的图表。

CodeFuse-VLM-14B-radar-chart.png

Benchmark

LLAVA-1.5

Qwen-VL

CodeFuse-VLM-14B

MM_Bench

67.7

60.6

75.7

MM_Bench_CN

63.6

56.7

69.8

VqaV2

80.0

78.2

79.3

GQA

63.3

57.5

59.4

TextVqa

61.3

63.8

63.9

VizWiz

53.6

35.25

45.3

Sketch2Code

-

90.7

94.4

我们的CodeFuse-VLM-14B 在MMBenchmark的中英文榜单分别取得第13/21名的排名,高于Qwen-VL第29/36名的排名
MMBench
 

产品图片

我们通过CodeFuse-VLM 在蚂蚁内部训练了网页图片到前端代码的多模态大模型,并把大模型集成到内部的Visual Studio Code插件中。如下面两站图所示,左边的图片是网页原图,右边的图片是大模型生成的前端代码渲染出的图片,多模态大模型生成的前端代码渲染出的图片对网页原图有很高的还原性,很大地提高了前端工程师开发的效率。

公众号产品图片.png

公众号产品图片2.png

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

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

相关文章

I.MX6u嵌入式linux驱动开发

1:Ubuntu 系统入门 当 Ubuntu 系统入门以后,我们重点要学的就是如何在 Linux 下进行 C 语言开发,如何使 用 gcc 编译器、如何编写 Makefile 文件等等 首先安装虚拟机软件VM: Vmware Workstation 软件可以在 Wmeare …

如何使用Python + 百度翻译API 自动大批量免费翻译Excel文件中的外语内容

手里有一个Excel文件,包括了大量的亚马逊德语搜索词(关键词),每个单元格1个,需要翻译为中文。但是文件大小超过了10M,不能使用百度或Google免费的文档功能,如果手工一个个的翻译然后粘贴又太麻烦,于是想到用Python加免费翻译API完成。 一、openpyxl库 用Python编辑处…

洛谷_P1464 Function_python写法

目录 1.错误解法 2.学习记忆化搜索算法 2.1简介 2.2案例学习 3.解法 4.总结 1.错误解法 a 0 b 0 c 0 def w(a,b,c):if a<0 or b<0 or c<0:return 1elif a>20 or b>20 or c>20:return w(20,20,20)elif a<b and b<c:return w(a-1,b,c) w(a-1,…

1、将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践

将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践 希望将 ChatGPT 集成到您的数据科学工作流程中吗?这是一个利用 ChatGPT 进行数据科学的提示的实践。 ChatGPT、其继任者 GPT-4 及其开源替代品非常成功。开发人员和数据科学家都希望提高工作效率,并使用 ChatGPT 来简…

LRU缓存

有人从网络读数据&#xff0c;有人从磁盘读数据&#xff0c;机智的人懂得合理利用缓存加速数据的读取效率&#xff0c;提升程序的性能&#xff0c;搏得上司的赏识&#xff0c;赢得白富美的青睐&#xff0c;进一步走向人生巅峰~ LRU假说 LRU缓存&#xff08;Least Recently Used…

2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年&#xff0c;一些概念和英文缩写也在这一年里集中出现&#xff…

12.0 Zookeeper 数据同步流程

在 Zookeeper 中&#xff0c;主要依赖 ZAB 协议来实现分布式数据一致性。 ZAB 协议分为两部分&#xff1a; 消息广播崩溃恢复 消息广播 Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求&#xff0c;并采用 ZAB 协议的原子广播协议&#xff0c;将事务请求…

10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率

农业是人类社会的基石之一&#xff0c;而农业工作效率的提升一直是农民和农业专业人士关注的重要议题。随着技术的不断进步&#xff0c;车载工业平板成为了解决农业工作效率的创新解决方案。本文将探讨车载工业平板如何为农业带来巨大的改变&#xff0c;提高农民的工作效率和农…

JavaEE企业级应用软件开发—Spring框架入门学习笔记(一)

一、认识框架 实际开发中&#xff0c;随着业务的发展&#xff0c;软件系统变得越来越复杂&#xff0c;如果所有的软件都从底层功能开始开发&#xff0c;那将是一个漫长而繁琐的过程。此外&#xff0c;团队协作开发时&#xff0c;由于没有统一的调用规范&#xff0c;系统会出现大…

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏&#xff0c;它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获&#xff0c;你可以让…

MySQL-存储引擎

文章目录 1. MySQL的体系结构2. 存储引擎2.1 存储引擎概述2.2 存储引擎的类型及选择方案2.3 操作存储引擎2.4 InnoDB存储引擎2.4.1 逻辑存储结构2.4.2 架构2.4.2.1 内存结构2.4.2.2 磁盘结构2.4.2.3 后台线程 2.4.3 事务2.4.3.1 Undo Log&#xff08;原子性&#xff09;2.4.3.2…

C语言其他类型的数组

1.字符数组 概念&#xff1a;专门存放字符的数组&#xff0c;称为字符数组初始化与元素引用&#xff1a; char s1[5] {a, b, c, d, e}; // s1存放的是字符序列&#xff0c;非字符串 char s2[6] {a, b, c, d, e, \0}; // s2存放了一个字符串char s[6] {"abcde&q…

【证书管理】实验报告

证书管理实验 【实验环境】 ISES客户端 【实验步骤】 查看证书 查看证书详细信息 选择任意证书状态&#xff0c;在下方“证书列表”中出现符合要求的所有证书。在“证书列表”中点击要查看证书&#xff0c;在右侧“证书详细信息”栏出现被选证书信息。 上述操作如图1.2.…

Maven详细配置整理

Maven的作用 在Javaweb开发中&#xff0c;需要使用大量的jar包&#xff0c;需要手动去导入&#xff0c;Maven能够自动帮我们导入和配置这个jar包。 对于新手Maven就是用来方便导入jar包的&#xff01; Maven的核心思想&#xff1a;约定大于配置 有约束&#xff0c;不要去违…

Jmeter 01 -概述线程组

1、Jmeter:概述 1.1 是什么&#xff1f; Jmeter是Apache公司使用Java 开发的一款测试工具 1.2 为什么&#xff1f; 高效、功能强大 模拟一些高并发或多次循环等特殊场景 1.3 怎么用&#xff1f; 下载安装 1、下载jmeter&#xff0c;解压缩2、安装Java环境&#xff08;jmet…

力扣53. 最大子数组和(滑动窗口,动态规划)

Problem: 53. 最大子数组和 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 思路1:滑动窗口 1.为求出最大连续的子数组和,我们逻辑上假设有一个窗口在原数组上滑动, 欲求出最大连续,则需要保证窗口中的所有元素和最起码大于0; 2.即当当前窗口中的元素值的和小于0…

从零开始手写mmo游戏从框架到爆炸(六)— 消息处理工厂

就好像门牌号一样&#xff0c;我们需要把消息路由到对应的楼栋和楼层&#xff0c;总不能像菜鸟一样让大家都来自己找数据吧。 首先这里我们参考了rabbitmq中的topic与tag模型&#xff0c;topic对应类&#xff0c;tag对应方法。 新增一个模块&#xff0c;专门记录路由eternity-…

深入探索 Stable Diffusion:AI图像创新的新纪元

深入探索 Stable Diffusion&#xff1a;AI图像创新的新纪元 介绍 Stable Diffusion 的核心功能和应用场景Stable Diffusion 架构解析深入 Stable Diffusion 的关键组件变分自编码器&#xff08;VAE&#xff09;生成对抗网络&#xff08;GAN&#xff09;注意力机制优化算法数据集…

泛型、Trait 和生命周期(上)

目录 1、提取函数来减少重复 2、在函数定义中使用泛型 3、结构体定义中的泛型 4、枚举定义中的泛型 5、方法定义中的泛型 6、泛型代码的性能 每一门编程语言都有高效处理重复概念的工具。在 Rust 中其工具之一就是 泛型&#xff08;generics&#xff09;。泛型是具体类型…

GEE Colab——如何利用Matplotlib在colab中进行图形制作

在colab中绘制图表 笔记本的一个常见用途是使用图表进行数据可视化。Colaboratory 提供多种图表工具作为 Python 导入,让这一工作变得简单。 Matplotlib Matplotlib 是最常用的图表工具包,详情请查看其文档,并通过示例获得灵感。 线性图 线性图是一种常见的图表类型,用…