前言本文一开始是此文《多模态LLaVA系列与Eagle 2——从组合CLIP ViT和Vicuna的LLaVA到英伟达开源的VLM Eagle 2(用于人形VLA GR00T N1中)发布于25年5月》的第二部分当时的前言是之所以写本文源于两个方面一方面我司「七月在线」准备在一个人形项目中试下英伟达通用人形VLA GR00T N1而GR00T N1中所用的VLM是他们自家于25年1月发布的Eagle 2二方面Eagle 2的理念特别好如其在摘要中所说的近年来开源视觉语言模型VLMs在将其能力接近专有前沿模型方面取得了有希望的进展然而大多数开源模型仅发布其最终的模型权重数据策略和实现的关键细节仍然不透明在Eagle 2的这项工作中作者从数据为中心的角度解决VLM的后训练问题展示数据策略在开发前沿VLMs中的关键作用且通过从头开始研究和构建我们的后训练数据策略作者分享了开发过程中的详细见解且Eagle2-9B宣称在各种多模态基准上取得了最先进的结果与参数量高达70B的某些竞争模型相匹敌于此本文来了顺带感谢具身智能让我有了再次奋战几十年的热情与动力也感谢大模型与具身智能让我凭借过去三年 每天当三天的拼命/努力而有了足够大的底气 自信 实力——全靠勤奋考虑到1 Eagle 2.5也出来了2 LLaVA的重要性故把这两部分分开独立各自成文比较好故也有了本文第一部分 Eagle1.1 Eagle的一系列设计方案1.1.1 基础设置包含基础训练数据、基础训练方案根据Eagle的论文《Eagle: Exploring The Design Space for MultimodalLLMs with Mixture of Encoders》可知作者采用了LLaVA-1.5Liu等2023c的模型架构作为基础该架构包括一个大型语言模型Vicuna-v1.5 7B一个视觉编码以及一个投影层投影层将视觉编码器生成的视觉嵌入映射到文本嵌入空间首先对于基础训练数据作者在第一阶段的预训练中采用与 LLaVA-1.5Liu 等2023c相同的预训练数据集LLaVA-595k该数据集包含 59.5 万组图文对为了充分探索不同视觉专家和融合方法的潜力作者没有使用 LLaVA-1.5中的 SFT 数据而是从一系列任务中收集数据并将其转换为多模态对话用于监督微调SFT阶段这部分数据在表 1 中「表1中表明了基础有监督微调数据Eagle1.8M的组成」记为 Eagle1.8M其次对于基础训练方案作者采用LLaVA-1.5Liu等2023c的方法首先使用图文对进行一次轮次的预训练批量大小为256在该预训练阶段整个模型被冻结仅更新投影层第二阶段作者在多模态对话数据上进一步微调模型同样进行一次轮次训练批量大小为128且学习率分别设置为第一阶段1e-3第二阶段2e-51.1.2 更强大的CLIP编码器作者首先通过升级vanilla CLIP(Radford等2021)模型来展开探索因为它已成为大多数MLLMs(Liu等2023dc)的标准选择虽然CLIP模型因其文本-图像对齐能力而有利于多模态任务但它们也存在固有的缺陷。例如许多现有的MLLMs(Liu等2023c)往往采用预训练CLIP的分辨率(如224×224或336×336)作为输入分辨率在这些情况下编码器通常无法捕捉对分辨率敏感任务(如OCR和文档理解Li等2024c)关重要的细粒度细节为应对输入分辨率的提升常用的方法包括将输入图像分割为多个小块tiles并分别编码比如Liu等2024a再比如Li等2024c或者直接对视觉Transformer模型的位置嵌入进行插值以适配高分辨率输入比如Chen等2023c;d再比如Beyer等2024作者在不同分辨率下对冻结/未冻结的视觉编码器采用上述两种方法进行了比较结果如表2所示作者的主要发现总结如下在SFT 过程中更新CLIP 编码器在高分辨率下显著提升了性能但在使用预训练分辨率时略有下降将CLIP 编码器插值以适应输入尺寸为448 × 448 在效率和性能之间提供了良好的平衡其性能仅略低于672 × 672 版本但所需token 数量不到一半尽管其规模较小(0.3B 对5.9B)且预训练数据较少CLIP 编码器通过插值方法在相同设置下接近InternVLChen 等2023f的性能根据结果可以看出直接插值到448×448能够在效率更高的同时实现有竞争力的性能。因此作者在SFT阶段解锁编码器时采用输入分辨率为448×448的CLIP编码器1.2.3 视觉专家// 待更第二部分 Eagle 2SigLIP-So400m/ConvNeXt 双骨干 Qwen2.5-7B-Instruct2.1 提出背景与相关工作2.1.1 引言如何构建足够具有竞争力的VLM基于大型语言模型LLMs视觉-语言模型VLMs[1,2,3,4]旨在赋予LLMs“看”的能力通过具备对世界的视觉感知能力VLMs能够接收多模态信息从而应对更广泛的智能应用。例如智能体[5-Cogagent]、自动驾驶[6-DriveVLM,7-LingoQA]以及具身人工智能[8-RT-2,9-Palm-e,10- OpenVLA]等社区已经深入研究了VLM的架构和训练方法并取得了显著进展目前使视觉与语言模态对齐的主要策略是基于对预训练大语言模型LLM进行后训练其中LLaVA系列[4]是代表性例子根据透明度的不同当前的VLM模型也可以大致分为三类商业闭源模型例如GPT-4v/o[11]和Claude[12]具有公开权重的前沿模型例如Qwen2-VL[13]、InternVL2[14]和Llama 3.1[15]以及完全开源模型例如Cambrian-1[16]和LLaVA系列[4,17]但不太幸的是完全开源的LLaVA-OneVision-72B [17]仍略逊于半开源的InternVL2-40B [14]那如何构建足够具有竞争力的VLM呢Eagle 2的作者们认为有以下三大关键点数据策略“多样性优先然后是质量”——Eagle 2在整个开发过程中始终遵循这一原则并将其贯彻到极致他们对数据的优化持续带来模型性能的提升。包括1数据收集策略构建了涵盖180多个来源的大规模高多样性数据池2通过数据过滤策略剔除低质量样本3利用数据选择策略构建高质量子集4应用一系列数据增强技术丰富现有数据模型架构比如尽管存在诸如 Q-Former [19] 和 Hybrid-Attention [20] 等多种设计简单的 MLP 连接器仍然是连接视觉编码器与大语言模型(LLM)最常用的选择Despite various designs such as Q-Former [19] andHybrid-Attention [20], simple MLP connector is still themost popular choice to connect the vision encoder andLLM.2层MLP加上GELU激活函数就像是一个缓冲兼翻译官能在视觉 Token 还没进入 LLM 之前先进行一次非线性的解耦与语义映射让视觉和文本在数学表征上结合得更自然、更深——再比如受InternVL [21,14]、Eagle [22]和Cambrian-1 [16]等工作的启发Eagle 2采用以视觉为中心的设计将动态拼接Dynamic tiling和视觉编码器混合(MoVE)结合于一个统一架构中具体而言每个图像块由通道级拼接的MoVE进行编码从而在实现高分辨率输入的同时保持MoVE的强大感知能力Specifically, each imagetile is encoded by channel-concatenated MoVE, therefor eallowing high-resolution input from tiling while maintain-ing the robust perception from MoVE且类似于[22]Eagle 2的视觉编码器部分采用了“SigLIP [23-Sigmoid loss for language image pre-training] X (ConvNeXt[24])”的配置相比单独使用SigLIP拼接MoVE在具备分块的情况下实现了显著的性能提升尤其在OCR和图表/文档VQA等任务中表现突出Compared to SigLIP alone, tiled MoVE yields significant improvements despite having tiling, particularly in tasks like OCR and Chart/Document VQA——————由于Eagle 2的原论文并没有一个清晰可见的完整模型架构图(至于论文中的图11-详见下文2.2.3节尚不够完整)故为了方便大家理解我特地把其模型架构图画了一下供大家参考1输入图像动态分块Tiling- 产生N个图像块Ni×ji×j≤122对于每个图像块同时输入两个视觉编码器SigLIP和ConvNeXt每个编码器会相应的调整图像块的大小至所需输入尺寸SigLIP分支调整至448x448 - SigLIP - 特征图32x32- PixelShuffle下采样2倍 - 16x16ConvNeXt分支调整至512x512 - ConvNeXt - 特征图16x163将两个特征图拼接通道维度通过MLP连接器 - 输出256个视觉token相当于通过MLP连接器对齐到LLM输入维度4将所有图像块的视觉token拼接 - 总视觉token序列N*256个token输入LLMPS根据论文视觉token数量为 (i×j1)×256但本图仅展示了分块分支的 i×j×256 个视觉token额外的256个视觉token来源未明确当然在GR00T N1中该模型结构则被改造了下如下表格所示架构维度Eagle 2标准版(源自Eagle2 paper)Eagle 2 具身版(源自GR00T N1 paper)论文定位探索前沿 VLM 的后训练数据策略与通用视觉理解作为通用双臂/人形机器人大脑System 2提供实时视觉语义视觉编码器 (Vision)SigLIP-So400m ConvNeXt 双骨干怎么知道的是SigLIP-So400m是依据Eagle 2原论文中的表1详见下文「2.2.0 基线设置」SigLIP-2单专家升级版编码器语言骨干LLMQwen2.5-7B-InstructSmolLM2(特化端侧轻量小语言模型)训练配方虽然最先进的VLM [25-Qwen2-VL,14-InternVL2,26- Gpt-4 technical report]的训练配方不太明确但现有研究[16-Cambrian-1,4-Visual instruction tuning,17-Llava-onevision]分享的细节可以提供一个可靠的基线为了进一步提升模型性能Eagle 2采用三阶段训练策略以最大化利用训练数据具体而言第一阶段阶段1通过训练MLP连接器实现语言模态和图像模态的对齐接下来的阶段阶段1.5使用大规模多样化的数据对完整模型进行训练且在阶段1.5中整合了所有可用的视觉指令数据而不仅仅局限于描述或知识类数据最后阶段阶段2继续使用精心构建的高质量视觉指令调优数据集训练完整模型即The final stage (Stage-2) continues training the full model with a carefully crafted, high-quality visual instructiontuning dataset最终Eagle 2 模型家族涵盖了各种规模包括 1B、2B 和9B 参数2.1.2 相关工作第一对于视觉-语言模型和大语言模型[187,188,3]其彻底改变了NLP领域并重塑了更广泛的人工智能格局LLMs 的进步通过将视觉特征与 LLMs 融合推动了视觉理解领域的重大突破催生了视觉-语言模型VLMs[189,11,4,190]具有公开可用权重的VLMs[4,3,191,192,193,17,194,14,25,195,15,196,197,198,199]的性能在持续取得突破达到了甚至超越了GPT-4V/4o [184,11] 和Gemini-1.5 [185]完全开源的 VLMs[17,16,200] 发布了他们的训练数据和代码库进一步加速了 VLM 的研究第二对于以视觉为中心的VLMsVLMs的视觉基础[201,202,203]和改进设计[204,23,195,205,206,207]混合视觉编码器设计[208,209,210,211,212,16,22]以及平铺和高清输入设计[213,214,215,216,21,193,194,217,14,25]据所知这项工作是首次探索平铺混合视觉编码器MoVE设计该设计被证明继承了两种方法的优势。提出的平铺MoVE设计还引入了额外的灵活性以结合先进的视觉基础模型第三对于VLMs中的数据工作数据策略在训练VLMs中至关重要包括数据集构建、平衡和过滤以及训练方法的各个方面早期探索如LLaVA-150K [4] 使用了GPT-4 [11]的指令调优后来研究[218,219,193,204]通过通过将多任务学术训练数据融入监督微调阶段实现了改进研究还扩展了数据类型至视频[220,15]、多图输入[17,14]、图文交错数据[221,222]、多语言数据[186]和合成数据集[15]然而单纯扩展数据集可能会因质量和规模差异而对模型性能产生负面影响诸如Instruct-BLIP[219]和Cambrian-1 [16]之类的方法通过设计最佳数据比例和平衡技术来解决这一问题而其他方法如Llama3[15]和Molmo [223]则通过使用SSCD [178]去重和引入人工标注的图像来提升数据质量此外训练策略也在不断发展LLaVA [4]提出了一个成为标准的两阶段训练过程后来的模型[17-Llava-onevision]引入了中间阶段VLM的综述[224,225,226]也讨论了用于构建VLM的各种训练方法和数据策略但它们缺乏定性分析未能为训练前沿VLM提供足够细致的路径指引2.2 完整方法论数据策略、训练方法、视觉编码器的平铺混合2.2.0 基线设置Siglip-400M、MLP、Qwen2.5-7B-instruct如表1所示Eagle 2的初始基线从Cambrian数据集[16]开始使用LLaVA的[4]两阶段训练方法作者从Cambrian-7M中移除了一些低质量数据例如ShareGPT-4V、GPT-77K和Data-Engine-161K最终得到包含520万条样本的子集该模型通过MLP连接器将视觉编码器与LLM相连接并采用image tiling以实现动态分辨率且基于此基准框架作者从三个关键维度增强了Eagle 2数据策略训练方法模型架构关于siglip-so400详见《图文对比学习的发展史从CLIP、BLIP、BLIP2、InstructBLIP到具身模型常用的SigLIP(含siglip-so400m的详解)、SigLIP2》的此节『2.4 SigLIP-So400m的原始论文SoViT(Shape-Optimized ViT)』2.2.1 数据策略数据收集、数据过滤、数据选择、数据增强训练数据对于定义VLM的能力至关重要然而大多数商业VLM以及那些公开权重的主流VLM其数据策略通常被保密下图图3展示了Eagle 2的整体数据策略「上部分显示数据收集流程下部分显示数据优化流程」包括两个核心组成部分数据收集和现有数据的优化2.2.1.1 数据收集对于数据收集其多样性是关键。一个模型的能力与数据的多样性强烈相关。因此尽可能收集多样化的数据是本研究的核心原则这也引出了两条主要策略被动收集持续关注arXiv论文和HuggingFaceDatasets中的最新相关数据集并将其加入的候选列表主动搜索解决桶效应。如上图图3所示每次更新数据池时作者都会进行误差分析以识别模型的薄弱环节并有针对性地搜索新的数据最终Eagle 2的多样化数据来源在表2a中进行了总结并且通常是公开可用的。且利用了一些预先组织的数据集集合[16,17,151]来加速准备工作但也进行了仔细检查以防止诸如测试数据泄露等问题此外他们还收集了大量的公共非问答数据例如Google Landmark[31]并通过特定规则或自动标注工具将其转换为VQA数据另为了降低训练成本避免对每个数据集单独进行消融实验。相反当满足以下条件时将领域相似的数据集批量加入数据池在每个考虑的基准测试中保持整体准确率且没有明显的退化为当前领域引入有价值的多样性为了量化多样性作者定义了一个称为相似度评分的指标用于衡量新数据源与当前数据池之间的相关性其定义如下其中是新数据源的索引包含个样本而是现有数据池的索引包含个样本表示数据类别仅在同一类别内计算相似度分数因为不同类别之间的相似度通常较低图像嵌入和由SSCD [178]生成而文本嵌入和由all-mpnet-base-v2 [179]生成样本之间的相似度分数是图像和文本相似度的乘积该指标显示大多数来源的相似度较低部分高相似度样本已作为重复项被移除且按照Eagle 2的数据收集协议和以下所述的优化步骤Eagle 2的最终模型在阶段1.5中使用了2160万样本在阶段2中使用了460万样本其分布如图4所示且作者确保纯文本数据占比超过20%在阶段1.5中字幕描述数据占比最大然而在阶段2中出于对过于单一指令的担忧而减少了字幕描述数据的比例2.2.1.2 数据过滤正如一粒老鼠屎坏掉一锅粥公开数据集通常包含大量低质量样本作者发现大多数低质量案例主要属于以下几类作者据此制定了筛选标准问题-答案对不匹配。例如来自 ShareGPT4o [28]的图 5(a)不相关的图像-问题对图像和问题无关。例如图5(b)来自 Cambrian-1 [16]重复的文本。例如图5(c)来自 ShareGPT数字格式问题小数位数过多或数值答案过于精确但图像中缺乏对应信息。例如图6总之由于大多数低质量数据是通过合成生成的因此它们通常具有一些特征使得可以通过基于规则的过滤方法将其识别并剔除2.2.1.3 子集选择子集选择——“每个数据都有其代价”。选择最佳子集是高质量训练的关键。最近的研究[16-Cambrian-1]表明应限制每个数据源的样本数量通常不超过例如350KEagle 2的数据选择基于两个主要原则子集数量确定数据源的多样性和分布决定了样本集的规模自动标注的数据源通常规模较大但常存在错误且多样性不足相比之下人工标注的数据集往往规模较小因此原始规模较大的数据集通常使用较小的采样比例在Eagle 2的阶段2数据中每个来源的平均规模约为20K其中最大的子集Visual-WebInstruct [56]具有263K个样本K-means 聚类选择一旦确定了子集的规模下一步就是选择样本。目前的方法通常采用随机选择但这种方式并不理想例如在图表数据中直方图样本比折线图或饼图等其他类型更为常见而随机抽样无法确保这些类型的均衡覆盖为了解决这个问题作者对 SSCD [178] 图像嵌入特征实施了无监督的K-means 聚类将具有相似图表类型的样本聚集在相邻空间从而便于有针对性地选择数据例如根据需要包含所有的折线图和饼图样本虽然使用 SSCD 图像嵌入方法K-means 聚类在自然场景图像上表现较差但在数学、医学和基于文档的数据上表现出色2.2.1.4 数据增强与数据格式化首先数据增强旨在挖掘输入图像中现有问答标注未能充分体现的丰富信息为了从图像空间中挖掘潜在有用的信息一种常见的方法是使用第三方视觉语言模型VLMs生成图像的细粒度描述如图7所示(为方便大家更好的理解我特地把原图和对原图的翻译 放在了一块)添加思维链(Chain-of-Thought)解释说明基于规则的QA生成将简短的回答扩展为详细回答有关上述生成过程的详细信息请参阅补充材料其次数据格式化将数据转换为正确的格式也是数据准备中的一个关键步骤基本原之一是相同任务相似格式不同任务明确区分格式故Eagle 2的数据格式化包括但不限于去除不必要的装饰比如在表3中展示了一个看似不起眼的示例『两个具有相同「从图像提取LaTeX」任务但格式不同的样本集』然而该示例对最终结果产生了深远影响作者展示了来自不同来源的两个样本用于从图像中提取 LaTeX 公式其中的第二个样本包含了一个不必要的固定方程环境——即使仅有限度地使用此类数据模型仍会持续输出固定的模板(以红色文本显示)——意思就是说 上面那段红色文本所示的固定方程格式 没有意义直接删掉更好在移除固定的方程环境后模型恢复了正常行为在 OCRBench [180] 上取得了显著的改进添加更具体的指令根据回复在原始指令中添加详细说明是一种常见的做法例如在简短的回答后添加“提供简短答案”有助于防止模型变成只会给出简短回答的“回答机器”。然而过度使用这种方法也可能妨碍模型的泛化能力。比如对每个是或否的问题都添加“请回答是或否”可能会削弱模型在推理过程中没有此类提示时正确回答的能力2.2.2 训练方法上面的一系列数据策略使Eagle 2能够构建一个高质量且多样化的数据集但对同一数据池应用不同的训练方法仍然对最终结果有决定性影响回顾一下上文2.1.1节中对Eagle 2三阶段训练的阐述第一阶段阶段1用于通过训练MLP连接器对齐语言和图像模态接下来的阶段阶段1.5使用大规模多样化数据训练完整模型且在阶段1.5中整合了所有可用的视觉指令数据而不仅限于字幕或知识数据最后阶段阶段2继续使用精心设计的高质量视觉指令调优数据集训练完整模型故作者基于以下核心要点首先后预训练阶段是必要的作者最初采用了LLaVA[4] 的两阶段训练策略其中首先训练一个MLP连接器然后使用SFT数据进行完整模型训练尽管这种方法高效但对于快速更新SFT数据来说并不适用因为SFT数据的不断扩展使得难以追踪新数据的影响并降低了实验效率。例如作者注意到扩充Cambrian-1 [16] SFT数据后模型有所提升然而模型与最先进的模型之间仍存在差距鉴于两阶段策略的主要局限在于缺乏稳健的预训练作者增加了一个额外的预训练阶段阶段1.5。阶段1.5在更大的数据集上对模型进行预训练以减少后续训练中对SFT数据的依赖其次大轮驱动小轮事实上三阶段预训练在现有研究中被广泛采用例如 LLaVA-OneVision [17]然而对于在Stage-1.5阶段使用的数据作者的观点截然不同具体而言其他研究倾向于在这一阶段使用更多与知识相关的数据比如图像描述数据但在本工作中作者将所有用于视觉指令的数据源添加到Stage-1.5同时引入如表2b所示的其他几个数据集如Fig.8所示在Stage-1.5的基础上随后再进行Stage-2的训练从而使得能够在高性能的基础上实现更快的迭代「As shown in Fig. 8, training Stage-2 based onStage-1.5 enables rapid iteration on a high-performancefoundation」由此得出的结论比那些在小规模数据上进行的无法推广的消融实验所得出的结论更可靠此外从Stage-2中得出的有效结论可以用来更新Stage-1.5从而进一步推动模型性能的提升。详细设置如表4所示再者平衡感知的数据打包非常重要数据打包通过将较短的样本连接在一起从而减少填充的使用可以加速训练。在作者的实验中使用数据打包使训练速度提高了2-3倍打包的一个关键步骤是将长度不同的个短样本排列成个长样本并且不超过最大长度。现有的框架如LLaMa-Factory使用了一种简单的贪心背包算法但这通常会产生长度分布不均的问题如图9所示「将64个长度不同的样本打包成组合样本每个样本的长度小于8192。在LLaMa-Factory [181] 中使用的简单贪婪背包方法(下图图a所示)会导致长度分布不均而Eagle 2提出的方法在每个背包中实现了更均匀的长度分布(下图图b所示」传统的贪婪背包方法将长样本和短样本分别分组这对于模型训练来说并不理想因此作者设计了一种平衡感知贪心背包算法该算法生成长度分布更均匀的包如图10所示——它将一组样本每个样本有规定的长度尽可能平衡地分配到多个“背包”中每个背包的最大容量为确保每个包中既包含长样本也包含短样本为方便大家更好的理解我特地在原论文代码的基础上给代码的每一行 都加上了中文注释与SPFHPShortest-Pack-First Histogram Packing[182]不同Eagle 2的方法优先考虑长度分布的平衡性而不是打包效率从而帮助平衡长样本和短样本之间的损失权重更多细节见附录2.2.3 视觉编码器的分块混合参考 Eagle [22]作者使用 SigLIP [23-Sigmoid loss for language image pre-training] 和ConvNeXt-XXLarge [24,183] 作为视觉编码器此外为了处理任意高分辨率图像作者按照InternVL-1.5 [21] 的方法进行图像切块(image tiling)SigLIP 的每个图像块输入分辨率为448×448而 ConvNeXt 的输入尺寸为 512×512另为确保它们输出相同数量的图像 token对SigLIP 的图像特征使用 PixelShuffle 进行 2×下采样使其特征尺寸变为 16×16从而与 ConvNeXt的输出尺寸(对输入进行 32×下采样)相匹配随后在通道维度上拼接这些特征并通过一个MLP 层与 LLM 对齐经作者实验论证引入视觉编码器的混合在14个基准测试中的12个上带来了性能提升特别是在与文档、图表和OCR相关的基准测试中。这清楚地表明视觉编码器的混合显著增强了模型对视觉空间的理解能力// 待更第三部分 Eagle 2.5// 待更
Eagle 2——MLP连接SigLIP-So400m/ConvNeXt和Qwen:GR00T N1中则组合SigLIP2和SmolLM2(含Eagle和Eagle 2.5)
前言本文一开始是此文《多模态LLaVA系列与Eagle 2——从组合CLIP ViT和Vicuna的LLaVA到英伟达开源的VLM Eagle 2(用于人形VLA GR00T N1中)发布于25年5月》的第二部分当时的前言是之所以写本文源于两个方面一方面我司「七月在线」准备在一个人形项目中试下英伟达通用人形VLA GR00T N1而GR00T N1中所用的VLM是他们自家于25年1月发布的Eagle 2二方面Eagle 2的理念特别好如其在摘要中所说的近年来开源视觉语言模型VLMs在将其能力接近专有前沿模型方面取得了有希望的进展然而大多数开源模型仅发布其最终的模型权重数据策略和实现的关键细节仍然不透明在Eagle 2的这项工作中作者从数据为中心的角度解决VLM的后训练问题展示数据策略在开发前沿VLMs中的关键作用且通过从头开始研究和构建我们的后训练数据策略作者分享了开发过程中的详细见解且Eagle2-9B宣称在各种多模态基准上取得了最先进的结果与参数量高达70B的某些竞争模型相匹敌于此本文来了顺带感谢具身智能让我有了再次奋战几十年的热情与动力也感谢大模型与具身智能让我凭借过去三年 每天当三天的拼命/努力而有了足够大的底气 自信 实力——全靠勤奋考虑到1 Eagle 2.5也出来了2 LLaVA的重要性故把这两部分分开独立各自成文比较好故也有了本文第一部分 Eagle1.1 Eagle的一系列设计方案1.1.1 基础设置包含基础训练数据、基础训练方案根据Eagle的论文《Eagle: Exploring The Design Space for MultimodalLLMs with Mixture of Encoders》可知作者采用了LLaVA-1.5Liu等2023c的模型架构作为基础该架构包括一个大型语言模型Vicuna-v1.5 7B一个视觉编码以及一个投影层投影层将视觉编码器生成的视觉嵌入映射到文本嵌入空间首先对于基础训练数据作者在第一阶段的预训练中采用与 LLaVA-1.5Liu 等2023c相同的预训练数据集LLaVA-595k该数据集包含 59.5 万组图文对为了充分探索不同视觉专家和融合方法的潜力作者没有使用 LLaVA-1.5中的 SFT 数据而是从一系列任务中收集数据并将其转换为多模态对话用于监督微调SFT阶段这部分数据在表 1 中「表1中表明了基础有监督微调数据Eagle1.8M的组成」记为 Eagle1.8M其次对于基础训练方案作者采用LLaVA-1.5Liu等2023c的方法首先使用图文对进行一次轮次的预训练批量大小为256在该预训练阶段整个模型被冻结仅更新投影层第二阶段作者在多模态对话数据上进一步微调模型同样进行一次轮次训练批量大小为128且学习率分别设置为第一阶段1e-3第二阶段2e-51.1.2 更强大的CLIP编码器作者首先通过升级vanilla CLIP(Radford等2021)模型来展开探索因为它已成为大多数MLLMs(Liu等2023dc)的标准选择虽然CLIP模型因其文本-图像对齐能力而有利于多模态任务但它们也存在固有的缺陷。例如许多现有的MLLMs(Liu等2023c)往往采用预训练CLIP的分辨率(如224×224或336×336)作为输入分辨率在这些情况下编码器通常无法捕捉对分辨率敏感任务(如OCR和文档理解Li等2024c)关重要的细粒度细节为应对输入分辨率的提升常用的方法包括将输入图像分割为多个小块tiles并分别编码比如Liu等2024a再比如Li等2024c或者直接对视觉Transformer模型的位置嵌入进行插值以适配高分辨率输入比如Chen等2023c;d再比如Beyer等2024作者在不同分辨率下对冻结/未冻结的视觉编码器采用上述两种方法进行了比较结果如表2所示作者的主要发现总结如下在SFT 过程中更新CLIP 编码器在高分辨率下显著提升了性能但在使用预训练分辨率时略有下降将CLIP 编码器插值以适应输入尺寸为448 × 448 在效率和性能之间提供了良好的平衡其性能仅略低于672 × 672 版本但所需token 数量不到一半尽管其规模较小(0.3B 对5.9B)且预训练数据较少CLIP 编码器通过插值方法在相同设置下接近InternVLChen 等2023f的性能根据结果可以看出直接插值到448×448能够在效率更高的同时实现有竞争力的性能。因此作者在SFT阶段解锁编码器时采用输入分辨率为448×448的CLIP编码器1.2.3 视觉专家// 待更第二部分 Eagle 2SigLIP-So400m/ConvNeXt 双骨干 Qwen2.5-7B-Instruct2.1 提出背景与相关工作2.1.1 引言如何构建足够具有竞争力的VLM基于大型语言模型LLMs视觉-语言模型VLMs[1,2,3,4]旨在赋予LLMs“看”的能力通过具备对世界的视觉感知能力VLMs能够接收多模态信息从而应对更广泛的智能应用。例如智能体[5-Cogagent]、自动驾驶[6-DriveVLM,7-LingoQA]以及具身人工智能[8-RT-2,9-Palm-e,10- OpenVLA]等社区已经深入研究了VLM的架构和训练方法并取得了显著进展目前使视觉与语言模态对齐的主要策略是基于对预训练大语言模型LLM进行后训练其中LLaVA系列[4]是代表性例子根据透明度的不同当前的VLM模型也可以大致分为三类商业闭源模型例如GPT-4v/o[11]和Claude[12]具有公开权重的前沿模型例如Qwen2-VL[13]、InternVL2[14]和Llama 3.1[15]以及完全开源模型例如Cambrian-1[16]和LLaVA系列[4,17]但不太幸的是完全开源的LLaVA-OneVision-72B [17]仍略逊于半开源的InternVL2-40B [14]那如何构建足够具有竞争力的VLM呢Eagle 2的作者们认为有以下三大关键点数据策略“多样性优先然后是质量”——Eagle 2在整个开发过程中始终遵循这一原则并将其贯彻到极致他们对数据的优化持续带来模型性能的提升。包括1数据收集策略构建了涵盖180多个来源的大规模高多样性数据池2通过数据过滤策略剔除低质量样本3利用数据选择策略构建高质量子集4应用一系列数据增强技术丰富现有数据模型架构比如尽管存在诸如 Q-Former [19] 和 Hybrid-Attention [20] 等多种设计简单的 MLP 连接器仍然是连接视觉编码器与大语言模型(LLM)最常用的选择Despite various designs such as Q-Former [19] andHybrid-Attention [20], simple MLP connector is still themost popular choice to connect the vision encoder andLLM.2层MLP加上GELU激活函数就像是一个缓冲兼翻译官能在视觉 Token 还没进入 LLM 之前先进行一次非线性的解耦与语义映射让视觉和文本在数学表征上结合得更自然、更深——再比如受InternVL [21,14]、Eagle [22]和Cambrian-1 [16]等工作的启发Eagle 2采用以视觉为中心的设计将动态拼接Dynamic tiling和视觉编码器混合(MoVE)结合于一个统一架构中具体而言每个图像块由通道级拼接的MoVE进行编码从而在实现高分辨率输入的同时保持MoVE的强大感知能力Specifically, each imagetile is encoded by channel-concatenated MoVE, therefor eallowing high-resolution input from tiling while maintain-ing the robust perception from MoVE且类似于[22]Eagle 2的视觉编码器部分采用了“SigLIP [23-Sigmoid loss for language image pre-training] X (ConvNeXt[24])”的配置相比单独使用SigLIP拼接MoVE在具备分块的情况下实现了显著的性能提升尤其在OCR和图表/文档VQA等任务中表现突出Compared to SigLIP alone, tiled MoVE yields significant improvements despite having tiling, particularly in tasks like OCR and Chart/Document VQA——————由于Eagle 2的原论文并没有一个清晰可见的完整模型架构图(至于论文中的图11-详见下文2.2.3节尚不够完整)故为了方便大家理解我特地把其模型架构图画了一下供大家参考1输入图像动态分块Tiling- 产生N个图像块Ni×ji×j≤122对于每个图像块同时输入两个视觉编码器SigLIP和ConvNeXt每个编码器会相应的调整图像块的大小至所需输入尺寸SigLIP分支调整至448x448 - SigLIP - 特征图32x32- PixelShuffle下采样2倍 - 16x16ConvNeXt分支调整至512x512 - ConvNeXt - 特征图16x163将两个特征图拼接通道维度通过MLP连接器 - 输出256个视觉token相当于通过MLP连接器对齐到LLM输入维度4将所有图像块的视觉token拼接 - 总视觉token序列N*256个token输入LLMPS根据论文视觉token数量为 (i×j1)×256但本图仅展示了分块分支的 i×j×256 个视觉token额外的256个视觉token来源未明确当然在GR00T N1中该模型结构则被改造了下如下表格所示架构维度Eagle 2标准版(源自Eagle2 paper)Eagle 2 具身版(源自GR00T N1 paper)论文定位探索前沿 VLM 的后训练数据策略与通用视觉理解作为通用双臂/人形机器人大脑System 2提供实时视觉语义视觉编码器 (Vision)SigLIP-So400m ConvNeXt 双骨干怎么知道的是SigLIP-So400m是依据Eagle 2原论文中的表1详见下文「2.2.0 基线设置」SigLIP-2单专家升级版编码器语言骨干LLMQwen2.5-7B-InstructSmolLM2(特化端侧轻量小语言模型)训练配方虽然最先进的VLM [25-Qwen2-VL,14-InternVL2,26- Gpt-4 technical report]的训练配方不太明确但现有研究[16-Cambrian-1,4-Visual instruction tuning,17-Llava-onevision]分享的细节可以提供一个可靠的基线为了进一步提升模型性能Eagle 2采用三阶段训练策略以最大化利用训练数据具体而言第一阶段阶段1通过训练MLP连接器实现语言模态和图像模态的对齐接下来的阶段阶段1.5使用大规模多样化的数据对完整模型进行训练且在阶段1.5中整合了所有可用的视觉指令数据而不仅仅局限于描述或知识类数据最后阶段阶段2继续使用精心构建的高质量视觉指令调优数据集训练完整模型即The final stage (Stage-2) continues training the full model with a carefully crafted, high-quality visual instructiontuning dataset最终Eagle 2 模型家族涵盖了各种规模包括 1B、2B 和9B 参数2.1.2 相关工作第一对于视觉-语言模型和大语言模型[187,188,3]其彻底改变了NLP领域并重塑了更广泛的人工智能格局LLMs 的进步通过将视觉特征与 LLMs 融合推动了视觉理解领域的重大突破催生了视觉-语言模型VLMs[189,11,4,190]具有公开可用权重的VLMs[4,3,191,192,193,17,194,14,25,195,15,196,197,198,199]的性能在持续取得突破达到了甚至超越了GPT-4V/4o [184,11] 和Gemini-1.5 [185]完全开源的 VLMs[17,16,200] 发布了他们的训练数据和代码库进一步加速了 VLM 的研究第二对于以视觉为中心的VLMsVLMs的视觉基础[201,202,203]和改进设计[204,23,195,205,206,207]混合视觉编码器设计[208,209,210,211,212,16,22]以及平铺和高清输入设计[213,214,215,216,21,193,194,217,14,25]据所知这项工作是首次探索平铺混合视觉编码器MoVE设计该设计被证明继承了两种方法的优势。提出的平铺MoVE设计还引入了额外的灵活性以结合先进的视觉基础模型第三对于VLMs中的数据工作数据策略在训练VLMs中至关重要包括数据集构建、平衡和过滤以及训练方法的各个方面早期探索如LLaVA-150K [4] 使用了GPT-4 [11]的指令调优后来研究[218,219,193,204]通过通过将多任务学术训练数据融入监督微调阶段实现了改进研究还扩展了数据类型至视频[220,15]、多图输入[17,14]、图文交错数据[221,222]、多语言数据[186]和合成数据集[15]然而单纯扩展数据集可能会因质量和规模差异而对模型性能产生负面影响诸如Instruct-BLIP[219]和Cambrian-1 [16]之类的方法通过设计最佳数据比例和平衡技术来解决这一问题而其他方法如Llama3[15]和Molmo [223]则通过使用SSCD [178]去重和引入人工标注的图像来提升数据质量此外训练策略也在不断发展LLaVA [4]提出了一个成为标准的两阶段训练过程后来的模型[17-Llava-onevision]引入了中间阶段VLM的综述[224,225,226]也讨论了用于构建VLM的各种训练方法和数据策略但它们缺乏定性分析未能为训练前沿VLM提供足够细致的路径指引2.2 完整方法论数据策略、训练方法、视觉编码器的平铺混合2.2.0 基线设置Siglip-400M、MLP、Qwen2.5-7B-instruct如表1所示Eagle 2的初始基线从Cambrian数据集[16]开始使用LLaVA的[4]两阶段训练方法作者从Cambrian-7M中移除了一些低质量数据例如ShareGPT-4V、GPT-77K和Data-Engine-161K最终得到包含520万条样本的子集该模型通过MLP连接器将视觉编码器与LLM相连接并采用image tiling以实现动态分辨率且基于此基准框架作者从三个关键维度增强了Eagle 2数据策略训练方法模型架构关于siglip-so400详见《图文对比学习的发展史从CLIP、BLIP、BLIP2、InstructBLIP到具身模型常用的SigLIP(含siglip-so400m的详解)、SigLIP2》的此节『2.4 SigLIP-So400m的原始论文SoViT(Shape-Optimized ViT)』2.2.1 数据策略数据收集、数据过滤、数据选择、数据增强训练数据对于定义VLM的能力至关重要然而大多数商业VLM以及那些公开权重的主流VLM其数据策略通常被保密下图图3展示了Eagle 2的整体数据策略「上部分显示数据收集流程下部分显示数据优化流程」包括两个核心组成部分数据收集和现有数据的优化2.2.1.1 数据收集对于数据收集其多样性是关键。一个模型的能力与数据的多样性强烈相关。因此尽可能收集多样化的数据是本研究的核心原则这也引出了两条主要策略被动收集持续关注arXiv论文和HuggingFaceDatasets中的最新相关数据集并将其加入的候选列表主动搜索解决桶效应。如上图图3所示每次更新数据池时作者都会进行误差分析以识别模型的薄弱环节并有针对性地搜索新的数据最终Eagle 2的多样化数据来源在表2a中进行了总结并且通常是公开可用的。且利用了一些预先组织的数据集集合[16,17,151]来加速准备工作但也进行了仔细检查以防止诸如测试数据泄露等问题此外他们还收集了大量的公共非问答数据例如Google Landmark[31]并通过特定规则或自动标注工具将其转换为VQA数据另为了降低训练成本避免对每个数据集单独进行消融实验。相反当满足以下条件时将领域相似的数据集批量加入数据池在每个考虑的基准测试中保持整体准确率且没有明显的退化为当前领域引入有价值的多样性为了量化多样性作者定义了一个称为相似度评分的指标用于衡量新数据源与当前数据池之间的相关性其定义如下其中是新数据源的索引包含个样本而是现有数据池的索引包含个样本表示数据类别仅在同一类别内计算相似度分数因为不同类别之间的相似度通常较低图像嵌入和由SSCD [178]生成而文本嵌入和由all-mpnet-base-v2 [179]生成样本之间的相似度分数是图像和文本相似度的乘积该指标显示大多数来源的相似度较低部分高相似度样本已作为重复项被移除且按照Eagle 2的数据收集协议和以下所述的优化步骤Eagle 2的最终模型在阶段1.5中使用了2160万样本在阶段2中使用了460万样本其分布如图4所示且作者确保纯文本数据占比超过20%在阶段1.5中字幕描述数据占比最大然而在阶段2中出于对过于单一指令的担忧而减少了字幕描述数据的比例2.2.1.2 数据过滤正如一粒老鼠屎坏掉一锅粥公开数据集通常包含大量低质量样本作者发现大多数低质量案例主要属于以下几类作者据此制定了筛选标准问题-答案对不匹配。例如来自 ShareGPT4o [28]的图 5(a)不相关的图像-问题对图像和问题无关。例如图5(b)来自 Cambrian-1 [16]重复的文本。例如图5(c)来自 ShareGPT数字格式问题小数位数过多或数值答案过于精确但图像中缺乏对应信息。例如图6总之由于大多数低质量数据是通过合成生成的因此它们通常具有一些特征使得可以通过基于规则的过滤方法将其识别并剔除2.2.1.3 子集选择子集选择——“每个数据都有其代价”。选择最佳子集是高质量训练的关键。最近的研究[16-Cambrian-1]表明应限制每个数据源的样本数量通常不超过例如350KEagle 2的数据选择基于两个主要原则子集数量确定数据源的多样性和分布决定了样本集的规模自动标注的数据源通常规模较大但常存在错误且多样性不足相比之下人工标注的数据集往往规模较小因此原始规模较大的数据集通常使用较小的采样比例在Eagle 2的阶段2数据中每个来源的平均规模约为20K其中最大的子集Visual-WebInstruct [56]具有263K个样本K-means 聚类选择一旦确定了子集的规模下一步就是选择样本。目前的方法通常采用随机选择但这种方式并不理想例如在图表数据中直方图样本比折线图或饼图等其他类型更为常见而随机抽样无法确保这些类型的均衡覆盖为了解决这个问题作者对 SSCD [178] 图像嵌入特征实施了无监督的K-means 聚类将具有相似图表类型的样本聚集在相邻空间从而便于有针对性地选择数据例如根据需要包含所有的折线图和饼图样本虽然使用 SSCD 图像嵌入方法K-means 聚类在自然场景图像上表现较差但在数学、医学和基于文档的数据上表现出色2.2.1.4 数据增强与数据格式化首先数据增强旨在挖掘输入图像中现有问答标注未能充分体现的丰富信息为了从图像空间中挖掘潜在有用的信息一种常见的方法是使用第三方视觉语言模型VLMs生成图像的细粒度描述如图7所示(为方便大家更好的理解我特地把原图和对原图的翻译 放在了一块)添加思维链(Chain-of-Thought)解释说明基于规则的QA生成将简短的回答扩展为详细回答有关上述生成过程的详细信息请参阅补充材料其次数据格式化将数据转换为正确的格式也是数据准备中的一个关键步骤基本原之一是相同任务相似格式不同任务明确区分格式故Eagle 2的数据格式化包括但不限于去除不必要的装饰比如在表3中展示了一个看似不起眼的示例『两个具有相同「从图像提取LaTeX」任务但格式不同的样本集』然而该示例对最终结果产生了深远影响作者展示了来自不同来源的两个样本用于从图像中提取 LaTeX 公式其中的第二个样本包含了一个不必要的固定方程环境——即使仅有限度地使用此类数据模型仍会持续输出固定的模板(以红色文本显示)——意思就是说 上面那段红色文本所示的固定方程格式 没有意义直接删掉更好在移除固定的方程环境后模型恢复了正常行为在 OCRBench [180] 上取得了显著的改进添加更具体的指令根据回复在原始指令中添加详细说明是一种常见的做法例如在简短的回答后添加“提供简短答案”有助于防止模型变成只会给出简短回答的“回答机器”。然而过度使用这种方法也可能妨碍模型的泛化能力。比如对每个是或否的问题都添加“请回答是或否”可能会削弱模型在推理过程中没有此类提示时正确回答的能力2.2.2 训练方法上面的一系列数据策略使Eagle 2能够构建一个高质量且多样化的数据集但对同一数据池应用不同的训练方法仍然对最终结果有决定性影响回顾一下上文2.1.1节中对Eagle 2三阶段训练的阐述第一阶段阶段1用于通过训练MLP连接器对齐语言和图像模态接下来的阶段阶段1.5使用大规模多样化数据训练完整模型且在阶段1.5中整合了所有可用的视觉指令数据而不仅限于字幕或知识数据最后阶段阶段2继续使用精心设计的高质量视觉指令调优数据集训练完整模型故作者基于以下核心要点首先后预训练阶段是必要的作者最初采用了LLaVA[4] 的两阶段训练策略其中首先训练一个MLP连接器然后使用SFT数据进行完整模型训练尽管这种方法高效但对于快速更新SFT数据来说并不适用因为SFT数据的不断扩展使得难以追踪新数据的影响并降低了实验效率。例如作者注意到扩充Cambrian-1 [16] SFT数据后模型有所提升然而模型与最先进的模型之间仍存在差距鉴于两阶段策略的主要局限在于缺乏稳健的预训练作者增加了一个额外的预训练阶段阶段1.5。阶段1.5在更大的数据集上对模型进行预训练以减少后续训练中对SFT数据的依赖其次大轮驱动小轮事实上三阶段预训练在现有研究中被广泛采用例如 LLaVA-OneVision [17]然而对于在Stage-1.5阶段使用的数据作者的观点截然不同具体而言其他研究倾向于在这一阶段使用更多与知识相关的数据比如图像描述数据但在本工作中作者将所有用于视觉指令的数据源添加到Stage-1.5同时引入如表2b所示的其他几个数据集如Fig.8所示在Stage-1.5的基础上随后再进行Stage-2的训练从而使得能够在高性能的基础上实现更快的迭代「As shown in Fig. 8, training Stage-2 based onStage-1.5 enables rapid iteration on a high-performancefoundation」由此得出的结论比那些在小规模数据上进行的无法推广的消融实验所得出的结论更可靠此外从Stage-2中得出的有效结论可以用来更新Stage-1.5从而进一步推动模型性能的提升。详细设置如表4所示再者平衡感知的数据打包非常重要数据打包通过将较短的样本连接在一起从而减少填充的使用可以加速训练。在作者的实验中使用数据打包使训练速度提高了2-3倍打包的一个关键步骤是将长度不同的个短样本排列成个长样本并且不超过最大长度。现有的框架如LLaMa-Factory使用了一种简单的贪心背包算法但这通常会产生长度分布不均的问题如图9所示「将64个长度不同的样本打包成组合样本每个样本的长度小于8192。在LLaMa-Factory [181] 中使用的简单贪婪背包方法(下图图a所示)会导致长度分布不均而Eagle 2提出的方法在每个背包中实现了更均匀的长度分布(下图图b所示」传统的贪婪背包方法将长样本和短样本分别分组这对于模型训练来说并不理想因此作者设计了一种平衡感知贪心背包算法该算法生成长度分布更均匀的包如图10所示——它将一组样本每个样本有规定的长度尽可能平衡地分配到多个“背包”中每个背包的最大容量为确保每个包中既包含长样本也包含短样本为方便大家更好的理解我特地在原论文代码的基础上给代码的每一行 都加上了中文注释与SPFHPShortest-Pack-First Histogram Packing[182]不同Eagle 2的方法优先考虑长度分布的平衡性而不是打包效率从而帮助平衡长样本和短样本之间的损失权重更多细节见附录2.2.3 视觉编码器的分块混合参考 Eagle [22]作者使用 SigLIP [23-Sigmoid loss for language image pre-training] 和ConvNeXt-XXLarge [24,183] 作为视觉编码器此外为了处理任意高分辨率图像作者按照InternVL-1.5 [21] 的方法进行图像切块(image tiling)SigLIP 的每个图像块输入分辨率为448×448而 ConvNeXt 的输入尺寸为 512×512另为确保它们输出相同数量的图像 token对SigLIP 的图像特征使用 PixelShuffle 进行 2×下采样使其特征尺寸变为 16×16从而与 ConvNeXt的输出尺寸(对输入进行 32×下采样)相匹配随后在通道维度上拼接这些特征并通过一个MLP 层与 LLM 对齐经作者实验论证引入视觉编码器的混合在14个基准测试中的12个上带来了性能提升特别是在与文档、图表和OCR相关的基准测试中。这清楚地表明视觉编码器的混合显著增强了模型对视觉空间的理解能力// 待更第三部分 Eagle 2.5// 待更