当前位置: 首页 > news >正文

理解生成协同促进?华为诺亚提出ILLUME,15M数据实现多模态理解生成一体化

多模态理解与生成一体化模型,致力于将视觉理解与生成能力融入同一框架,不仅推动了任务协同与泛化能力的突破,更重要的是,它代表着对类人智能(AGI)的一种深层探索。通过在单一模型中统一理解与生成,模型能够从语义层面真正 “洞察” 视觉、文本与世界本质之间的深层联系,从而在复杂场景中实现更加智能、灵活的交互与任务执行。

近期,华为诺亚方舟实验室提出了统一多模态大模型 ——ILLUME。这一模型以 LLM 为核心,采用 “连续图像输入 + 离散图像输出” 的架构,巧妙融合了多模态理解与生成的双重能力,并深度挖掘了统一框架下理解与生成能力协同增强的潜力,展示了对多模态任务的全新诠释。

图片

  • 论文标题:ILLUME: Illuminating Your LLMs to See, Draw, and Self-Enhance

  • 论文地址:https://arxiv.org/pdf/2412.06673

总体来说,本文贡献如下:


 

1、ILLUME 在保持整体架构可扩展与可泛化的前提下,通过合理的视觉词表、训练策略与数据配比策略,成功以仅约 15M 的图文对数据用于图文对齐,实现了在视觉理解(包括自然图像和文档图表)、生成、编辑等多元任务上的出色表现,总体效果优于现有统一模型例如 Chameleon, Show-O 和 Janus,与专用单任务模型相媲美。

图片

2、ILLUME 提出一种自提升式多模态对齐策略,通过让模型对自身生成的负样本进行内省式评估,统一模型在理解和生成两方面的能力可实现协同进化。


 

ILLUME:理解生成一体的多模态大模型



挑战一:如何高效训练一个统一多模态模型?


 

现有的统一多模态模型构建方案多集中于在 LLM 基础上拓展视觉词表,以支持视觉生成任务。这些模型通常需要大量的图文对数据来实现图文对齐训练。这种对海量数据的依赖,在一定程度上放缓了这一领域进一步探索与实践的进程。

图片

与此不同的是,我们在 ILLUME 中仅使用约 15M 的图文对数据完成预训练,并在视觉理解(涵盖自然图像与文档图表)、生成与编辑等多类视觉文本任务上达到与专有模型相媲美的水平。这一成果并非仅体现于数据规模的减少,更重要的是在架构、训练策略、数据配比以及视觉词表表征方式上的关键设计,使模型能够更高效地进行图文对齐学习。这种方法为在更广泛和更深层的多模态语义理解与生成融合中奠定了基础。


 

关键设计 1:视觉词表的表征选择


 

传统基于 VQGAN 的视觉词表往往通过重建原始像素作为目标,但这种基于底层纹理的表征不利于与文本模态进行高层语义对齐。与此相反,我们采用语义特征重建的方式构造视觉词表,直接在高层语义空间中完成图文对齐的特征学习。实验表明,这一设计可显著加速 MLLM 的预训练过程。

图片

在解码阶段,我们再利用 Diffusion 模型将语义特征还原为高保真像素空间,从而实现高达 32 倍的压缩率。通过这一流程,模型在输入端沿用连续视觉编码器保障精细视觉理解能力,并在输出端通过语义视觉词表完成离散化处理,为视觉生成能力的无缝融合奠定基础。

图片

关键设计 2:三阶段训练策略和数据配比


 

我们采用 “三阶段” 训练策略,以分层递进的方式逐步强化模型的多模态理解与生成能力:


 

阶段一:引入图像重建任务,为视觉词表扩展后的新参数进行快速初始化,并对齐连续输入与离散输出的模式;


 

阶段二:进行图文对齐预训练,进一步强化模型在语义层面将图像与文本联结的能力;


 

阶段三:对高质量的理解、生成、混合数据进行微调,使模型最终胜任多类型的视觉文本任务(包括理解、生成与编辑)。

图片

挑战二:统一多模态模型的判别能力和生成能力能否相互促进?


 

当我们构建一个统一模型后,我们最关心的是:联合训练视觉理解和生成任务应该如何促进呢?


 

自提升多模态对齐方案


 

