Back to blog
    AI 機構的模型版本控制和客戶回滾指南
    agencyversioningdeploymentrollbackoperationssegment:agency

    AI 機構的模型版本控制和客戶回滾指南

    AI 機構應如何對微調模型進行版本控制、追蹤和回滾——涵蓋命名方案、變更日誌、A/B 部署和緊急回滾程序。

    EErtas Team·

    凌晨 3 點,您的電話響了。一個客戶的生產模型——每天處理 2,000 張客戶支援票的那個——正在生成垃圾。完全是廢話。他們的客戶體驗副總裁已經在給您的 CEO 起草電子郵件了。

    決定您是否能在接下來 30 分鐘內生存下來的問題是:您現在能回滾到上一個已知良好的版本嗎?

    如果您沒有版本控制,答案是否定的。您將花費數小時弄清楚什麼改變了,什麼時候改變的,以及您是否甚至在任何地方保存了以前的適配器權重。如果您有版本控制,答案是:「已完成。47 秒內回滾。現在正在調查根本原因。」

    本指南是關於建立使第二個答案成為可能的系統。

    為什麼版本控制對 AI 比對軟體更重要

    在傳統軟體中,部署出錯,您重新部署最後一次提交。程式碼是確定性的——相同的輸入,相同的輸出,每次。工件很小(兆字節的編譯程式碼),回滾是眾所周知的。

    AI 模型在每個維度上都不同:

    • 非確定性輸出。 相同的輸入可以產生不同的輸出。「它有效」是概率性的,而不是二元的。
    • 大型工件。 LoRA 適配器是 20-200MB。完整模型權重是 4-30GB。您不能只是「git revert」這些。
    • 複雜的血緣。 模型的行為取決於基礎模型、適配器權重、訓練資料、訓練配置、推理配置,有時還有提示模板。更改其中任何一個,輸出就會改變。
    • 靜默降級。 壞的程式碼通常會崩潰。壞的模型產生看起來合理的垃圾。您可能幾天都不會發現。

    AI 模型的版本控制必須追蹤更多狀態,處理更大的工件,並比傳統軟體部署支援更快的回滾。

    版本控制方案

    使用適應 AI 模型的語義版本控制:

    v{major}.{minor}.{patch}
    

    主要版本(v1 → v2):更改了基礎模型。這是根本性的轉變——不同的架構,不同的能力,不同的失敗模式。需要完整的重新評估和客戶簽署。

    次要版本(v1.1 → v1.2):使用新的或更新的資料重新訓練了 LoRA 適配器。相同的基礎模型,但模型的知識或行為發生了有意義的變化。需要自動評估加上人工抽查。

    補丁版本(v1.2.0 → v1.2.1):更改了推理配置、提示模板或服務參數。模型權重沒有改變。需要快速冒煙測試。

    實際範例:

    • acme-support-v1.0.0 → 在 Llama 3 8B 上初始部署
    • acme-support-v1.1.0 → 使用 3 個月的生產資料重新訓練
    • acme-support-v1.1.1 → 將溫度從 0.3 調整到 0.2 以減少創意性
    • acme-support-v2.0.0 → 遷移到 Llama 3.1 8B 基礎模型

    每個版本要追蹤的內容

    您的登記冊中的每個版本條目都需要這些欄位,沒有例外:

    欄位範例原因
    版本v1.2.1唯一識別碼
    基礎模型llama-3-8b-instruct可重現性
    LoRA 適配器雜湊sha256:a3f8c2...驗證載入了正確的權重
    訓練資料雜湊sha256:7b2e91...確切知道什麼資料訓練了這個
    訓練配置lr=2e-4, epochs=3, rank=16可重現性
    評估分數accuracy=94.2%, hallucination=2.1%比較的基線
    推理配置temp=0.2, top_p=0.9, max_tokens=512精確服務參數
    部署日期2026-03-10T14:30:00Z稽核追蹤
    部署者jane@agency.com問責性
    變更說明「將 Q1 支援票據添加到訓練資料」未來自己的背景

    將此作為結構化 YAML 或 JSON 文件與適配器權重一起存儲。當凌晨 3 點出問題時,您需要在幾秒鐘內可以存取這些信息,而不是埋在 Slack 線程中。

    版本登記冊

    維護一個中央登記冊——部署在哪裡的單一真相來源:

    clients:
      acme:
        models:
          support:
            production: v1.2.1
            staging: v1.3.0
            available_versions:
              - v1.2.1
              - v1.2.0
              - v1.1.0
            rollback_target: v1.2.0
      baker:
        models:
          legal-review:
            production: v2.1.0
            staging: v2.2.0
            available_versions:
              - v2.1.0
              - v2.0.0
              - v1.5.0
            rollback_target: v2.0.0

    這個文件本身應該進行版本控制。您希望每個部署決策都有完整的稽核追蹤。

    部署管線

    模型更新應流經四個階段。跳過階段就是您最終接到凌晨 3 點電話的方式。

    第一階段:預演

    將新版本部署到預演環境。運行您的完整自動化評估套件。將分數與當前生產版本進行比較。如果任何指標下降超過 2 個百分點,停止並調查。

    第二階段:人工審查

    讓某人——理想情況下是了解客戶領域的人——審查預演模型的 20-30 個輸出。重點關注:

    • 語調是否符合客戶的期望?
    • 是否有任何新的失敗模式?
    • 我們是否修復了重新訓練應該解決的問題?

    第三階段:金絲雀部署

    將 10% 的生產流量路由到新版本。監控 24-48 小時。比較兩個版本之間的延遲、錯誤率,以及如果您有自動品質指標的話——輸出品質。

    如果金絲雀看起來健康,再增加到 50% 24 小時。

    第四階段:完整部署

    將 100% 的流量切換到新版本。至少 7 天內保持舊版本載入並準備好立即回滾。

    模型更新的總時間:從預演到完整部署 3-5 天。在您將其與不良即時部署後 2-3 天的清理工作相比之前,這感覺很慢。

    回滾程序

    回滾必須快速、可靠且經過演練。以下是程序:

    準備(在您需要之前做這些)

    1. 保持最後 3 個版本熱備。 它們的適配器權重應該在您的服務基礎設施所在的同一台機器上,準備好載入。在有 3 個更新版本在其之前之前,不要將舊版本歸檔到冷存儲。

    2. 定義回滾目標。 對於每個客戶,明確命名哪個版本是回滾目標。通常是上一個生產版本,但有時您想要回退得更遠。

    3. 測試回滾。 每個月,練習回滾一個非關鍵模型。計時。如果超過 60 秒,修復您的工具。

    執行(當事情出錯時)

    1. 交換適配器指針。 更改服務配置以指向回滾版本的適配器權重。由於基礎模型保持載入,這是一個適配器熱切換——不需要重新啟動。

    2. 確認交換。 通過模型發送 5-10 個已知測試輸入,並驗證輸出與回滾版本的預期行為相符。

    3. 通知客戶。 發送簡短、事實性的消息:「我們識別到最新模型更新的問題,已回滾到之前的穩定版本(v1.2.0)。服務已恢復。我們正在調查根本原因,將在 24 小時內提供更新。」

    4. 調查。 將失敗版本的輸出與相同輸入上的回滾版本輸出進行比較。找出出了什麼問題。常見原因:訓練資料污染、配置錯誤、改變了分詞的基礎模型更新。

    目標回滾時間:從決策到確認回滾在 60 秒內。使用 Ertas 上的 LoRA 適配器切換可以實現這一點。

    客戶變更日誌範本

    每次模型更新都應附帶面向客戶的變更日誌。保持清晰、非技術性,並專注於結果:

    ## 模型更新:支援助理 v1.3.0
    **日期:** 2026 年 3 月 10 日
    **類型:** 月度重新訓練
    
    ### 更改的內容
    - 納入了 3 個月的新支援票據資料(1,247 張票據)
    - 改善了對退款相關問題的處理
    - 減少了向人工客服的錯誤升級
    
    ### 性能比較
    | 指標 | 之前 (v1.2.1) | 更新後 (v1.3.0) |
    |--------|-------------------|-------------------|
    | 準確率 | 94.2% | 95.8% |
    | 幻覺率 | 2.1% | 1.4% |
    | 平均響應時間 | 1.3s | 1.2s |
    
    ### 已知限制
    - 仍然在處理多產品捆綁問題上有困難(下次更新時處理)
    
    ### 回滾計劃
    如果出現任何問題,上一個版本(v1.2.1)可以立即回滾。

    這種透明度建立信任。收到性能報告的客戶不會流失——他們會升級他們的套餐。

    存儲工件

    每個版本都需要一個完整的、自包含的工件包:

    adapters/acme/support/v1.3.0/
    ├── adapter_weights/        # 實際的 LoRA 權重
    ├── training_config.yaml    # 精確的訓練超參數
    ├── training_data.hash      # 訓練資料的 SHA-256(不是資料本身)
    ├── eval_results.json       # 完整評估套件結果
    ├── inference_config.yaml   # 服務參數
    ├── changelog.md            # 面向客戶的變更日誌
    └── metadata.yaml           # 所有版本登記冊欄位
    

    對每個客戶的最後 3 個版本存儲在快速本地存儲上。將較舊版本歸檔到對象存儲(S3、GCS 或等效物)。您很少需要它們,但當您需要時——監管稽核、客戶糾紛、重現歷史問題——您會很高興它們存在。

    7B LoRA 適配器的每個版本總存儲:根據排名大約 50-250MB。3 個熱備版本 × 12 個客戶 = 36 個版本包,您看到的是 2-9GB。微不足道。

    常見錯誤

    覆蓋而不是版本控制。 「我只是將新適配器保存到相同路徑。」恭喜,您已經摧毀了回滾能力。始終寫入新的版本化路徑。

    部署前沒有評估。 「訓練損失下降了,所以它一定更好。」訓練損失告訴您模型記住了您的資料。評估分數告訴您它實際上可以執行任務。這些是不同的事情。

    不追蹤哪些資料訓練了哪個模型。 六個月後,客戶要求您從模型的訓練集中刪除某些資料(GDPR、法律發現,隨便什麼)。如果您不知道哪些資料產生了哪個版本,您就會被迫從頭開始重新訓練所有內容。

    跳過金絲雀部署。 「它通過了評估,讓我們直接部署吧。」評估套件不能捕獲所有內容。真實的生產流量會浮現測試集錯過的邊緣案例。每次都金絲雀 10% 24 小時。

    沒有回滾測試。 您自設置以來 6 個月沒有測試您的回滾程序。配置格式改變了。腳本路徑改變了。SSH 金鑰過期了。每月測試它。

    Ship AI that runs on your users' devices.

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

    Ertas 的優勢

    Ertas Studio 將版本控制納入部署工作流。通過 Ertas 部署的每個模型都獲得自動版本追蹤、工件存儲和一鍵回滾。版本登記冊就是您的儀表板——您看到部署在哪裡,什麼可以回滾,什麼已準備好部署。

    部署管線開箱即用地支援金絲雀路由。設置您的金絲雀百分比、監控期和自動回滾閾值。如果金絲雀未能通過您的品質門檻,它會在您醒來之前自動回滾。

    因為在凌晨 3 點,最好的事件響應是已經發生的那個。


    有關機構運營的更多信息,請參閱我們的機構 DIY 與 Ertas 微調指南多模型運營指南

    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.

    Keep reading