DeepSeek最新图像模型Janus-Pro论文阅读

目录

论文总结

摘要

1. 引言

2. 方法

2.1 架构

2.2 优化的训练策略

2.4 模型扩展

3. 实验

3.1 实施细节

3.2 评估设置

3.3 与最新技术的比较

3.4 定性结果

4. 结论


论文总结

Janus-Pro是DeepSeek最新开源的图像理解生成模型,Janus-Pro在多模态理解和文本到图像生成方面进行了显著改进的先进模型。它是之前工作 Janus 的升级版本,主要通过优化训练策略、扩展训练数据和扩大模型规模来提升性能。

Janus-Pro 的架构基于解耦的视觉编码器。具体来说,它使用 SigLIP 编码器 处理多模态理解任务中的图像特征,使用 VQ tokenizer 处理视觉生成任务中的图像特征。这两种编码器分别将图像转换为特征序列,然后将这些特征序列与文本特征序列合并,输入到统一的自回归变换器中进行处理。这种设计有效缓解了多模态理解和生成任务之间的冲突,使得模型在这两项任务上都能表现出色。

Janus-Pro 在以下三个方面进行了关键改进:

1.优化训练策略
Janus-Pro 对训练过程进行了重新设计,增加了第一阶段的训练步骤,专注于在 ImageNet 数据集上训练视觉编码器,以更好地建模像素依赖关系。在第二阶段,直接使用正常的文本到图像数据进行训练,避免了之前版本中对 ImageNet 数据的过度依赖,提高了训练效率。此外,在第三阶段的监督微调中,调整了不同类型数据的比例,进一步平衡了多模态理解和生成任务的训练。

2.扩充数据集
Janus-Pro 在多模态理解和视觉生成方面引入了大量高质量的数据。对于多模态理解,增加了约 9000 万个样本,包括图像字幕数据和表格、图表、文档理解数据。对于视觉生成,引入了约 7200 万个合成审美数据样本,使真实数据与合成数据的比例达到 1:1。这些数据的增加显著提升了模型的泛化能力和生成质量。

3.扩大模型
Janus-Pro 将模型规模从 1.5B 扩展到 7B,显著提高了模型的表达能力和收敛速度。实验表明,更大的模型在多模态理解和视觉生成任务上都表现出了更好的性能。

项目主页:https://github.com/deepseek-ai/Janus

接下来是论文原文的翻译

Janus-Pro:通过数据和模型扩展实现统一的多模态理解和生成

摘要

在本研究中,我们介绍了 Janus-Pro,这是之前工作 Janus 的一个高级版本。具体来说,Janus-Pro 采用了(1)优化的训练策略,(2)扩展的训练数据,以及(3)更大的模型规模。凭借这些改进,Janus-Pro 在多模态理解和文本到图像的指令跟随能力方面取得了显著进展,同时增强了文本到图像生成的稳定性。我们希望这项工作能够激发该领域的进一步探索。代码和模型已公开。

1. 引言
 

图1 | Janus-Pro 的多模态理解和视觉生成结果。对于多模态理解,我们平均了 POPE、MME-Perception、GQA 和 MMMU 的准确率。MME-Perception 的分数除以 20 以缩放到 [0, 100] 范围。对于视觉生成,我们在两个指令跟随基准测试 GenEval 和 DPG-Bench 上评估性能。总体而言,Janus-Pro 超越了之前的统一多模态模型以及一些特定任务的模型。最好在屏幕上查看。

图2 | Janus-Pro 与前代产品 Janus 在文本到图像生成之间的比较。Janus-Pro 在短提示下能够提供更稳定的输出,具有改进的视觉质量、更丰富的细节,并且能够生成简单文本。图像分辨率为 384×384。

最近在统一多模态理解和生成模型方面的进展已经取得了显著的成果。这些方法已被证明可以增强视觉生成任务中的指令跟随能力,同时减少模型冗余。大多数方法使用相同的视觉编码器来处理多模态理解和生成任务的输入。由于这两个任务所需的表示不同,这通常会导致多模态理解性能不佳。为了解决这一问题,Janus 提出了视觉编码解耦,缓解了多模态理解和生成任务之间的冲突,实现了在两项任务中的出色表现。

