(5-3)DeepSeek多模态大模型架构:Janus-Pro模型

5.3  Janus-Pro模型

Janus-Pro 的架构采用了解耦视觉编码的设计理念,将多模态理解与视觉生成任务分离开来,以充分发挥各自优势。Janus-Pro的核心创新在于将视觉编码过程分为两个独立的路径,从而解决传统统一编码中“理解”和“生成”任务之间的冲突。

5.3.1  解耦视觉编码

Janus-Pro 模型在架构设计上继承并优化了 Janus 的核心理念——视觉编码的解耦,这种设计通过分离多模态理解任务和视觉生成任务的视觉编码路径,进一步提升了模型在多模态任务中的表现,同时增强了其在大规模数据和复杂任务场景下的适应性。在接下来的内容中,将详细解析Janus-Pro模型的解耦视觉编码知识。

1. 理解编码器(Understanding Encoder)

Janus-Pro 的理解编码器基于 SigLIP 视觉编码器,其核心任务是从图像中提取高维语义特征,以支持多模态理解任务,例如图像分类、视觉问答(VQA)和图文匹配等。具体实现如下:

(1)SigLIP 视觉编码器:SigLIP 是一种基于 Transformer 的先进视觉编码器,专为多模态任务设计,能够捕捉图像中的全局语义信息和细节特征。与 Janus 相比,Janus-Pro 在 SigLIP 的使用上进行了优化,进一步提升了特征提取的效率和语义丰富度。SigLIP 编码器输出的特征表示不仅包含图像的整体语义,还能反映图像中的局部结构和关系。

(2)特征处理:SigLIP 编码器输出的特征是一个二维网格(2D grid),其中每个位置的特征向量代表图像的一个局部区域。为了与自回归 Transformer 的输入格式对齐,Janus-Pro 将这些二维特征网格展平为一维序列。这种展平操作保留了特征的空间顺序信息,使得模型能够更好地捕捉图像中的局部和全局语义关系。

(3)理解适配器(Understanding Adaptor):为了将提取的图像特征映射到大语言模型(LLM)的输入空间,Janus-Pro 引入了一个专门设计的理解适配器。与 Janus 相比,Janus-Pro 的理解适配器经过优化,能够更高效地将高维图像特征转换为与 LLM 兼容的特征表示。理解适配器由两层多层感知机(MLP)组成,其作用是将图像特征与文本特征在同一空间中对齐,从而实现多模态数据的统一处理。

2. 生成编码器(Generation Encoder)

生成编码器的目标是将图像转换为离散的 ID 序列,以支持文本到图像的生成任务。具体实现如下:

(1)VQ Tokenizer:Janus-Pro 使用 VQ Tokenizer 作为生成编码器的核心组件。与 Janus 相比,Janus-Pro 对 VQ Tokenizer 进行了优化,进一步提升了图像离散化的效果。VQ Tokenizer 通过矢量量化技术将图像划分为多个小块(patches),并将每个小块映射到一个离散的编码空间中,从而生成一个离散的 ID 序列。这种离散化处理使得图像能够以一种类似于文本的方式被处理,便于与语言模型的输入格式对齐。

(2)特征嵌入与映射:VQ Tokenizer 输出的每个离散 ID 对应一个码本嵌入(codebook embeddings),这些嵌入是 VQ Tokenizer 在训练过程中学习到的特征表示。为了将这些视觉 token 嵌入到 LLM 的输入空间中,Janus-Pro 使用了一个生成适配器。与 Janus 相比,Janus-Pro 的生成适配器经过优化,能够更高效地将码本嵌入映射到 LLM 的输入空间中。生成适配器同样由两层 MLP 组成,其作用是将视觉 token 与文本 token 在同一空间中对齐,从而实现高效的视觉生成任务。

(3)特征序列拼接:经过理解适配器和生成适配器处理后的图像特征序列,与文本特征序列按顺序拼接在一起,形成一个统一的多模态输入序列。这个序列随后被输入到自回归 Transformer 中进行进一步处理。与 Janus 相比,Janus-Pro 在特征拼接过程中进一步优化了不同模态特征的对齐方式,使得模型能够更好地理解多模态数据的上下文关系。

5.3.2  训练策略

在Janus-Pro的第二阶段(统一预训练阶段)的设计中,最初参考了PixArt的方法,将文本到图像(Text-to-Image)生成能力的训练分为两个部分。这种分阶段的训练策略旨在通过不同的数据集和训练目标,逐步提升模型在视觉生成任务中的性能。然而,在实际实施过程中,这种策略暴露出了效率和效果上的问题,促使研究者对其进行了重新评估和优化。

1. 初始策略:参考PixArt方法的两部分训练

