微信正式发布多模态大模型POINTS1.5

距离 POINT1.0 的发布已经过去两个月时间来,在这段时间业界不断涌现出一系列优秀的模型。我们通过不断紧跟前沿技术,并结合过去开发多模态模型沉淀下来的经验,对 POINTS1.0 进行了一系列更新,推出了 POINTS1.5。这一代 POINTS 模型,不仅兼顾了 POINTS1.0 中所坚持的效率优先的思想,同时极大了增强了模型的性能。


Paper: https://huggingface.co/papers/2412.08443


Github: https://github.com/WePOINTS/WePOINTS


HuggingFace: https://huggingface.co/WePOINTS/POINTS-1-5-Qwen-2-5-7B-Chat


领先的性能


先贴一下 OpenCompass Leaderboard 的情况 (截图截止的时间为 2024.12.8)


微信正式发布多模态大模型POINTS1.5  第1张


POINTS1.5-7B 位居全球 10B 以下开源模型的榜首,超越诸如 Qwen2-VL, InternVL2 和 MiniCPM-V-2.5 等业界领先的模型。同时,除了 OpenCompass 用于排名所使用的 8 个 benchmark 之外,我们对 POINTS1.5 在更多的 benchmark 上进行了测试: ChartQA[1], MME[2], LLaVA-Wild[3], SEEDBench[4], MEGABench[5], ScienceQA[6], MATH-Vision[7], MathVerse[8],具体结果如下表。可以发现 POINTS1.5-7B 的表现仍然非常惊艳,尤其在数学相关的 Benchmark 上表现尤其出色,与其他竞品之间的差距也拉得比较大。


微信正式发布多模态大模型POINTS1.5  第2张

真实场景中的表现


当然在研发一个大模型的过程中,我们不能只关注 benchmark 上的性能怎样,感受模型在真实场景中的表现也至关重要。因为我们从复杂场景的 OCR,推理能力,关键信息提取,Latex 公式提取,数学,图片翻译,物体识别几个方面对模型进行测试。可以发现,POINTS1.5 在各种场景上都有不错的表现。


微信正式发布多模态大模型POINTS1.5  第3张


微信正式发布多模态大模型POINTS1.5  第4张


微信正式发布多模态大模型POINTS1.5  第5张

模型结构


微信正式发布多模态大模型POINTS1.5  第6张


POINTS1.5 仍然沿用了 POINTS1.0 中使用的经典的 LLaVA 架构,由一个 vision encoder, 一个 projector 和一个大语言模型组成。


视觉编码器: 使用LLaVA风格架构训练视觉-语言模型类似于对大型语言模型(LLM)的持续 post-training,使其能够处理来自图像模态的 token。因此,使用高质量的视觉编码器对于 LLM 准确理解图像至关重要。为了支持任意分辨率的图像,POINTS1.0遵循了最近的研究工作,如LLaVA-Next [9] 和 InternVL [10],将大图像分割成视觉编码器可以处理的若干小块。然而,这种方法有固有的缺点,因为它破坏了图像内各块之间的空间关系。尽管添加行分割标记,例如 \n,和引入全局视图等策略可以缓解这个问题,但问题依然存在。因此,POINTS1.5用NaViT风格的视觉编码器[11]替换了POINTS1.0中使用的CLIP视觉编码器,类似于最近的进展[12]。与CLIP视觉编码器不同,NaViT风格的视觉编码器可以原生处理任意分辨率的图像,而无需分割。


NaViT 中的 Batch Forwarding: 随着NaViT的引入,批量前向传播面临了新的挑战。与CLIP视觉编码器不同,CLIP视觉编码器可以沿着批量大小维度将图像连接起来,而NaViT在图像被分块后处理的图像序列长度各不相同。为了解决这个问题,我们采用了一种受大型语言模型(LLMs)启发的策略:我们将多个图像序列打包成一个长序列。然后,我们记录每个图像序列的起始和结束索引,以确保自注意力机制仅在当前图像序列的边界内应用。


Projector: 和 POINTS1.0 类似,我们使用两层 MLP 作为投影层,同时在两层线性层之间增加一层 GELU 来增加非线性。


LLM: 我们使用了 Qwen2.5-7B-Instruct


双语支持