作为开创性模型,Janus 在 1B 参数规模上得到了验证。然而,由于训练数据有限,模型容量相对较小,它在短提示图像生成和不稳定文本到图像生成质量方面表现出一定的不足。在本文中,我们介绍了 Janus-Pro,这是 Janus 的一个增强版本,它在训练策略、数据和模型规模三个维度上进行了改进。Janus-Pro 系列包括两种模型规模:1B 和 7B,展示了视觉编码解码方法的可扩展性。

我们在多个基准测试上评估了 Janus-Pro,结果表明其在多模态理解能力方面表现出色,文本到图像指令跟随性能显著提高。具体来说,Janus-Pro-7B 在多模态理解基准测试 MMBench 上得分为 79.2,超过了其他统一多模态模型,如 Janus(69.4)、TokenFlow(68.9)和 MetaMorph(75.2)。此外,在文本到图像指令跟随排行榜 GenEval 上,Janus-Pro-7B 得分为 0.80,超过了 Janus(0.61)、DALL-E 3(0.67)和 Stable Diffusion 3 Medium(0.74)。

2. 方法

2.1 架构

Janus-Pro 的架构如图 3 所示,与 Janus 相同。整体架构的核心设计理念是解耦多模态理解和生成的视觉编码。我们应用独立的编码方法将原始输入转换为特征,然后通过统一的自回归变换器进行处理。对于多模态理解,我们使用 SigLIP 编码器从图像中提取高维语义特征。这些特征从二维网格展平为一维序列,然后通过理解适配器将图像特征映射到 LLM 的输入空间。对于视觉生成任务,我们使用 VQ tokenizer 将图像转换为离散 ID。将 ID 序列展平为一维后,我们使用生成适配器将每个 ID 对应的码本嵌入映射到 LLM 的输入空间。然后我们将这些特征序列连接起来形成多模态特征序列,随后将其输入到 LLM 中进行处理。除了 LLM 内置的预测头外,我们还为视觉生成任务中的图像预测使用了一个随机初始化的预测头。整个模型遵循自回归框架。

图3 | Janus-Pro的架构。我们解耦了用于多模态理解和视觉生成的视觉编码。“Und. Encoder”和“Gen. Encoder”分别是“Understanding Encoder”(理解编码器)和“Generation Encoder”(生成编码器)的缩写。

2.2 优化的训练策略

Janus 的前一个版本采用了一个三阶段训练过程。第一阶段专注于训练适配器和图像头部。第二阶段处理统一预训练,在此期间,除了理解编码器和生成编码器之外的所有组件都会更新其参数。第三阶段是监督微调,在第二阶段的基础上,进一步在训练过程中解锁理解编码器的参数。这种训练策略存在一些问题。在第二阶段,Janus 按照 PixArt 的方式将文本到图像能力的训练分为两部分。第一部分使用 ImageNet 数据,以图像类别名称作为文本到图像生成的提示,目标是建模像素依赖关系。第二部分使用正常的文本到图像数据进行训练。在实施过程中,第二阶段 66.67% 的文本到图像训练步骤分配给了第一部分。然而,通过进一步的实验,我们发现这种策略是次优的,并导致了显著的计算效率低下。

为了解决这一问题,我们进行了两项改进:

  • 第一阶段的更长训练:我们增加了第一阶段的训练步骤,以便在 ImageNet 数据集上进行充分的训练。我们的发现表明,即使在 LLM 参数固定的情况下,模型也能够有效地建模像素依赖关系,并根据类别名称生成合理的图像。

  • 第二阶段的专注训练:在第二阶段,我们放弃了 ImageNet 数据,直接使用正常的文本到图像数据来训练模型,使其能够根据密集描述生成图像。这种重新设计的方法使得第二阶段能够更高效地利用文本到图像数据,从而提高了训练效率和整体性能。

我们还调整了第三阶段监督微调过程中不同类型数据集的数据比例,将多模态数据、纯文本数据和文本到图像数据的比例从 7:3:10 调整为 5:1:4。通过略微减少文本到图像数据的比例,我们观察到这种调整使我们能够在保持强大的视觉生成能力的同时,实现更好的多模态理解性能。

