在这些艰难的时刻,没有什么比一碗美味的热汤更让人感到安慰了。
蔬菜汤是经典的意大利汤品之一:浓稠、丰盛、美味,结合了豆类、丰富的蔬菜以及米饭或面食。它的味道是多种食材组合的产物。这有点像东欧的罗宋汤、美国的砂锅菜,或泛亚洲地区的自制炒菜,它们都将现成的、廉价的食材结合成一道受欢迎的菜肴。
根据一系列论文(始于Wortsman et al. (2022))的观点,我们可以使用非常相似的配方来制作神经网络模型。
“模型汤”(可惜不是“模型砂锅菜”或“模型炒菜”)是一类模型集成技术,旨在减轻优化训练数据和模型超参数的成本。在训练神经网络时,您通常会尝试不同的数据和超参数值并多次训练,以寻找性能最佳的结果。训练在计算上非常昂贵,并且成本会迅速增加。
相反,“模型汤”涉及使用不同的超参数和训练数据选择来训练多个模型——与您通常的做法相同——然后将它们组合起来。结果是比单个最佳模型性能更高、更稳健的模型。它不会节省成本,因为您仍然需要训练多个模型,但是您可以用相同的价格获得更好的结果。
模型汤方法已被证明对文本-图像多模态嵌入模型(Wortsman et al. 2022)和生成式大型语言模型非常有用。(Takuya et al. 2025)在 Jina AI,我们已经开始使用此技术来训练我们自己的模型,并且 jina-embeddings-v3 和 reader-lm-v2 都采用了模型汤。
在本文中,我们将研究模型汤,并展示我们使用它们的一些工作成果。具体来说:
- 我们是否可以使用模型汤,通过合并训练过程中不同阶段的模型来提高性能?
- 我们是否可以合并使用不同数据集和针对不同任务训练的模型,以获得比训练单个模型更好的性能和更高的训练效率?
这具有重要的潜在优势:
- 模型汤可以具有更好、更稳健的性能。
- 多语言嵌入模型通常会因训练数据量不均而导致偏差和性能下降。如果能够单独训练每个任务或数据集上最好的模型,然后平等地组合它们,这将是一个福音。
- 通过以模块化的方式更改模型,一次更新一个组件模型,然后将其与其他模型重新合并,我们或许可以更好地进行持续学习和模型更新。
tag它是如何工作的?
合并多个模型的输出是统计决策理论中的一种古老技术。例如,在天气预报中,通常的做法是创建多个模型(通常由具有不同假设的不同人员创建),然后使用各种机制来平均它们的预测。如果每个模型的误差是随机分布的,则平均这些模型将导致误差更少的答案。
例如,如果您有三个不同的模型,它们输出二进制的“是”或“否”,并且每个模型在 10% 的时间内是错误的,那么三个模型中有两个是错误的概率仅为 2.8%。五个模型,采用多数决策标准,只有 0.856% 的时间会出错。
平均模型的工作原理相同,但不是组合不同模型的输出,而是组合模型本身。
使用的方法是随机权重平均的扩展 (Izmailov et al. 2018),它依赖于对神经网络损失情况的深入了解,以表明在常见条件下,简单的权重平均可以提高模型的泛化性能。
平均模型的实际机制非常简单:您只需平均多个模型的权重。

