访问集合很重要:可扩展权重空间模型合并的专家读取预算规划 Access Sets Matter: Budgeting Expert Reads for Scalable Weight-Space Model Merging
通过预算感知的专家权重访问控制,实现大规模LLM模型合并的I/O高效执行
前置知识
权重空间模型合并
权重空间模型合并是一种后训练技术,通过代数操作将多个检查点或任务向量合并成一个可部署模型,无需集成或重新训练。常见方法包括模型汤(Model Soups)的简单平均、TIES的干扰感知合并、DARE的稀疏化合并等。这些方法直接操作模型的权重参数,在共享的权重坐标系中进行合并。对于从同一基础模型微调得到的专家模型,权重空间合并可以直接组合它们学到的任务特定知识。
这是本文的核心应用场景。理解权重空间合并的基本原理和常用方法(AVG、TIES、DARE)是理解 MergePipe 的基础。MergePipe 并不发明新的合并规则,而是提出了在这些合并操作之上的访问控制抽象层。
检查点家族
检查点家族是指从同一基础模型派生出的一系列模型变体,包括基础模型本身、指令微调变体、领域专家模型、适配器或增量更新等。这些变体通常共享相同的架构和权重空间布局,只是在不同的数据或任务上进行了微调。例如,Qwen 系列或 Llama 系列的各种微调版本就形成了检查点家族。它们可以被视为权重空间中的数据集,适合进行模型合并操作。
这是 MergePipe 的适用场景。当检查点家族规模较小(K < 5)时,全量读取的 I/O 开销可以接受。但当专家数量增长到 20-25 个时,I/O 成为瓶颈,MergePipe 的价值才显现。理解检查点家族的结构和规模特征,有助于理解实验设计的合理性。
访问掩码
访问掩码 A ∈ {0, 1}^{|U|} 是 MergePipe 的核心抽象,其中 |U| = {(i, t, b) : i ∈ [K], t ∈ T, b ∈ B_t} 是所有可能的(专家、张量、块)三元组的集合。掩码元素 A_{i,t,b} = 1 表示在合并过程中读取专家 i 的张量 t 的块 b,=0 则表示跳过该块。每个读取操作有物理成本 c_{i,t,b}(通常以字节为单位),因此总专家读取成本为 C_{expert}(A) = Σ A_{i,t,b} c_{i,t,b}。合并问题转化为在预算 B 下选择掩码 A 使得 C_{expert}(A) ≤ B,同时尽可能保留合并质量。
这是 MergePipe 的核心创新。传统合并方法隐含地使用 A = 1(全量读取),而 MergePipe 显式地将访问选择作为一个决策问题。理解掩码的形式化和成本模型,是理解预算感知合并的关键。
研究动机
现代 LLM 开发产生了越来越多的检查点家族:一个共享的基础模型、指令微调变体、领域专家以及适配器或增量更新。这些家族正在成为权重空间数据集,模型合并作为一种后训练原语可以将它们整合成一个可部署模型而无需集成或另一次完整训练。大多数合并工作关注任务向量、符号、稀疏掩码或低秩更新应该如何组合。然而,对于 LLM 规模的检查点家族,一个同样重要的执行问题出现了:如何实现一个合并?朴素合并脚本将检查点视为不透明文件,扫描所有专家参数,应用 AVG、TIES 或 DARE 等规则,然后写入输出。随着专家池的增长,这个专家读取项与专家数量 K 呈近线性关系增长,使得迭代合并成为 I/O 限制而非计算限制。
本文的目标是本文的目标是引入 MergePipe,一个预算感知的执行框架,将合并操作和专家检查点家族转换为共享权重坐标系统中的层集问题,在显式 I/O 预算下选择访问哪些专家增量块。MergePipe 对参数块进行索引,构建确定性访问计划,并通过可重现的清单执行诱导的预算合并。计划通过构造保证预算合理,并在完整预算下恢复全量读取合并;对于固定系数加法运算符,省略更新的误差以省略增量的范数为界。目标是实现在 Qwen 和 Llama 合并工作负载中,将专家读取 I/O 减少多达一个数量级,并实现高达 11 倍的加速。
与已有工作不同的是,本文的独特切入角度是:LLM 规模的合并需要权重访问抽象,而不仅仅是更好的合并规则。现有工作专注于如何合并权重(算法层面),而忽略了哪些权重必须被读取(系统层面)。MergePipe 将专家增量视为预算资源,将哪些块被访问与如何组合被访问的增量解耦。全量读取合并固定访问掩码 A = 1;预算合并在成本 C_{expert}(A) ≤ B 下选择访问掩码 A,并执行诱导的掩码感知运算符 Ψ_{op}。被省略的条目由掩码编码,不触发存储读取。因此,全预算执行恢复标准合并,而较低预算定义了明确的近似并暴露出速度-保真度前沿。
核心方法
MergePipe 的核心思想是将专家访问集作为权重空间模型合并的预算资源。方法整体分为三个阶段:catalog(索引)、plan(规划)、execute(执行)。Catalog 阶段将检查点作为块结构化权重数据而非不透明文件暴露,为每个张量块存储大小、布局、哈希和轻量级统计信息(如草图或覆盖提示)。这些可重用的元数据允许在不重复扫描所有专家检查点的情况下进行成本估计和访问规划。Planner 阶段构造满足 C_{expert}(A) ≤ B 的访问掩码 A,使用目录统计对候选专家增量进行排名,并在专家 I/O 预算下选择块。Executor 阶段按检查点顺序流式传输基础块,使用 DeltaIterator 仅从完整检查点、显式增量或 LoRA 风格适配器中物化选定的专家增量,对每个块应用掩码感知运算符,并记录触摸的块、贡献专家和实现的 I/O。
核心创新点是引入专家访问集作为权重空间模型合并的预算资源,并通过访问掩码 A ∈ {0, 1}^{|U|} 形式化。这与现有方法的本质区别在于:现有方法隐含地假设全量读取所有专家权重(A = 1),而 MergePipe 显式地将访问选择与合并规则解耦。掩码感知运算符 Ψ_{op,t,b}(A_{·,t,b}, Δ_{·,t,b}; ω) 只读取被掩码选中的专家增量,被省略的条目仅由掩码表示而不触发存储读取。当 A = 1 时,预算运算符恢复完整运算符(MA = M_{full});对于固定系数加法运算符,省略更新误差 ∥M_{full} - M_A∥_2 ≤ Σ_{t,b} q_{t,b}(A),其中 q_{t,b}(A) = Σ_i (1 - A_{i,t,b})|α_{i,t,b}|∥Δ_{i,t,b}∥_2。这为基于范数或草图的访问分数提供了简单依据。
方法步骤详情
MergePipe 的工作流程包括以下步骤:(1) Catalog 构造:对于每个专家检查点,将其分解为张量块,计算并存储块的元数据(大小、布局、哈希、草图、覆盖提示等)到目录中。这些元数据是可重用的,一次 ANALYZE 可服务于多次合并。(2) 规划(PLANGEN):给定专家池 {M_i}_{i=1}^K、目录 C、运算符 op 和预算 B,构建候选专家块集合 Q = {(i, t, b)},使用范数、草图、覆盖或确定性回退元数据计算分数 s(i, t, b),按分数降序排序候选,然后通过贪心策略在预算约束下选择块集合 R_π,返回计划 π = (op, θ, R_π, order)。(3) 执行(EXECUTEMERGE):开始事务 T,打开阶段写入器,对于计划中的每个张量 t,初始化 DeltaIterator,对于每个块 b,读取基础块 x_0 = S.READ_BASE_BLOCK(M_0, t, b),拉取被掩码的增量 η = D.PULL_MASKED(b, R_π),应用预算运算符 x = APPLY_BUDGETED_OP(x_0, η, π.OP(t, b)),写入块或引用,更新触摸和覆盖映射,验证哈希,构建清单 man = C.BUILD_MANIFEST(π, touch, coverage),原子发布快照 sid,提交记录。(4) 清单记录:记录快照 ID、计划哈希、触摸块、实现专家读取和谱系,支持可重现执行和审计。
技术新颖性
技术新颖性体现在多个方面:首先,首次将专家访问集作为权重空间模型合并的一等预算资源,提出了掩码感知运算符抽象,实现了访问选择与合并规则的解耦。其次,证明了预算合理性、全预算一致性和加法合并的省略更新界,提供了理论基础。第三,实现了支持 AVG、TIES、DARE 等多种合并运算符的统一访问控制框架,运算符选择在访问规划之后,展示了系统的通用性。第四,通过目录-规划-执行循环,实现了可重现的合并清单,支持审计和调试。最后,在大规模 Qwen 和 Llama 检查点家族上实现了高达数量级的专家 I/O 减少和 11 倍加速,同时保持下游性能,展示了实际价值。
实验结果
论文进行了全面的实验评估,覆盖 Qwen3-0.6B/1.7B/8B、Llama-3.2-3B 和 Llama-3.1-8B 模型,专家数量达到 20-25 个。主要发现包括:(1) 专家 I/O 和墙钟时间随专家数量 K 线性增长:在 Llama-3.1-8B 上,当 K 从 5 增加到 20 时,朴素方法的专家读取 I/O 从约 50GB 增长到约 300GB,墙钟时间从约 50秒增长到约 200秒。(2) MergePipe 在固定预算下保持专家读取平坦:在相同设置下,MergePipe 的专家读取 I/O 保持在大约 3-5GB,墙钟时间保持在约 20-40秒。(3) 运算符通用性:在 Llama-3.1-8B、K=8 上,AVG 的 I/O 从 70.7GB 减少到 3.46GB(53.0% 减少),墙钟时间从 136.2秒减少到 64.1秒;TIES 的 I/O 从 79.5GB 减少到 3.46GB(91.7% 减少),墙钟时间从 614.3秒减少到 51.1秒;DARE 的 I/O 从 79.5GB 减少到 3.46GB(54.9% 减少),墙钟时间从 99.1秒减少到 44.7秒。稀疏方法受益最大。(4) 质量保持:在 Qwen3-0.6B、TIES、K=20 上,即使预算降低到 0.5(相对于全量读取的 50%),相对 ℓ_2 偏差仍为 8.84×10^{-4},HumanEval 从 39.71 到 40.24(不降反升),IFEval 从 68.56 到 68.11,DROP 从 66.81 到 66.00,没有单调退化。(5) 系统开销:在 Qwen3-0.6B、16 专家运行中,规划时间 1.21秒(占执行的 1.04%),清单大小 812KB(可忽略),目录存储 3,468MB(占总 I/O 的 3.79%)。(6) 预算行为:随着预算从 10% 增加到 100%,实现的专家读取单调增长,访问块比率平滑扩展,墙钟时间跟随专家读取量。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| TIES 合并 (Llama-3.1-8B, K=8) | 专家读取 I/O (GB) | 3.46 | 79.5 | 95.6% 减少 |
| TIES 合并 (Llama-3.1-8B, K=8) | 墙钟时间 (秒) | 51.1 | 614.3 | 91.7% 减少 |
| AVG 合并 (Llama-3.1-8B, K=8) | 墙钟时间 (秒) | 64.1 | 136.2 | 53.0% 减少 |
| 下游质量 (Qwen3-0.6B, TIES, K=20) | HumanEval (预算 0.5) | 40.24 | 39.71 | +1.3% (不降反升) |
| 下游质量 (Qwen3-0.6B, TIES, K=20) | IFEval (预算 0.5) | 68.11 | 68.56 | -0.7% (微小损失) |
| 参数保真度 (Qwen3-0.6B, TIES, K=20) | 相对 ℓ_2 偏差 (预算 0.5) | 8.84×10^{-4} | 0 | O(10^{-3}) 级偏差 |
局限与改进
作者承认的局限性包括:(1) MergePipe 针对预算感知的权重空间访问用于检查点合并,与基于偏好优化、在线策略蒸馏或 logits 空间对齐的行为级融合方法是互补的,不解决行为对齐问题。(2) 假设专家共享公共权重坐标系统,不处理排列、对称或表示对齐。 MergePipe 依赖于预先对齐的权重或已经排列对齐的专家。(3) 预算合并是近似的:只有全预算设置恢复标准全量读取合并,较低预算依赖于掩码感知执行。其质量因此是经验性的,特别是对于 TIES 和 DARE 等非线性稀疏运算符。(4) 收益自然缩小于小专家集合、密集全量读取体制或 GPU 驻留内存融合。当 K < 5 或专家已在内存中时,I/O 优化价值有限。(5) 只约束专家读取项,基础读取和输出写入是检查点边界成本,不可优化。(6) 不支持需要全局统计(如跨所有专家的归一化)的运算符的预算化版本。我观察到的额外局限:(7) 目录构建(ANALYZE)本身是一次性的离线成本,但对于新的专家需要重新运行。(8) 质量界(命题 2)只适用于固定系数加法运算符,对于 TIES、DARE 等运算符没有理论保证,只能依赖经验评估。
独立分析的弱点
独立分析的弱点包括:(1) 规划算法贪心,不保证最优。论文使用贪心或每字节分数启发式而非精确背包优化,可能错过更好的访问计划。改进方向:实现更复杂的规划算法,如动态规划或整数线性规划求解器,特别是当专家数量较少时。(2) 缺乏自适应预算选择。用户需要手动设置预算 B,而论文没有提供自动选择预算的方法。改进方向:基于质量预算(如目标 ℓ_2 偏差)自动推断 I/O 预算,或提供搜索接口找到最佳速度-保真度权衡点。(3) 目录统计可能过时。当专家检查点更新时,目录需要重新分析。改进方向:实现增量目录更新机制,只重新分析变化的部分,或者支持检查点版本控制和自动失效。(4) 不支持跨块优化。规划是块级别的,可能错过跨块的全局优化机会。改进方向:考虑跨块依赖和联合优化,特别是对于需要全局统计的运算符。(5) 缺乏对异构存储的适配。论文假设 SSD 存储,但对于分层存储(SSD + HDD + 远程存储)可能需要更复杂的成本模型。改进方向:扩展成本模型以支持异构存储,考虑带宽延迟差异和访问模式。(6) 缺乏对分布式执行的支持。论文的实现是单进程的,对于超大规模合并(K > 100)可能不足。改进方向:支持分布式规划(分区规划然后合并)和分布式执行(并行流式传输和合并)。
未来方向
作者提出和可延伸的未来研究方向包括:(1) 扩展到更多合并运算符,如 Lore-merging(低秩合并)、Activation-informed merging、Sens-merging(敏感度引导)等,研究预算访问对这些运算符的影响。(2) 研究预算合并与后合并校准(如 FeatCal 特征校准、E-PMQ 专家引导量化)的协同,探索如何在预算约束下进行合并后优化。(3) 扩展到增量合并场景,支持持续添加新专家到已合并的模型中,而不重新合并所有专家。(4) 研究预算感知的合并在持续训练冲突(Geometry Conflict)中的作用,探索如何通过选择性访问减少冲突。(5) 扩展到多模态模型合并,研究视觉-语言模型的预算访问策略。(6) 研究预算合并与模型蒸馏的结合,探索如何在合并过程中同时进行知识蒸馏以减少模型尺寸。(7) 建立预算合并的理论框架,特别是对于非线性运算符(TIES、DARE)的质量界限。(8) 开发自动预算选择工具,基于目标质量或目标吞吐量自动推荐最佳预算。(9) 研究预算合并在模型联邦学习和分布式训练中的应用,探索如何在网络带宽约束下进行模型聚合。
复现评估
论文提供了代码库(wyy-code/mergepipe),但需要评估开源情况、数据、算力和难度。从实验部分看,论文使用 Qwen3-0.6B/1.7B/8B、Llama-3.2-3B 和 Llama-3.1-8B 等开源模型,这些模型可以通过 HuggingFace 或官方渠道获取。实验在 CPU 上运行,使用 SSD 支持存储,并禁用 OS 级文件缓存。论文没有提供具体的硬件规格,但从执行时间推测(116.62秒用于 Qwen3-0.6B、16专家),应该是中等规格的服务器。复现难度中等:需要熟悉 Python 和 PyTorch,能够处理大型检查点文件,理解合并运算符的实现。论文提供了详细的算法伪代码和系统架构图,但实际的代码实现细节可能需要进一步探索。论文没有提供预训练的专家检查点或合并结果,需要用户自行准备数据。总体而言,复现需要一定的工程能力和计算资源,但论文提供了足够的细节和代码支持,可复现性较好。
论文图表
Figure 5 展示了 MergePipe 节省时间的来源。图 (a) 左上角显示规划、刷新和提交相对于执行很小。图 (b) 右上角显示收紧预算主要移除专家读取,而基础读取和输出写入保持几乎固定。图 (c) 底部显示预算化之前,专家读取随专家数量 K 缩放(作为跨模型的代理)。具体来说,在预算化之前,专家 I/O 与 K 呈线性关系,例如在 Llama-3.1-8B 上,从 K=5 的约 50GB 增长到 K=20 的约 300GB。而 MergePipe 通过预算控制将专家读取限制在固定水平(约 3-5GB),使得总墙钟时间(规划+刷新+提交)随预算增长,但在固定预算下保持平坦。
这张图提供了 MergePipe 性能改进的归因分析,证明了加速主要来自于减少专家读取 I/O,而不是元数据优化或其他技巧。这澄清了 MergePipe 的工作原理,并为理解其在不同设置下的可扩展性提供了依据。
Algorithm 1 描述了 PLANGEN 算法,用于生成贪心预算感知计划。输入包括专家 {M_i}_{i=1}^K、目录 C、运算符 op 和预算 B。输出是预算可行的合并计划 π。算法步骤:(1) 从块元数据构建候选专家块集合 Q = {(i, t, b)}。(2) 使用范数、草图、覆盖或确定性回退元数据计算候选分数 s(i, t, b)。(3) 使用稳定的张量/块平局打破按分数降序排序 Q。(4) 初始化 R_π = ∅, b_C = 0。(5) 对于每个候选 (i, t, b) ∈ Q,如果 b_C + c_{i,t,b} ≤ B,则 R_π = R_π ∪ {(i, t, b)},b_C = b_C + c_{i,t,b}。(6) 记录运算符参数、遍历顺序、选中块摘要和 b_C。(7) 返回 π = (op, θ, R_π, order)。
这个算法是 MergePipe 规划器的核心实现,展示了如何将抽象的访问掩码选择问题转化为实际的贪心算法。它对于理解规划策略和实现细节至关重要,也是复现 MergePipe 的关键参考。
Algorithm 2 描述了 EXECUTEMERGE 算法,用于执行预算强制流式合并。输入包括计划 π、基础 M_0、专家 {M_i}、存储 S 和目录 C。输出是快照 ID sid 和清单 man。算法步骤:(1) 事务 T.BEGIN(),打开阶段写入器 w,初始化触摸和覆盖映射。(2) 对于计划中的每个张量 t(按 π.TENSORORDER() 的顺序),初始化 DeltaIterator D 对于 t。(3) 对于 π.BLOCKSTOMATERIALIZE(t) 中的每个块 b,读取基础块 x_0 ← S.READ_BASE_BLOCK(M_0, t, b),拉取掩码增量 η ← D.PULL_MASKED(b, R_π),应用预算运算符 x ← APPLY_BUDGETED_OP(x_0, η, π.OP(t, b)),写入块或引用 w.WRITE_BLOCK_OR_REFERENCE(t, b, x, M_0),更新触摸和覆盖。(4) 验证哈希,构建清单 man ← C.BUILD_MANIFEST(π, touch, coverage)。(5) 原子发布快照 sid ← T.ATOMIC_PUBLISH(w, man)。(6) 提交记录 C.COMMIT_RECORD(sid, man)。(7) 事务 T.COMMIT(),返回 (sid, man)。
这个算法是 MergePipe 执行器的核心实现,展示了如何在实际系统中执行预算合并。它展示了事务管理、流式处理、掩码感知运算符应用和清单记录等关键机制,对于理解系统实现和复现至关重要。