2.3 数据扩展
我们在多模态理解和视觉生成方面扩展了用于 Janus 的训练数据。

  • 多模态理解:对于第二阶段预训练数据,我们参考了 DeepSeekVL2,并增加了大约 9000 万个样本。这些包括图像字幕数据集(例如 YFCC),以及用于表格、图表和文档理解的数据(例如 Docmatix)。对于第三阶段监督微调数据,我们也纳入了 DeepSeek-VL2 的额外数据集,如 MEME 理解、中文对话数据以及旨在增强对话体验的数据集。这些新增内容显著扩展了模型的能力,丰富了其处理多样化任务的能力,同时改善了整体对话体验。

  • 视觉生成:我们发现前一个版本的 Janus 所使用的现实世界数据质量欠佳且包含大量噪声,这常常导致文本到图像生成不稳定,产生审美质量较差的输出。在 Janus-Pro 中,我们纳入了大约 7200 万个合成审美数据样本,在统一预训练阶段使真实数据与合成数据的比例达到 1:1。这些合成数据样本的提示是公开可用的,例如 [43] 中的提示。实验表明,模型在合成数据上训练时收敛速度更快,生成的文本到图像输出不仅更加稳定,而且在审美质量上也有显著提升。

2.4 模型扩展

Janus 的前一个版本使用 1.5B LLM 验证了视觉编码解耦的有效性。在 Janus-Pro 中,我们将模型扩展到 7B,1.5B 和 7B LLM 的超参数详细信息见表 1。我们发现,当使用更大规模的 LLM 时,多模态理解和视觉生成的损失收敛速度显著提高,与较小模型相比优势明显。这一发现进一步验证了这种方法的强大可扩展性。

表1 | Janus-Pro 的架构配置。我们列出了架构的超参数。

 表2 | Janus-Pro 训练的详细超参数。数据比例是指多模态理解数据、纯文本数据和视觉生成数据的比例。

3. 实验

3.1 实施细节

在我们的实验中,我们使用 DeepSeek-LLM(1.5B 和 7B)作为基础语言模型,最大支持的序列长度为 4096。对于理解任务中使用的视觉编码器,我们选择了 SigLIP-Large-Patch16-384。生成编码器的码本大小为 16,384,图像下采样因子为 16。理解适配器和生成适配器都是两层 MLP。每个阶段的详细超参数见表 2。请注意,在第二阶段,我们采用了提前停止策略,在 270K 步骤时停止训练。所有图像都被调整为 384×384 像素。对于多模态理解数据,我们将图像的长边调整大小,并用背景颜色(RGB:127,127,127)填充短边以达到 384。对于视觉生成数据,将短边调整为 384,长边裁剪为 384。我们在训练中使用序列打包以提高训练效率。我们根据指定的比例在单个训练步骤中混合所有数据类型。我们的 Janus-Pro 使用 HAI-LLM 进行训练和评估,这是一个基于 PyTorch 构建的轻量级高效分布式训练框架。整个训练过程大约花费了 9/14 天,分别在 16/32 个节点的集群上进行,每个节点配备 8 个 Nvidia A100(40GB)GPU。

3.2 评估设置

多模态理解:为了评估多模态理解能力,我们在广泛认可的基于图像的视觉语言基准测试中评估我们的模型,这些测试包括 GQA、POPE、MME、SEED、MMB、MM-Vet 和 MMMU。

视觉生成:为了评估视觉生成能力,我们使用 GenEval 和 DPG-Bench。GenEval 是一个针对文本到图像生成的挑战性基准测试,旨在通过提供详细实例级分析来反映视觉生成模型的综合生成能力。DPG-Bench(密集提示图基准测试)是一个包含 1065 个长且密集提示的综合数据集,旨在评估文本到图像模型的复杂语义对齐能力。

3.3 与最新技术的比较

多模态理解性能:我们将提出的方法与最新统一模型和仅理解模型进行了比较,结果见表 3。Janus-Pro 实现了整体最佳结果。这可以归因于解耦多模态理解和生成的视觉编码,缓解了这两项任务之间的冲突。与规模大得多的模型相比,Janus-Pro 仍然具有很强的竞争力。例如,Janus-Pro-7B 在所有基准测试中(除了 GQA)均超过了 TokenFlow-XL(13B)。

表3 | 与多模态理解基准测试中的最新技术进行比较。“Und.” 和 “Gen.” 分别表示 “理解” 和 “生成”。使用外部预训练扩散模型的模型用†标记。