对话模板: 根据POINTS1.0,POINTS1.5的LLM也是从指令微调版本的Qwen2.5-7B初始化的。然而,在POINTS1.0的预训练阶段,我们使用了一个续写模板来打包数据,类似于LLM预训练过程中使用的模板,这与指令微调版LLM使用的模板不同。在这个版本中,我们采用了 Qwen2.5-7B-Instruct 中使用的对话模板,并观察到相比于续写模板有性能提升。由于预训练数据是图像-标题对,我们在每个数据样本中添加了一个提示,类似于“请描述这张图片。”。为了使提示多样化,我们创建了一个候选提示池(左图),并为每个数据样本随机抽取一个提示。此外,为了区分视觉标记和文本标记,我们在视觉标记周围添加了图像前缀和后缀标记。右图展示了POINTS1.0和POINTS1.5在预训练期间聊天模板的区别。


微信正式发布多模态大模型POINTS1.5  第7张


中文预训练数据集: 在POINTS1.0的基础上,我们采用两步程序来创建预训练数据集:i) 我们使用CapFusion[12]将视觉语言模型(VLM)生成的标题与图像的原始标题合并,生成最终标题。ii) 我们使用困惑度对生成的标题进行过滤。随后,我们使用困惑度对这些数据进行过滤,类似于 POINTS1.0 中的过滤过程。我们将这些标记按升序排列,并选择前20%(约100万)用于预训练阶段。然后,这部分中文数据集与原始的100万英文数据集结合,用于预训练POINTS1.5。


中文指令微调数据: 我们继承了POINTS1.0中的所有视觉指令调优数据集,除了在本节中生成的数据集。为了创建中文视觉指令调优数据集,我们采用了几种策略:


1.将现有的英文数据集(包括问题和答案)翻译成中文。


2.使用现有数据集中的图像和问题,并使用业界领先的视觉语言模型生成相应的答案。此策略仅适用于 caption 数据集。


3.从互联网上收集图像,手动设计问题(如下图所示),使用强大的视觉语言模型生成答案,并由人工标注员验证答案。此策略主要用于中文OCR数据集。


下表显示了用于构建中文数据集的数据集及相应的策略。


微信正式发布多模态大模型POINTS1.5  第8张


在创建中文数据集之后,我们获得了9个类别的分布以及中英文分布。我们观察到不同类别之间存在显著的不平衡。然而,我们尚未找到有效的方法来平衡这些类别的数据,这个问题将留到未来的工作解决。


微信正式发布多模态大模型POINTS1.5  第9张

指令微调数据过滤


在过滤视觉指令调优数据集之前,我们手动检查了POINTS1.0中使用的每个数据集,并发现了两个重要问题:i) 一些问题可以在不参考图像的情况下回答。ii) 一些数据集中存在大量语法错误。


微信正式发布多模态大模型POINTS1.5  第10张


问题可以在没有图像的情况下回答: 直觉下,用于训练视觉-语言模型的数据应使模型能够基于图像解决问题。如果问题在没有图像的情况下可以回答,它们就会退化为纯文本数据[16]。为了过滤掉这些数据,我们使用一个强大的开源大型语言模型(LLM),例如Qwen2.5-72B-Instruct,在没有图像的情况下回答问题。如果LLM提供了正确答案,则相应的数据样本会被丢弃。这种过滤策略仅适用于包含固定和明确答案的数据集,例如AI2D[17]。然后我们用过滤后的数据集训练模型,但观察到性能略有下降。这一现象与之前的研究[18,19]一致,这些研究表明纯文本数据有助于维持预训练LLM的能力。


具有语法问题的样本: 对于第二类问题,我们设计了一个两步筛选策略:(i) 使用大型语言模型(LLM)检测当前样本中是否存在语法错误,(ii) 如果存在语法错误,我们可以选择丢弃该样本或使用LLM修复这些错误。下图(左)展示了这个过程。经过仔细比较,我们发现直接丢弃这些样本比使用LLM修复它们的效果更好。如下图(右)所示,筛选后我们保留了大约85%的原始数据。


微信正式发布多模态大模型POINTS1.5  第11张

训练策略和模型策略