(1)第一部分:基于ImageNet数据的训练

  1. 目标:在第一部分中,Janus使用ImageNet数据集进行训练。ImageNet是一个大规模的图像分类数据集,包含丰富的图像类别和高质量的标注信息。在训练时,模型以类别名称作为文本提示,进行文本到图像的生成任务。
  2. 目的:通过这种方式,模型能够学习到图像中像素之间的依赖关系,从而更好地理解和生成图像内容。这种训练方式类似于“基于类别的图像生成”,帮助模型建立图像的全局语义结构。
  3. 比例分配:在第二阶段的文本到图像训练步骤中,有66.67%的训练步骤被分配给这一部分。这表明,模型在这一阶段主要专注于通过类别名称生成图像,以学习像素之间的依赖关系。

(2)第二部分:基于普通文本到图像数据的训练

  1. 目标:在第二部分中,模型使用普通的文本到图像数据进行训练。这些数据通常包含更复杂的文本描述和对应的图像,旨在提升模型在具体场景下的生成能力。
  2. 目的:通过这部分训练,模型能够学习如何根据详细的文本描述生成更具体的图像内容,从而提升其在实际应用中的表现。
  3. 比例分配:剩余的33.33%的训练步骤被分配给这一部分,用于处理更复杂的文本到图像生成任务。

2. 问题与挑战

尽管这种分两部分的训练策略在理论上具有一定的合理性,但在实际实施过程中,研究者发现这种策略存在显著的问题:

(1)计算效率低下

  1. 在实验过程中,研究者发现将66.67%的训练步骤分配给基于ImageNet数据的训练部分并不理想。这种分配方式导致模型在学习像素依赖关系时花费了过多的计算资源,而这些资源并没有带来与之匹配的性能提升。
  2. 这种策略使得模型在训练过程中过于依赖类别名称作为提示,而忽视了更复杂的文本描述能力的训练。

(2)性能瓶颈

  1. 通过进一步实验,研究者发现,这种策略虽然能够帮助模型学习到图像的全局语义结构,但在处理具体场景下的文本到图像生成任务时,模型的表现并不理想。
  2. 这种策略导致模型在生成复杂图像内容时,无法充分利用详细的文本描述信息,从而限制了其在实际应用中的表现。

3. 优化方向

鉴于上述问题,研究者对Janus模型的训练策略进行了重新评估和优化。优化后的策略主要集中在以下几个方面:

  1. 调整训练步骤的比例分配:重新分配第二阶段训练步骤的比例,减少基于ImageNet数据的训练步骤,增加基于普通文本到图像数据的训练步骤。这种调整使得模型能够更均衡地学习像素依赖关系和复杂的文本描述能力。
  2. 引入更高效的数据采样方法:优化数据采样策略,使得模型在训练过程中能够更高效地利用不同数据集的特点。例如,通过动态调整数据采样比例,模型可以在不同阶段更灵活地学习图像的全局语义结构和细节信息。
  3. 增强模型的多任务学习能力:在训练过程中,引入更多的多任务学习机制,使得模型能够同时处理多种类型的多模态任务。这种设计不仅提高了模型的泛化能力,还提升了其在复杂场景下的表现。

总之,PixArt这种策略虽然在理论上具有一定的合理性,但在实际实施过程中暴露出了计算效率低下和性能瓶颈的问题。通过进一步实验和优化,DeepSeek团队对训练策略进行了调整,以提升模型的效率和表现。这种优化不仅解决了初始策略中的问题,还为多模态模型的训练提供了新的思路和方法。

5.3.3  优化训练策略

在 DeepSeek 的技术报告中,针对原始 Janus 模型的三阶段训练流程中存在的训练效率和数据利用率问题,Janus-Pro 对训练策略进行了显著改进。这些改进不仅提升了模型的训练效率,还增强了其在多模态任务中的性能表现。以下是 Janus-Pro 在各阶段的具体优化措施:

1. 阶段 I:适配器与图像预测头训练

在原始 Janus 的训练流程中,阶段 I 主要用于训练适配器和图像预测头,但训练步数相对较少,导致模型在学习图像像素依赖关系时不够充分。为了优化这一点,Janus-Pro 对阶段 I 的训练策略进行了以下改进:

(1)延长 ImageNet 数据上的训练步数

Janus-Pro 显著增加了在 ImageNet 数据集上的训练步数。ImageNet 是一个大规模的图像分类数据集,包含丰富的图像类别和高质量的标注信息。通过延长在该数据集上的训练时间,模型能够在冻结大语言模型(LLM)参数的情况下,更充分地学习图像的像素依赖关系。这种改进使得模型即使在不更新 LLM 参数的情况下,也能生成较为合理和高质量的图像内容。