视觉生成性能:我们在 GenEval 和 DPG-Bench 上报告了视觉生成性能。如表 4 所示,我们的 Janus-Pro-7B 在 GenEval 上获得了 80% 的总体准确率,超过了所有其他统一或仅生成方法,例如 Transfusion(63%)、SD3-Medium(74%)和 DALL-E 3(67%)。这表明我们的方法具有更好的指令跟随能力。如表 5 所示,Janus-Pro 在 DPG-Bench 上得分为 84.19,超过了所有其他方法。这表明 Janus-Pro 在遵循密集指令进行文本到图像生成方面表现出色。

表4 | 在 GenEval 基准测试中对文本到图像生成能力的评估。“Und.” 和 “Gen.” 分别表示 “理解” 和 “生成”。使用外部预训练扩散模型的模型用†标记。

表5 | DPG-Bench 上的性能。本表中的方法均为仅生成模型,除了 Janus 和 Janus-Pro。

3.4 定性结果

我们在图 4 中展示了多模态理解的结果。Janus-Pro 在处理来自各种上下文的输入时表现出令人印象深刻的理解能力,展示了其强大的能力。我们还在图 4 的下半部分展示了一些文本到图像的生成结果。Janus-Pro-7B 生成的图像非常逼真,尽管分辨率仅为 384×384,但仍然包含大量细节。对于富有想象力和创造力的场景,Janus-Pro-7B 准确地从提示中捕捉语义信息,生成了合理且连贯的图像。

图4 | 多模态理解和视觉生成能力的定性结果。模型为 Janus-Pro-7B,视觉生成的图像输出分辨率为 384×384。最好在屏幕上查看。

4. 结论

本文从训练策略、数据和模型规模三个方面对 Janus 进行了改进。这些改进使得多模态理解和文本到图像指令跟随能力都取得了显著进展。然而,Janus-Pro 仍然存在一些限制。在多模态理解方面,输入分辨率限制在 384×384,这影响了其在细粒度任务(如 OCR)中的性能。对于文本到图像生成,低分辨率加上视觉 tokenizer 引入的重建损失,导致生成的图像虽然语义丰富,但在细节上仍然缺乏精细度。例如,占据有限图像空间的小面部区域可能会显得细节不足。提高图像分辨率可能会缓解这些问题。

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

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

相关文章

Python爬虫:1药城店铺爬虫(完整代码)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

【蓝桥杯】日志统计

日志统计(编程题)https://dashoj.com/d/lqbproblem/p/53https://dashoj.com/d/lqbproblem/p/53https://dashoj.com/d/lqbproblem/p/53 题目 日志统计(编程题) 讲解 这个讲解感觉比较通俗易懂。 蓝桥杯2018年省赛B组08(c/c)日…

一文讲解Spring中应用的设计模式

我们都知道Spring 框架中用了蛮多设计模式的: 工厂模式呢,就是用来创建对象的,把对象的创建和使用分开,这样代码更灵活。代理模式呢,是用一个代理对象来控制对真实对象的访问,可以在访问前后做一些处理。单…

AI 算力瓶颈,硬件、算法、共享能否破局?

随着AI技术的蓬勃发展,它已经实现了从实验室走向千行百业,然而在它想要继续深入地探索各行各业,解锁更多应用场景时,算力却成为了它面前的一道关卡。 这道关卡由无数需要处理的数据和计算任务堆积而成,想要实现AI技术…

华为小米vivo向上,苹果荣耀OPPO向下

日前,Counterpoint发布的手机销量月度报告显示,中国智能手机销量在2024年第四季度同比下降3.2%,成为2024年唯一出现同比下滑的季度。而对于各大智能手机品牌来说,他们的市场份额和格局也在悄然发生变化。 华为逆势向上 在2024年第…

github下载失败网页打开失败 若你已经知道github地址如何cmd下载

直接打开命令行: winr cmd 输入:git clone 地址 eg:git clone https://github.com/akospasztor/stm32f103-dfu-bootloader

K8S学习笔记-------1.安装部署K8S集群环境

1.修改为root权限 #sudo su 2.修改主机名 #hostnamectl set-hostname k8s-master01 3.查看网络地址 sudo nano /etc/netplan/01-netcfg.yaml4.使网络配置修改生效 sudo netplan apply5.修改UUID(某些虚拟机系统,需要设置才能生成UUID)#…

二维数组 C++ 蓝桥杯

1.稀疏矩阵 #include<iostream> using namespace std;const int N 1e4 10; int a[N][N];int main() {int n, m; cin >> n >> m;for (int i 1; i < n; i) {for (int j 1; j < m; j) {cin >> a[i][j];}}for (int j m; j > 1; j--) {for (i…

