跳转到内容
主站 新闻 控制台

NeoMME:高效的多模态原生多语言编码器

· Hugging Face
教程模型卡

Hugging Face Hugging Face Paper arXiv

NeoMME logo

TL;DR

我们推出了 NeoMME,一个包含 2.6 亿参数和 8 亿参数模型的多语言多模态编码器系列。与许多生成式视觉语言模型不同,NeoMME 不使用独立的预训练视觉塔或因果语言模型。单个双向 Transformer 同时处理文本 token 和原始图像块(patch),并通过掩码离散扩散目标从头开始训练整个模型。

我们采用 ColPali 的页面图像方法,对 NeoMME 进行了视觉文档检索微调。NeoMME-Retriever 能够在一次前向传播中返回稠密嵌入和晚交互嵌入。两个模型规模在 ViDoRe v3 的 nDCG@10 与模型大小指标上均位于 Pareto 前沿。在 NVIDIA L40S GPU 上,以匹配的 2048×2048 图像输入尺寸进行测试时,2.6 亿参数模型每秒可编码约 51 页,吞吐量约为 ColModernVBERT 的两倍。分层 token 池化和非对称量化将晚交互索引的存储空间从每页约 1.5 MB 降至 6 kB(缩小 255 倍),同时保留超过基线 nDCG@10 的 95%。

NeoMME 已在 Hugging Face Transformers 中提供。我们以 Apache 2.0 许可证发布所有模型检查点。

为什么还需要另一个多模态编码器?

许多近期的视觉文档检索器都改编自预训练生成式视觉语言模型。一个单独预训练的视觉编码器负责生成视觉特征,再由投影器将其映射到语言模型的输入空间。随后,因果解码器处理组合后的图像和文本表示。检索、分类和 token 标注并不需要自回归生成文本,因此不需要因果解码器,也不需要承担这种架构带来的参数和计算开销。

ModernBERT 为双向编码器带来了高效的架构和训练改进。在视觉文档检索领域,ModernVBERT 采用了双向 ModernBERT 风格的文本编码器,同时保留了独立的预训练 SigLIP2 视觉塔。我们希望通过设计并训练一种无需继承视觉语言模型参数和计算开销的多模态编码器,在此基础上进一步推进。

NeoMME(读作“nee-oh-me”,国际音标为 /ˈniː.oʊ.mi/)是一种多语言、多模态基础编码器,使用单个 Transformer 编码器为输入文本和/或图像生成向量表示。它不基于现有的预训练视觉塔、文本编码器或文本解码器。

双塔模型、视觉语言模型、ModernVBERT 与 NeoMME 的输入路径对比

与双塔编码器和视觉语言模型不同,NeoMME 在一个双向 Transformer 中处理图像块和文本 token,不使用预训练视觉塔、预训练文本编码器或预训练文本解码器。

图像和文本使用相同的计算路径,因此 NeoMME 可以更便捷地支持跨两种模态的预训练、微调、并行化和服务部署。

NeoMME 编码器骨干网络

使用一个 Transformer 处理图像和文本

NeoMME 提供两个规模的模型:2.6 亿参数和8 亿参数。两个版本采用相同的架构:

  • **原生多模态输入:**文本输入使用因式分解 token 嵌入;图像则被划分为不重叠的 32×32 图像块,并通过一个小型 MLP 进行投影。二者都会进入同一个 Transformer 编码器。

  • **动态图像分辨率:**图像保留其宽高比和尺寸。这使模型能够在高分辨率、信息密集的文档页面上使用更多 token,而在内容较少的小图像上使用更少的 token。

  • **长距离双向上下文:**两个模型的上下文长度均为 16,384 个 token(足以容纳最多两张标准 3840×2160 的 4K UHD 图像)。大多数层使用对称滑动窗口注意力,而每六层中的一层以及最后一层使用全局注意力。

  • **现代化的编码器堆栈:**NeoMME 采用了近期的编码器改进技术,包括分组查询注意力(grouped-query attention)、查询-键归一化(query-key normalization)、门控注意力(gated attention)、二维旋转位置嵌入(2D rotary position embeddings)和平方 ReLU MLP 等。

  • **多语言文本:**我们基于多语言文本、代码、数学内容和机器生成的图像转录文本,从头训练了一个拥有 131k 词表的 BPE 分词器。

NeoMME 中交替排列的滑动窗口注意力层和全局注意力层

NeoMME 编码器堆栈中交替排列的滑动窗口注意力层和全局注意力层。

通过掩码文本从图像中学习

我们将 NeoMME 作为离散掩码扩散文本去噪器从头开始预训练。对于每个纯文本样本,我们在 0 到 1 之间均匀采样一个破坏率。随后,每个符合条件的文本 token 都会以该比率独立进行掩码。

多模态样本使用 0.3 到 1 之间的破坏率。图像块保持可见,而 NeoMME 重建被掩码的文本。在较低掩码率下,模型通常仅凭周围文本就能恢复缺失的单词。例如,即使没有图像,The [MASK] sat on the mat 中填入“cat”也很合理。但较高的掩码率会迫使模型在非掩码输入文本 token 几乎没有信息的情况下,学习基于图像的描述。

文本破坏对 NeoMME 可用文本和视觉证据的影响

更高的文本破坏率会消除仅依赖语言的捷径,促使 NeoMME 使用可见的图像证据。

预训练数据混合了多语言文本、代码、数学内容、自然图像和文档图像。每个模型处理约 5240 亿个打包输入 token,其中包括来自纯文本样本的 2900 亿个 token。与 ModernBERT 的 2 万亿训练 token 预算相比,这一文本数据量相对较小。因此,我们选择使用 NorMuon 优化器,以提高训练过程中的数据效率。

NeoMME-Retriever

为了对模型骨干网络进行有意义的下游评估,我们采用 ColPali 提出的页面图像方法,对 NeoMME 进行视觉文档检索微调。传统的基于文本的检索通常检索文本块,而 NeoMME-Retriever 则对文档页面截图进行排序,绕过了从 PDF 中提取文本所需的全部预处理 OCR 步骤。将页面作为图像处理可以保留布局、图表、表格、字体类型和大小,以及其他即使是完美 OCR 模型也无法捕捉的视觉线索。

用于稠密检索和晚交互检索的双头设计

NeoMME-Retriever 复用了 NeoMME 的骨干网络。