(2)专注于像素依赖关系的学习

在阶段 I,Janus-Pro 的目标是让模型专注于学习图像内部的像素依赖关系,而不是依赖于复杂的文本描述。通过这种方式,模型能够在后续阶段更好地处理图像生成任务,同时为多模态任务打下坚实的基础。

2. 阶段 II:统一预训练

原始 Janus 在阶段 II 的训练中,参考了 PixArt 的方法,将文本到图像的训练分为两部分:一部分使用 ImageNet 数据,以类别名称作为提示进行图像生成;另一部分使用常规的文本到图像数据进行训练。然而,这种策略导致了显著的计算效率低下,并且在处理复杂描述时表现不稳定。针对这一点,Janus-Pro 对阶段 II 的训练策略进行了以下优化:

(1)取消基于 ImageNet 分类提示的训练部分

Janus-Pro 取消了依赖 ImageNet 数据进行分类提示的训练部分。这种设计减少了不必要的计算开销,避免了模型在学习像素依赖关系时的冗余训练。

(2)直接使用常规文本-图像数据进行训练

Janus-Pro 直接使用常规的文本到图像数据进行训练,重点学习如何根据密集的文本描述生成图像。这种改进使得模型能够更高效地利用训练数据,同时在处理复杂描述时表现得更为稳定。

(3)提升训练效率与稳定性

通过这种优化,Janus-Pro 不仅提高了训练效率,还增强了模型在生成任务中的稳定性。模型能够更好地理解文本描述与图像内容之间的语义对齐,从而生成更高质量的图像。

3. 阶段 III:监督微调

在原始 Janus 的阶段 III 中,训练数据的比例为多模态理解数据、纯文本数据和文本到图像数据的 7:3:10。这种比例分配虽然能够平衡不同任务的需求,但在实际应用中,模型的多模态理解性能和图像生成能力仍有提升空间。针对这一点,Janus-Pro 对阶段 III 的训练策略进行了以下调整:

(1)调整数据比例

Janus-Pro 将训练数据的比例调整为 5:1:4,即多模态理解数据、纯文本数据和文本到图像数据的比例分别为 5、1 和 4。这一调整使得模型在保持较强图像生成能力的同时,进一步提升了多模态理解性能。

(2)优化任务平衡

通过调整数据比例,Janus-Pro 更好地平衡了多模态理解任务和图像生成任务的需求。减少文本到图像数据的比例,使得模型能够更专注于多模态理解任务,从而在视觉问答、图像分类等任务中表现得更为出色。

(3)增强模型的综合性能

这种调整不仅提升了模型在多模态理解任务中的表现,还使得模型在图像生成任务中保持了较高的质量。通过优化任务平衡,Janus-Pro 在多种多模态任务中展现了更强的综合性能。

总之,Janus-Pro 针对原始 Janus 模型的三阶段训练流程中存在的问题,进行了显著的优化和改进。在阶段 I,通过延长在 ImageNet 数据上的训练步数,模型能够更充分地学习图像的像素依赖关系;在阶段 II,取消了依赖 ImageNet 分类提示的训练部分,直接使用常规文本到图像数据进行训练,显著提升了训练效率和模型的稳定性;在阶段 III,通过调整训练数据的比例,优化了多模态理解任务和图像生成任务之间的平衡。这些改进不仅提升了模型的训练效率,还增强了其在多模态任务中的综合性能,为多模态模型的训练提供了新的思路和方法。

5.3.4  数据扩展策略

为了进一步提升 Janus-Pro 模型的性能,DeepSeek 在数据扩展方面进行了大幅度的改进,主要体现在以下两个方面。

1. 多模态理解数据扩展

在预训练阶段,Janus-Pro 新增了约 9000 万个样本,涵盖了多种类型的数据:

  1. 图像字幕数据:引入了如 YFCC 等大型数据集,这些数据集包含丰富的图像及其对应的文本描述,有助于模型学习图像与文本之间的关联。
  2. 专用数据集:为了增强模型对特定领域的理解能力,Janus-Pro 加入了针对表格、图表和文档理解的专用数据集,如 Docmatix 等。这些数据使模型能够更好地处理复杂的视觉信息,提升在各类视觉任务中的表现。

2. 视觉生成数据扩展

在视觉生成任务中,数据质量对模型性能至关重要。为此,Janus-Pro 采取了以下措施:

  1. 引入合成美学数据:为了弥补真实数据中可能存在的噪声和不足,模型在训练中加入了约 7200 万条合成美学数据。这些数据经过精心设计,具有高质量和多样性,有助于模型学习更丰富的图像生成模式。
  2. 数据比例平衡:在训练过程中,Janus-Pro 将真实数据与合成数据的比例设定为 1:1。这样的配置不仅加快了模型的收敛速度,还显著提升了生成图像的稳定性和美观度。