macos系统jmap执行异常

jdk8环境下执行jmap异常 网上说mac环境jdk8不支持Jmap&#xff0c;需要替换成更高的jdk版本&#xff0c;更改zshrc文件的jdk版本 环境变量生效 执行jmap不再报错

Linux 传输层协议 UDP 和 TCP

UDP 协议 UDP 协议端格式 16 位 UDP 长度, 表示整个数据报(UDP 首部UDP 数据)的最大长度如果校验和出错, 就会直接丢弃 UDP 的特点 UDP 传输的过程类似于寄信 . 无连接: 知道对端的 IP 和端口号就直接进行传输, 不需要建立连接不可靠: 没有确认机制, 没有重传机制; 如果因…

HTB:UnderPass[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用nmap对靶机UDP开放端口进行脚本、服务扫描 …

ARM内核:嵌入式时代的核心引擎

引言 在当今智能设备无处不在的时代&#xff0c;ARM&#xff08;Advanced RISC Machines&#xff09;处理器凭借其高性能、低功耗的特性&#xff0c;成为智能手机、物联网设备、汽车电子等领域的核心引擎。作为精简指令集&#xff08;RISC&#xff09;的典范&#xff0c;ARM核…

基于RK3588/RK3576+MCU STM32+AI的储能电站电池簇管理系统设计与实现

伴随近年来新型储能技术的高质量规模化发展&#xff0c;储能电站作为新能源领域的重要载体&#xff0c; 旨在配合逐步迈进智能电网时代&#xff0c;满足电力系统能源结构与分布的创新升级&#xff0c;给予相应规模 电池管理系统的设计与实现以新的挑战。同时&#xff0c;电子系…

【HarmonyOS之旅】基于ArkTS开发(二) -> UI开发三

目录 1 -> 绘制图形 1.1 -> 绘制基本几何图形 1.2 -> 绘制自定义几何图形 2 -> 添加动画效果 2.1 -> animateTo实现闪屏动画 2.2 -> 页面转场动画 3 -> 常见组件说明 1 -> 绘制图形 绘制能力主要是通过框架提供的绘制组件来支撑&#xff0c;支…

【算法】经典博弈论问题——威佐夫博弈 python

目录 威佐夫博弈(Wythoff Game)【模板】 威佐夫博弈(Wythoff Game) 有两堆石子&#xff0c;数量任意&#xff0c;可以不同&#xff0c;游戏开始由两个人轮流取石子 游戏规定&#xff0c;每次有两种不同的取法 1)在任意的一堆中取走任意多的石子 2)可以在两堆中同时取走相同数量…

通过Redisson构建延时队列并实现注解式消费

目录 一、序言二、延迟队列实现1、Redisson延时消息监听注解和消息体2、Redisson延时消息发布器3、Redisson延时消息监听处理器 三、测试用例四、结语 一、序言 两个月前接了一个4万的私活&#xff0c;做一个线上商城小程序&#xff0c;在交易过程中不可避免的一个问题就是用户…

第一个Qt开发实例(一个Push Button按钮和两个Label)【包括如何在QtCreator中创建新工程、代码详解、编译、环境变量配置、测试程序运行等】

目录 Qt开发环境QtCreator的安装、配置在QtCreator中创建新工程在Forms→mainwindow.ui中拖曳出我们要的图形按钮查看拖曳出按钮后的代码为pushButton这个图形添加回调函数编译工程关闭开发板上QT的GUI(选做)禁止LCD黑屏(选做)设置Qt运行的环境变量运行Qt程序如何让程序在系统启…

Spring Security(maven项目) 3.0.3.0版本

前言&#xff1a; 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往…

携程Java开发面试题及参考答案 (200道-上)

说说四层模型、七层模型。 七层模型(OSI 参考模型) 七层模型,即 OSI(Open System Interconnection)参考模型,是一种概念模型,用于描述网络通信的架构。它将计算机网络从下到上分为七层,各层的功能和作用如下: 物理层:物理层是计算机网络的最底层,主要负责传输比特流…

【Rust自学】16.4. 通过Send和Sync trait来扩展并发

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 16.4.1. Send和Sync trait Rust语言本身的并发特性较少&#xff0c;目前所提及的并发特性都来自于标准库&#xff0c;而不是语言本身。其…