训练策略: 目前,社区内对于如何训练LLaVA风格视觉-语言模型的每个模块尚未达成共识。如下表所示,不同的模型在预训练和视觉指令微调期间采用了不同的训练配置。这带来了一个问题:什么是最佳的训练配置策略?与视觉-语言模型相比,大型语言模型(LLMs)发展更为迅速,各种发展路径趋向于统一的方法。在预训练LLM之前,必须使用诸如WordPiece[20]和BPE[21]等算法在大语料库上训练一个分词器,以确保每个句子都能唯一且准确地分词为一系列索引。这个分词器还可以将一系列索引解码回句子。在预训练和后续训练过程中,分词器保持固定,而词嵌入层和所有的transformer层则进行端到端的训练。类似地,在视觉-语言模型的架构中,视觉编码器的功能类似于文本分词器,而投影器则类似于词嵌入层。因此,在训练视觉-语言模型之前,必须单独训练视觉编码器(例如,POINTS1.5中使用的Qwen2-VL视觉编码器)。随后,视觉编码器被固定,投影层和LLM进行端到端的训练。在实践中,由于视觉投影层是随机初始化的,我们发现增加一个额外的阶段(所谓的预训练阶段)来预热投影层可以带来更好的性能(在这个阶段我们固定视觉编码器,因为我们发现解冻它会降低性能,如下图)。我们的训练配置总结在最后一张表中。值得注意的是,POINTS1.5遵循了POINTS1.0的路径,使用更少的计算资源,总计少于50亿个tokens,这显著少于大多数之前的工作。


微信正式发布多模态大模型POINTS1.5  第12张


Model Soup: 在POINTS1.0之后,我们使用模型汤(model soup)来提升单个模型的性能。模型汤是在我们评估基准上表现最好的模型上进行的,主要包括使用不同视觉指令调优数据集和不同训练时长的模型。表现最好的单个模型的OpenCompass得分为66.5,使用模型汤获得的最终模型得分为67.4。


未来展望: 如前面所述,在LLaVA风格架构下扩展大型语言模型(LLM)以支持任何模态,类似于对LLM的持续后训练。我认为决定模型最终性能的三个关键因素是:i) 高质量的模态 tokenizer 和 detokenizer。tokenizer 应能唯一且准确地将任何模态信号编码到一个压缩的特征空间中,而 detokenizer 应能将压缩的特征恢复到其原始的模态信号。ii) 模态嵌入层,即投影层。iii) 高质量的指令调优数据集,以赋予LLM理解不同模态的能力。因此,我们设想未来多模态模型的发展应遵循三步策略(下图所示):i) 使用大量数据训练模态 tokenizer 和 detokenizer,例如视觉编码器和解码器。ii) 预热模态嵌入层,将任何模态信号转换为LLM的文本空间。在这一步中,我们发现数据集的规模不必非常大[22]。iii) 使用高质量的指令调优数据集训练模态嵌入层和LLM,同时保持 tokenizer 和 detokenizer冻结。


微信正式发布多模态大模型POINTS1.5  第13张


[1] Chartqa: A benchmark for question answering about charts with visual and logical reasoning.


[2] MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models.


[3] Visual information extraction in the wild: practical dataset and end-to-end solution.


[4] Seed-bench: Benchmarking multimodal llms with generative comprehension.


[5] Learn to explain: Multimodal reasoning via thought chains for science question answering.


[6] Measuring multimodal mathematical reasoning with math-vision dataset.


[7] Mathverse: Does your multi-modal llm truly see the diagrams in visual math problems?


[8] Mega-bench: Scaling multimodal evaluation to ove 500 real-world tasks.


[9] Llava-next: Improved reasoning, ocr, and world knowledge


[10] How far are we to gpt-4v?


[11] Navit, a vision transformer for any aspect ratio and resolution.


[12] Qwen2-vl: Enhancing vision-language model’s perception of the world at any resolution.


[13] Capsfusion: Rethinking image-text data at scale.


[14] Internlm2 technical report.


[15] Internlm-xcomposer2: Mastering free-form text-image composition and comprehension in vision-language large model.


[16] Mmbench: Is your multi-modal model an all-around player?


[17] diagram is worth a dozen images.


[18] Nvlm: Open frontier-class multimodal llms.


[19] Mm1. 5: Methods, analysis & insights from multimodal llm fine-tuning.


[20] Fast wordpiece tokenization.


[21] Neural machine translation of rare words with subword units.


[22] Rethinking Overlooked Aspects in Vision-Language Models


文章来自于“腾讯技术工程”,作者“YuanLiu”。


微信正式发布多模态大模型POINTS1.5  第14张