针对这一点,我们提出了以自我评估过程为桥梁的自提升多模态对齐策略。通过让模型对自身生成的负样本进行内省式评估,模型在理解和生成两方面的能力可实现协同进化:


 

  • 生成促进理解:模型以自我评估的方式分析自己产生的负样本,这种内省过程使模型能够查明并解决其自身弱点,从而更准确地理解图像。

  • 理解促进生成:模型可以利用其判别能力来评估其自生成的图像是否与文本一致,并基于此分析进行修正,从而确保模型在推理时更加谨慎和准确,避免在生成图像时出现错误。


 

我们的自提升多模态对齐方法分为三个步骤:


 

  • Step 1: 语料自生成。采样训练子集,推理模型生成图像。

  • Step 2: 生成评估数据。从物体、数量、颜色和空间关系多个维度评估图像和文本的一致性,评估数据包括评估得分和相应的分析。

  • Step 3: 多模态对齐。将评估数据重新格式化后加入阶段三训练,使模型在理解与生成层面同时得到强化。

图片

实验结果证明,自提升多模态对齐方法能在理解和生成任务上同时为模型赋能,促使统一多模态模型向更高层次的智能形态稳步迈进。

图片

实验结果


 

多模态理解任务


 

在 12 个常用的多模态理解开源综合评测集与文档场景评测集上,ILLUME 均展现出卓越性能,与现有统一多模态模型相比达到 SOTA 水准,尤其在文档理解任务上表现尤为突出。同时,相较多模态理解模型(如 LLaVA-NeXT),ILLUME 的理解能力总体保持相当甚至更优的水平。

图片

图片

文图生成任务


 

ILLUME 在 3 个文生图评测集上取得与现有生成模型和统一多模态模型相当的表现。

图片

图片

编辑任务


 

ILLUME 能处理物体删除,风格迁移,图像补充等各种编辑任务。

图片

图片

 更多内容可以访问我的博客https://imok.it.eu.org  

相关文章:

理解生成协同促进?华为诺亚提出ILLUME,15M数据实现多模态理解生成一体化

多模态理解与生成一体化模型,致力于将视觉理解与生成能力融入同一框架,不仅推动了任务协同与泛化能力的突破,更重要的是,它代表着对类人智能(AGI)的一种深层探索。通过在单一模型中统一理解与生成&#xff…...