如果这看起来太容易了,那么重要的是要注意,以这种方式合并模型时存在局限性。您不能只是合并任意两个神经网络的权重,并期望它能够工作。
模型平均仅适用于非常相似的模型,即权重一开始彼此差异不大的模型。确保这一点的最好方法是预训练一个模型,然后通过使用不同的超参数或不同的数据对它们进行微调,来创建该模型的多个变体。这些模型通常足够相似,可以进行平均。
用更专业的术语来说,预训练通常会生成一个权重接近损失盆地底部的模型,而微调则不容易导致逃离该损失盆地。如果要合并的所有模型在同一个损失盆地中都有权重,那么它们的权重将非常接近,并且平均它们很可能会起作用。这不能保证,但根据经验,它似乎经常足够有效。
tag实验设置
基础模型:对于此处描述的实验,我们使用了来自 FacebookAI 的 xlm-roberta-base (Conneau et al. 2020) 作为我们的预训练基础模型。该模型具有 2.8 亿个参数,并且已在包含大约 100 种语言文本的 2.5TB Common Crawl 数据上进行了预训练。
在执行实验之前,我们对我们整理的句子对训练集进行了微调 xlm-roberta-base,用于嵌入训练。
训练数据:Jina AI 维护着用于训练的自定义整理数据集。对于第一个实验,我们使用了专门为六种语言(英语、阿拉伯语、德语、西班牙语、日语和中文)的对比训练而整理的句子三元组。对于第二个实验,我们使用了英语中特定于任务的训练数据集。
评估:我们使用了 MMTEB 基准集的相关部分 (Enevoldsen et al. 2025) 和 MIRACL 基准 (Zhang et al. 2023) 来评估通过我们的训练和合并产生的模型。
tag实验 1:单次运行平均
对于此实验,我们使用了所有六种语言的对比句子三元组,混合在一起,总共进行了 6,000 个训练步骤,批处理大小为 1,024 个项目。在每 2,000 个步骤时,我们保存模型状态以进行平均,从而生成 3 个模型,每个模型都反映了训练过程中的不同点。
我们平均了这三个模型以生成最终模型。然后,我们针对 MMTEB-STS 和 MIRACL 基准集测试了合并的模型和三个保存的检查点。
我们的结果总结在下表中:
| Model | MIRACL (avg 6 languages) (平均 6 种语言) |
MMTEB-STS English (avg 8 benchmarks) (平均 8 个基准) |
MMTEB-STS Multilingual (avg 6 benchmarks) (平均 6 个基准) |
Average of 20 benchmarks (20 个基准的平均值) |
|---|---|---|---|---|
| No triplet training (没有三元组训练) | 0.3163 | 0.7859 | 0.7322 | 0.6276 |
| Step 2000 (步骤 2000) | 0.4631 | 0.7924 | 0.7561 | 0.6813 |
| Step 4000 (步骤 4000) | 0.4639 | 0.7902 | 0.7583 | 0.6812 |
| Step 6000 (final) (步骤 6000(最终)) | 0.4680 | 0.7891 | 0.7575 | 0.6818 |
| Merged model (all 3 stored checkpoints) (合并的模型 (所有 3 个存储的检查点)) |
0.4669 | 0.7910 | 0.7579 | 0.6823 |
与存储的检查点中在单个基准或使用的三个基准电池中的任何一个中表现最佳的模型相比,与以前的检查点合并通常不会产生性能更好的模型。但是,它确实产生了所有基准平均在一起的最佳模型。
在单个基准中,合并模型与性能最佳的检查点之间的差异在每种情况下都小于 0.01。这不仅适用于上表中的平均值,而且适用于每个单独的测试。
这表明合并不同的训练检查点可以以非常小的性能成本生成更健壮的模型。
此外,通过合并不同的检查点,我们可以有效地防止过度训练。过度训练最近已成为神经网络中的一个重要课题。(Springer et al., 2025)可以以某种方式训练网络,使其在进一步微调后变得更难且性能更差。
由于我们实验中表现最佳的检查点通常不是最后一个检查点,因此我们可能在 6,000 个训练步骤中过度训练了我们的模型。合并的模型非常接近于匹配所有测试中最佳检查点的性能,从而消除了过度训练的缺陷。
tag实验 2:平均针对不同任务训练的模型
对于此实验,我们训练了三个模型,每个模型用于一个不同的常见嵌入任务:
- 语义相似度:测量两个文本之间含义的相对重叠或相似度,通常长度相当。
- 基于文本查询的文档检索:查找最能满足查询的文档。查询通常比它们匹配的文档短得多。
- 问答:查找最能回答自然语言问题的文档。问题通常也比它们匹配的文本短得多。
同时训练所有三个任务的模型是相当困难的,因为目标非常不同,我们希望模型融合能够改善这个过程。
根据之前的经验,我们知道每个任务都需要不同数量的训练周期。训练总结如下:
| 任务 | 训练步数 (batchsize = 1,024) |
训练数据集大小 (以项目计) |
|---|---|---|
| 问答 (QA) | 2,000 | 256,000 |
| 文档检索 | 3,000 | 384,000 |
| 语义相似度 (STS) | 1,000 | 128,000 |
这产生了三个模型,然后我们将它们合并为一个模型。我们使用 MMTEB 基准集中与这三个任务相关的部分测试了生成的模型:MIRACL、NanoBEIR 和 STSEval(MMTEB 的英语和多语言部分)。
| MIRACL (平均 6 种语言) |
NanoBEIR (平均 13 个基准) |
MMTEB-STS 英语 (平均 9 个基准) |
MMTEB-STS 多语言 (平均 6 个基准) |
平均 34 个基准 | |
|---|---|---|---|---|---|
| 无三元组训练 | 0.3163 | 0.5089 | 0.7859 | 0.7322 | 0.5876 |
| QA 训练 | 0.4489 | 0.5332 | 0.7843 | 0.7535 | 0.6237 |
| 检索训练 | 0.4272 | 0.5360 | 0.7766 | 0.7340 | 0.6154 |
| STS 训练 | 0.1779 | 0.4519 | 0.7994 | 0.7651 | 0.5508 |
| 合并模型 | 0.4246 | 0.5309 | 0.7981 | 0.7640 | 0.6240 |
我们在此看到,特定于任务的训练模型在每个任务上都具有最佳性能。MIRACL 主要是一个问答基准,即使它被称为检索基准,并且经过 QA 训练的模型在它上面的表现优于所有其他模型,包括合并模型。NanoBEIR 是一个更传统的信息检索基准集,我们看到经过检索训练的模型在它上面表现最佳。语义相似度 (STS) 模型在这些基准上的得分非常低,但在显式的 STS 任务上击败了其他模型。对于每个类别,合并模型的性能都比单任务训练模型差。
但再次,如果我们在所有基准上取平均值,合并模型的表现优于其他模型,尽管它的得分仅比经过 QA 训练的模型略有提高,并且它在 STS 任务上的表现非常差。
我们还仅合并了 QA 和检索模型,并在相同的基准上对生成的模型进行了评分:
| MIRACL (平均 6 种语言) |
NanoBEIR (平均 13 个基准) |
MMTEB-STS 英语 (平均 9 个基准) |
MMTEB-STS 多语言 (平均 6 个基准) |
平均 34 个测试 | 平均 QA & IR (19 个测试) |
平均 STS (15 个测试) |
|
|---|---|---|---|---|---|---|---|
| 最佳任务训练模型 | 0.4489 | 0.5360 | 0.7994 | 0.7651 | 0.6237 | 0.5066 | 0.7857 |
| 合并模型 | 0.4246 | 0.5309 | 0.7981 | 0.7640 | 0.6240 | 0.4973 | 0.7845 |
| QA+检索合并模型 | 0.4610 | 0.5404 | 0.7878 | 0.7498 | 0.6288 | 0.5153 | 0.7726 |
我们在此看到,虽然我们可以通过合并两个任务的训练模型来提高问答和检索的性能,但添加经过 STS 训练的模型会降低所有类别的特定于任务的性能。这表明语义相似度在某些重要方面与 QA 和检索不同,并且经过 STS 训练的模型不适合与其他两个模型合并。
这可能是因为问答和检索涉及将短文本(问题和查询)与较长的文档进行匹配,而语义相似度涉及比较长度更相似的文档。
Wortsman et al. (2022) 描述了一种选择性的平均方法,他们称之为“贪婪”合并。它涉及采用一个模型,通常是一组模型中性能最佳的模型,然后仅将那些单独提高性能的模型添加到其中。只有三个模型,因此在此实验中使用贪婪合并意义不大。但是,我们可以想象一个有更多模型的情况,并使用类似这样的技术作为确定任务之间相似程度的基础。我们在此发现语义相似度与其他两个不同。然后,我们可以评估一个模型何时可以执行许多任务,以及何时使用不同的模型更具成本效益。
tag模型融合开始!
模型融合将多样性融入到大于其各部分之和的东西中。这种方法的价值在于它能够提供更大的一致性、鲁棒性,并充当防止过度训练的保障,而无需额外的训练成本。我们的实验表明,合并检查点或特定于任务的模型可以提高整体性能,即使它有时会以牺牲特定于任务的峰值为代价。
最后,模型融合提供了一种实用且非常简单的方法来构建更具适应性的模型,尽管它有一些注意事项。它不是万能药,并且仅适用于模型已经非常相似的情况。
正如他们在互联网上所说,Your Mileage May Vary。但是在您训练模型时,找出模型融合是否有帮助既便宜又容易。









