What is Model Merging(模型合併)?

    將兩個或多個微調模型的權重組合成單一模型的技術。

    Definition

    模型合併是一種訓練後技術,將多個微調模型的權重張量合併成一個統一的模型,而無需額外的訓練。最簡單的形式是線性插值(LERP),計算兩個模型對應權重的加權平均。更複雜的方法如 SLERP(球面線性插值)、TIES(修剪、選舉和求和)和 DARE(丟棄和重新縮放)使用不同的數學策略來合併權重,同時最小化每個模型獨立學習的能力之間的干擾。

    模型合併的吸引力在於其效率:它不需要 GPU 計算、不需要訓練資料,且在幾分鐘內完成。實踐者可以取一個為程式設計微調的模型、另一個為醫療問答微調的模型和第三個為創意寫作微調的模型,並將它們合併成一個展現所有三種能力的單一模型。開源社群熱情地擁抱了合併,合併模型經常位居社群排行榜首位。

    然而,模型合併並非沒有折衷。與專業化的來源模型相比,合併模型在任何單一任務上的表現可能會降低——合併模型是樣樣通但樣樣不精。合併品質在很大程度上取決於來源模型的相容性(它們必須共用相同的基礎架構)以及所選的合併方法和參數。成功通常需要實驗:嘗試不同的合併比例、方法和來源模型組合,以找到目標使用場景的最佳混合。

    Why It Matters

    模型合併提供了一種無需多任務微調的成本和複雜度即可建立多才多藝模型的方法。對於已經投資了多個專業化微調模型的組織,合併可以為跨越多個領域的使用場景產生一個多功能的通才模型。它還加速了實驗——研究人員可以快速建立混合模型原型並評估合併模型是否滿足其需求,然後再投入更昂貴的多目標訓練運行。

    How It Works

    所有合併方法都從載入共用相同架構的兩個或多個來源模型的權重張量開始。線性合併計算:merged_weight = α × model_A_weight + (1-α) × model_B_weight,其中 α 控制混合比例。SLERP 沿著權重向量之間的測地線(超球面上的最短路徑)進行插值,更好地保持權重的大小。TIES 首先修剪小幅度的參數變化(相對於基礎模型),透過多數投票解決符號衝突,然後對存活的增量求和。DARE 隨機丟棄一定比例的參數增量並重新縮放存活者以進行補償,減少干擾。mergekit 等工具為所有這些方法提供命令列介面,合併後的模型以標準格式(safetensors、GGUF)儲存以便立即部署。

    Example Use Case

    一個開發團隊有三個 Mistral 7B LoRA 微調:一個在客服對話上訓練、一個在內部知識庫問答上訓練、一個在產品文件寫作上訓練。他們使用 mergekit 的 TIES 方法將三者合併成單一模型。合併後的模型在各自基準上的得分在每個專家的 3% 以內,同時能夠處理所有三種任務類型——用一個取代三個獨立的推論部署,將託管成本降低了 60%。

    Key Takeaways

    • 模型合併將多個微調模型的權重合併而無需額外訓練。
    • 方法包括 LERP、SLERP、TIES 和 DARE,各有不同的折衷。
    • 來源模型必須共用相同的基礎架構才能合併。
    • 合併模型以單一任務的峰值效能換取多任務的多功能性。
    • 合併速度快、免費(不需要 GPU),在開源社群中被廣泛使用。

    How Ertas Helps

    Ertas Hub 是模型合併工作流程的自然生態系統。使用者可以在 Ertas Studio 中微調多個專業化模型,發佈到 Ertas Hub,然後合併它們以建立多功能的多能力模型。平台的 GGUF 匯出管線使得將合併模型轉換為部署就緒的產出物變得容易,可透過 Ollama 或 llama.cpp 進行本地推論。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.