[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models

文章目录 摘要Abstract:思考与行为协同化Reason(Chain of thought)ReAct ReAct如何协同推理 响应Action(动作空间)协同推理 结果总结 摘要 ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning an…...

摄像头监视脚本

摄像头监视脚本,若检测到摄像头画面有变化,保存这一段视频 一、使用方法 1.运行脚本 默认参数Threshold3, Period3, path./recordings python cam.py --threshold30 --period3 --path./recordings 2.参数说明 threshold:摄像头捕获到的画面变化量阈值…...

FreeRTOS的内存管理(选择heap4.c文件的理由)

目录 1. 了解FreeRTOS内存管理 2. 了解内存碎片 3.了解各个heap.c的内存分配方法 1.heap1.c 2.heap2.c 3.heap3.c 4.heap4.c 5.heap5.c 总结: 内存管理是一个系统基本组成部分,FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量…...

SQL-leetcode-183. 从不订购的客户

183. 从不订购的客户 Customers 表: -------------------- | Column Name | Type | -------------------- | id | int | | name | varchar | -------------------- 在 SQL 中,id 是该表的主键。 该表的每一行都表示客户的 ID 和名称。 Orders 表&#…...

苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序

前言 苹果系统下使用opencv感觉还是有些不太方便,总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。 一、程序的建立 选择程序的类型: 选择界面模式和编程语言: 其余…...

《代码随想录》Day21打卡!

写在前面:祝大家新年快乐!!!2025年快乐,2024年拜拜~~~ 《代码随想录》二叉树:修剪二叉搜索树 本题的完整题目如下: 本题的完整思路如下: 1.本题使用递归进行求解,所以分…...

Dell服务器升级ubuntu 22.04失败解决

ubuntu系统原版本20.04,服务器dell T40. 执行apt update后,再执行apt upgrade。 apt update执行成功,但apt upgrade执行中断,提示如下: Checking package manager Reading package lists... Done Building dependen…...

构建全志 T113 Tina SDK

1、环境配置: 准备一个 Ubuntu 系统,可以是 WSL,虚拟机等,建议版本是 20.04。 1.1、安装必要的软件 进入系统后,输入下方命令安装需要的工具 : sudo apt update -y sudo apt full-upgrade -y sudo apt i…...

(推荐)【通用业务分发架构】1.业务分发 2.rpc调用 3.Event事件系统

一.Reflections和SpringUtil完成扫描包的(反射缓存) 二.id与class的映射泛型上下文(玩家是否登录,rpc调用SeqId,class类名)反射调用 1.netty层的 AccountMsgParam // 登录前 OnlineMsgParam // 登录后 SceneMsgParam // 发到场景层的 2.跨进程rpc调用的…...

最近的一些事情

正义不会缺席 这家公司违法辞退不给工资乱开离职证明。严重影响个人发展。 今天终于收到法院的判决书。 警醒自身发展与社会之间密切交流,敲响警钟。 虽然最终得到的法院的支持,但过程举步维艰。 这其中的过程,也让我对律师、法院和中国…...

CP AUTOSAR标准之FlexRayDriver(AUTOSAR_SWS_FlexRayDriver)(更新中……)

1 简介和功能概述 FlexRay驱动程序(Fr)抽象了特定FlexRay通信控制器(CC)的硬件相关实现细节。本规范主要依赖于符合FlexRay规范[13]的FlexRay CC。此外,本规范还支持符合FlexRay规范[14]的旧版FlexRay控制器。本SWS中因支持的FlexRay规范不同而导致的不同行为在适用的情况下以…...

Cesium 实战 27 - 三维视频融合(视频投影)

Cesium 实战 27 - 三维视频融合(视频投影) 核心代码完整代码在线示例在 Cesium 中有几种展示视频的方式,比如墙体使用视频材质,还有地面多边形使用视频材质,都可以实现视频功能。 但是随着摄像头和无人机的流行,需要视频和场景深度融合,简单的实现方式则不能满足需求。…...

GraphRAG实践:docker部署neo4j

概述 随着图数据库(Graph Database)的流行,越来越多的应用场景开始采用图数据库来处理复杂的关系数据。Neo4j作为领先的图数据库之一,提供了强大的图形查询语言Cypher、高效的存储结构和丰富的生态系统,使得它成为开发…...

常用的数据库类型都有哪些

在Java开发和信息系统架构中,数据库扮演着存储和管理数据的关键角色。数据库种类繁多,各有特色,适用于不同的应用场景。 1. 关系型数据库(RDBMS): • 关系型数据库是最为人熟知的数据库类型,数据…...

swiftui开发页面加载发送请求初始化@State变量

在SwiftUI中,你不能直接在init中更新State变量,因为State是由SwiftUI框架管理的,初始化时不允许直接修改。所以需要在onAppear发送请求然后修改State状态。 在SwiftUI中,如果希望在页面加载时立即发送网络请求,可以使…...

Ribbon和Eureka的集成

Ribbon和Eureka的集成是Spring Cloud Netflix生态系统的一部分,通常用于微服务架构中,以实现客户端负载均衡和服务发现。以下是更详细的集成步骤: 1. 引入依赖 在你的Spring Boot项目的pom.xml文件中添加Eureka客户端和Ribbon的依赖&#x…...

关于UE加载osgb数据的研究(一)

最近关于倾斜数据在UE中加载显示的问题,直接转换格式本地加载的方式避免了数据延迟加载、缓存加载,动态刷新等问题,但是也暴露了突出的问题:常规的模型格式会丢失掉倾斜数据的lod,致使效果缺失。 故而需要深入研究一下UE加载osgb数据的方式方法。 首先,我们需得学习一下…...

探索数据之美,Plotly引领可视化新风尚

在数据如潮的今天,如何精准捕捉信息的脉搏,让数据说话?Plotly,这款强大的数据可视化工具,正以其卓越的性能和丰富的功能,成为数据分析师、科学家及工程师们的得力助手。 Plotly不仅仅是一个绘图库&#xf…...

List排序的方法

List 排序方法: 1. list 的 sort() package com.example.a; import java.util.ArrayList; import java.util.Comparator; import java.util.List; class User{private Integer score;private Integer age;public User(Integer score, Integer age){super();this.…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...