在這些艱難的時刻,沒有什麼比一碗暖呼呼的湯更棒了。
蔬菜湯是經典的義大利湯品之一:濃稠、豐盛、美味,結合了豆類、耐煮的蔬菜以及米飯或麵食。它的味道是將多種食材組合在一起的產物。這有點像東歐的羅宋湯、美國的砂鍋菜,或是太平洋亞洲地區的家常炒菜,都是將現成且便宜的食材組合在一起,變成一道受人喜愛的菜餚。
根據一系列論文(從 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) |
MMTEB-STS English (avg 8 benchmarks) |
MMTEB-STS Multilingual (avg 6 benchmarks) |
Average of 20 benchmarks |
---|---|---|---|---|
No triplet training | 0.3163 | 0.7859 | 0.7322 | 0.6276 |
Step 2000 | 0.4631 | 0.7924 | 0.7561 | 0.6813 |
Step 4000 | 0.4639 | 0.7902 | 0.7583 | 0.6812 |
Step 6000 (final) | 0.4680 | 0.7891 | 0.7575 | 0.6818 |
Merged model (all 3 stored checkpoints) |
0.4669 | 0.7910 | 0.7579 | 0.6823 |
與儲存的檢查點中性能最佳者相比,使用先前的檢查點進行合併通常不會產生性能更好的模型,無論是在單個基準測試中還是在使用的三個基準測試組中的任何一個上。但是,它確實產生了所有基準測試平均在一起的最佳模型。
在單個基準測試中,合併模型與性能最佳的檢查點之間的差異在每種情況下都小於 0.01。這不僅適用於上表中的平均值,而且適用於每個單獨的測試。
這表明合併不同的訓練檢查點可以以非常小的性能成本產生更穩健的模型。
此外,通過合併不同的檢查點,我們可以有效地防止過度訓練。過度訓練最近已成為神經網路中的一個重要主題。(Springer et al., 2025)可以以一種方式訓練網路,使其在進一步微調後變得更難且性能更差。
由於在我們的實驗中,性能最佳的檢查點通常不是最後一個,因此我們可能在 6,000 個訓練步驟中過度訓練了我們的模型。合併後的模型非常接近匹配所有測試中最佳檢查點的性能,消除了過度訓練的缺陷。
tag實驗 2:平均針對不同任務訓練的模型
對於此實驗,我們訓練了三個模型,每個模型都用於不同的常見嵌入任務:
- 語義相似度:測量兩個文本之間在含義上的相對重疊或相似性,通常長度相當。
- 基於文本查詢的文件檢索:尋找最能滿足查詢的文件。查詢通常比它們匹配的文件短得多。
- 問答:尋找最能回答自然語言問題的文件。問題通常也比它們匹配的文本短得多。
同時訓練所有三個任務的模型非常困難,因為目標非常不同,我們希望模型湯能改善這個過程。
根據先前的經驗,我們知道每個任務都需要不同數量的訓練週期。訓練總結如下:
任務 | 訓練步驟 (batchsize = 1,024) |
訓練資料集大小 (以項目計) |
---|---|---|
Question Answering (QA) | 2,000 | 256,000 |
Document Retrieval | 3,000 | 384,000 |
Semantic Similarity (STS) | 1,000 | 128,000 |
這產生了三個模型,然後我們將它們合併為一個單一模型。我們針對 MMTEB 基準集中與這三個任務相關的部分測試了結果模型:MIRACL、NanoBEIR 和 STSEval(MMTEB 的英文和多語部分)。
MIRACL (平均 6 種語言) |
NanoBEIR (平均 13 個基準) |
MMTEB-STS English (平均 9 個基準) |
MMTEB-STS Multilingual (平均 6 個基準) |
平均 34 個基準 | |
---|---|---|---|---|---|
No triplet training | 0.3163 | 0.5089 | 0.7859 | 0.7322 | 0.5876 |
QA training | 0.4489 | 0.5332 | 0.7843 | 0.7535 | 0.6237 |
Retrieval training | 0.4272 | 0.5360 | 0.7766 | 0.7340 | 0.6154 |
STS training | 0.1779 | 0.4519 | 0.7994 | 0.7651 | 0.5508 |
Merged model | 0.4246 | 0.5309 | 0.7981 | 0.7640 | 0.6240 |
我們在這裡看到,特定任務訓練的模型在每個任務上都有最佳效能。MIRACL 主要是一個問答基準,即使它被稱為檢索基準,並且經過 QA 訓練的模型在它上面的表現優於所有其他模型,包括合併模型。NanoBEIR 是一個更傳統的資訊檢索基準集,我們看到經過檢索訓練的模型在它上面表現最佳。語義相似性 (STS) 模型在這些基準上的得分非常差,但在明確的 STS 任務上擊敗了其他模型。對於每個類別,合併模型的表現都比單一任務訓練模型差。
但再一次,如果我們對所有基準進行平均,合併模型的表現優於其他模型,儘管其分數僅比經過 QA 訓練的模型略有提高,並且在 STS 任務上的表現非常差。
我們還僅合併了 QA 和檢索模型,並在相同的基準上對結果模型進行了評分:
MIRACL (平均 6 種語言) |
NanoBEIR (平均 13 個基準) |
MMTEB-STS English (平均 9 個基準) |
MMTEB-STS Multilingual (平均 6 個基準) |
平均 34 個測試 | QA & IR 平均 (19 個測試) |
STS 平均 (15 個測試) |
|
---|---|---|---|---|---|---|---|
Best task-trained model | 0.4489 | 0.5360 | 0.7994 | 0.7651 | 0.6237 | 0.5066 | 0.7857 |
Merged model | 0.4246 | 0.5309 | 0.7981 | 0.7640 | 0.6240 | 0.4973 | 0.7845 |
QA+Retrieval merged model | 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。但是,找出模型湯是否可以在您訓練模型時提供幫助既便宜又容易。