通过上述数据扩展策略,Janus-Pro 模型在多模态理解和视觉生成任务上均取得了显著的性能提升,为多模态 AI 的发展提供了坚实的基础。

5.3.5  模型规模扩展

除了架构和训练策略的改进,Janus-Pro 还通过扩展模型规模来进一步提升性能。模型规模的扩展不仅是对参数数量的增加,更是对模型架构和计算能力的全面优化。下面介绍了Janus-Pro模型在规模扩展方面的具体措施及其效果。

1. 多种模型规模

Janus-Pro 提供了两种不同规模的模型版本,以满足不同场景下的需求并验证模型扩展的有效性:

(1)1B 版本

  1. 参数量:15 亿参数
  2. 嵌入维度:2048
  3. 注意力头数量:16
  4. 层数:24
  5. 词汇量:100K
  6. 上下文窗口:4096

1B 版本的 Janus-Pro 是在原始 Janus 模型的基础上进行优化的版本,在多模态理解和文本到图像生成任务中表现出色,尤其是在处理中等复杂度的任务时,能够以较低的计算成本提供高效的解决方案。

(2)7B 版本

  1. 参数量:70 亿参数
  2. 嵌入维度:4096(相比 1B 版本提升一倍)
  3. 注意力头数量:32(相比 1B 版本增加一倍)
  4. 层数:30(相比 1B 版本增加 6 层)
  5. 词汇量:100K(保持不变)
  6. 上下文窗口:4096

7B 版本的 Janus-Pro 是对模型规模进行大幅扩展后的版本。通过增加嵌入维度、注意力头数量和层数,7B 版本在处理复杂多模态任务时表现出更强的能力。它能够捕捉到更丰富的语义信息和更复杂的模态间关系,从而在多模态理解和文本到图像生成任务中取得显著的性能提升。

2. 收敛速度与性能提升

实验结果表明,模型规模的扩展不仅提升了 Janus-Pro 的性能,还在多个方面带来了显著的改进:

(1)更快的收敛速度

  1. 在多模态理解任务中,7B 版本的 Janus-Pro 在训练初期就能快速收敛,显示出更强的学习能力。相比 1B 版本,7B 版本能够在更少的训练步骤内达到较高的准确率,这表明其架构设计能够更高效地利用训练数据。
  2. 在文本到图像生成任务中,7B 版本的收敛速度同样更快。它能够更快地学习如何根据文本描述生成高质量的图像,减少了训练时间并提高了训练效率。

(2)更高的性能表现

  1. 在多模态理解基准测试中,7B 版本的 Janus-Pro 在多个数据集上取得了领先的成绩。例如,在 MMBench 数据集上,7B 版本的准确率达到了 79.2%,显著高于 1B 版本的 69.4%。这表明 7B 版本在处理复杂的多模态任务时具有更强的语义理解能力。
  2. 在文本到图像生成任务中,7B 版本在 GenEval 和 DPG-Bench 等基准测试中也表现出色。例如,在 GenEval 数据集上,7B 版本的总体准确率达到了 80%,远高于 1B 版本的 61%。这表明 7B 版本在生成复杂图像内容时具有更高的稳定性和语义一致性。

(3)验证模型扩展策略的有效性

实验结果验证了模型扩展策略的有效性。通过增加参数量、嵌入维度、注意力头数量和层数,7B 版本的 Janus-Pro 在多模态任务中展现出更强的性能。这种扩展不仅提升了模型的表达能力,还增强了其在复杂任务中的适应性。

此外,7B 版本的扩展还为未来进一步提升模型性能提供了基础。随着模型规模的增加,Janus-Pro 有望在更复杂的多模态任务中取得更好的表现,例如多模态对话、视频理解等。

总之,Janus-Pro 通过扩展模型规模,进一步提升了其在多模态任务中的性能。1B 和 7B 两种版本的设计满足了不同复杂度任务的需求,而 7B 版本在嵌入维度、注意力头数量和层数上的提升,显著增强了模型在多模态理解和文本到图像生成任务中的表现。实验结果表明,较大规模的模型不仅在收敛速度上有明显加快,而且在多个评测基准上均能取得领先成绩。这些改进验证了模型扩展策略的有效性,并为未来多模态模型的发展提供了重要的参考。

(5-3)DeepSeek多模态大模型架构:Janus-Pro模型_第1张图片

你可能感兴趣的:(训练,RAG,多模态),架构,transformer,deekseek,人工智能,大模型)