Back to blog
    模型蒸餾解說:以零推理費用運行 Sonnet 品質輸出
    distillationfine-tuningcost-reductionlocal-inferencesegment:agency

    模型蒸餾解說:以零推理費用運行 Sonnet 品質輸出

    模型蒸餾完整指南——如何將大型前沿模型(如 Claude Sonnet)的能力轉移到小型本地模型,以零持續推理費用實現相當的品質。

    EErtas Team·

    你上個月的 Claude Sonnet 帳單是 $2,400。這個月會更高,因為你增加了三個新客戶。下個月還會更高。趨勢很明顯,而且指向唯一一個方向:上漲。

    模型蒸餾是打破這個循環的工程技術。你把嵌入在大型、昂貴的前沿模型中的知識壓縮成一個小型、本地的模型,在你自己的硬體上以零邊際推理成本運行。不是降低成本。是零成本。

    這不是理論。在生產中運行蒸餾模型的團隊報告說,在其特定任務上達到教師模型 85-95% 的品質,推理費用在每月帳目上四捨五入為 $0.00。

    蒸餾實際上是什麼

    蒸餾是一種訓練技術,大型「教師」模型生成標記輸出,而較小的「學生」模型學習重現這些輸出。學生不需要學習教師知道的一切。它只需要學習你關心的特定任務。

    這樣思考:Claude Sonnet 可以寫詩、除錯 Rust 程式碼、摘要醫學研究,以及分類客戶支援票。你只需要它分類客戶支援票。比教師小 50 倍的模型可以非常好地學習那一個任務,因為任務空間足夠窄,以至於一個小模型可以完全覆蓋。

    關鍵洞察:前沿模型是標記者,而不是最終產品。 你對 Claude 或 GPT-4o 的每次 API 呼叫都是一個潛在的訓練範例。昂貴的模型一次性完成困難的認知工作。便宜的模型學習無限次地複製那個工作。

    為什麼小模型能在狹窄任務上匹敵大模型

    這似乎違反直覺。一個 7B 參數的模型怎麼能匹敵一個 200B 以上參數的模型?答案在「狹窄」這個詞上。

    大型語言模型將其參數分配在龐大範圍的能力上。Claude Sonnet 可以討論量子物理、中世紀歷史、TypeScript 泛型和法國烹飪。這些參數中的大多數與你的分類任務無關。

    當你在你特定任務的 2,000 個高品質範例上微調小型模型時,你將所有模型的容量集中在一件事上。7B 模型不需要討論量子物理。它需要以 94% 的準確率將支援票分類為 12 個類別。這在專注小型模型的能力範圍內。

    來自多個實驗室的研究確認了這種模式。在受約束的任務上——分類、提取、格式化、領域問答——3B-8B 範圍內的微調模型持續實現前沿模型效能的 85-95%。在某些任務上,它們超過了前沿模型,因為微調消除了通用模型有時表現出的不一致性。

    蒸餾工作流程

    過程有四個階段。每個都很簡單。

    第一階段:精確定義你的任務

    這是大多數團隊急於完成的步驟,也是最重要的步驟。

    定義良好的任務具有:

    • 清晰的輸入格式。 模型究竟接收到什麼?一條客戶訊息?一個文件?一個結構化的 JSON 對象?
    • 清晰的輸出格式。 模型究竟應該產生什麼?一個類別標籤?一個 JSON 對象?1 到 10 之間的分數?
    • 有界範圍。 任務應該足夠窄,使你可以描述完整的輸出空間。「分類到 12 個類別之一」是有界的。「寫一個深思熟慮的回應」不是。
    • 可測量的品質。 你需要一種對輸出評分的方法。分類的準確率,提取的 F1 分數,格式化的完全匹配。

    如果你無法清楚地定義這四件事,停下來。蒸餾適用於定義良好的任務。模糊的任務產生模糊的結果。

    第二階段:生成教師輸出

    訓練資料有兩個來源:

    生產日誌。 如果你已經在生產中使用 Claude 或 GPT-4o,你有日誌。每個輸入-輸出對都是一個訓練範例。這是最好的資料來源,因為它反映了你真實世界的輸入分佈。

    合成生成。 以程式化方式創建多樣化的輸入,並通過教師模型運行它們。對於支援票分類器,生成涵蓋所有 12 個類別的票變體,包括邊緣案例和模糊輸入。

    目標:1,500-3,000 個範例。 這不是筆誤。你不需要數百萬個範例。對於定義良好的狹窄任務,1,500-3,000 個高品質範例足以獲得強大的效能。更多資料有幫助,但對於大多數分類和提取任務,超過 3,000 個範例後回報迅速減少。

    第三階段:微調學生模型

    選擇你的學生模型。對於大多數任務,Llama 3.3 8B 或 Qwen 2.5 7B 是強大的選擇。它們足夠大,可以處理真實世界的複雜性,足夠小,可以在適度的硬體上運行。

    蒸餾的微調配置:

    • 方法: LoRA(秩 16-32 對大多數蒸餾任務已足夠)
    • 學習率: 2e-4 到 5e-4
    • 訓練輪次: 3-5(在第 3 輪後注意過度擬合)
    • 批次大小: 4-8
    • 訓練時間: 30-90 分鐘,取決於資料集大小和硬體

    在 Ertas 上的訓練費用:標準蒸餾運行通常為 $5-15。在你自己的 GPU 上:30-90 分鐘計算的電費。

    第四階段:與教師進行評估

    從你的資料集中保留 10-15% 用於評估。在相同的保留輸入上運行教師模型和學生模型。比較輸出。

    對於分類任務,你在看準確率。蒸餾良好的模型通常在保留集上與教師達到 90-95% 的一致性。對於提取任務,測量提取字段的 F1 分數。對於格式化任務,測量輸出架構的完全匹配率。

    如果學生與教師的得分低於 85%,你可能需要更多訓練資料、更好的資料整理或更大的學生模型。

    費用計算

    這是蒸餾變得引人注目的地方。讓我們使用真實數字。

    情境:每月處理 50,000 次請求的客戶支援分類器。

    使用 Claude Sonnet API:

    • 平均輸入:200 個 token,平均輸出:50 個 token
    • 每次請求費用:約 $0.0019(按每百萬輸入/輸出 token $3/$15 計算)
    • 每月費用:$95/月
    • 年度費用:$1,140/年

    使用在本地運行的蒸餾 Llama 8B:

    • 一次性訓練費用:$10-15
    • 硬體:在任何具有 8GB 以上 VRAM 的機器上運行,或具有 16GB RAM 的 CPU
    • 每月推理費用:$0
    • 年度費用:$10-15 總計

    盈虧平衡點約為 2 週。之後,每次推理都是免費的。

    將此擴展到運行 10 個客戶端模型的機構,每個每月處理 50,000 次請求:

    • API 方法:每月 $950每年 $11,400
    • 蒸餾模型:一次性 $100-150,然後每月 $0

    這是每年回到你口袋的 $11,250。用於做完全相同的工作。

    哪些任務蒸餾效果好(哪些不好)

    並非每個任務都是蒸餾的候選者。以下是誠實的評估。

    蒸餾效果好的任務

    分類。 將輸入分類到預定義的標籤中。支援票、情感、意圖偵測、文件分類。這些是理想的蒸餾目標。微調的小型模型常規地匹配或超越前沿模型,因為輸出空間受約束且定義明確。

    提取。 從非結構化文字中提取結構化資料。姓名、日期、金額、地址、產品屬性。模式是可學習的,輸出格式是固定的。

    格式化和轉換。 將資料從一種格式轉換為另一種格式。Markdown 到 HTML,自然語言到 SQL(使用受約束的架構),文字到具有定義架構的 JSON。轉換規則是有限且可學習的。

    特定領域問答。 在有界知識領域內回答問題,特別是當你可以在提示中嵌入相關背景時。醫學術語查詢、法律條款解釋、產品常見問題回答。

    蒸餾效果不好的任務

    開放式生成。 撰寫行銷文案、創意內容或長篇文字,其中品質是主觀的。對於小型模型來說,輸出空間太大,無法用有限的訓練資料覆蓋。

    複雜的多步驟推理。 需要邏輯演繹鏈、數學證明或跨不同領域的多跳推理的任務。這些依賴於大型模型從海量預訓練中積累的廣泛知識和推理深度。

    新穎問題解決。 輸入定期落在訓練分佈之外的任務。如果你的生產輸入與你的訓練資料看起來明顯不同,蒸餾模型將會掙扎。

    具有高度可變性的指令遵循。 用戶提供改變預期輸出格式的複雜、多樣指令的任務。蒸餾模型學習固定模式,而不是靈活的指令解釋。

    實際例子:蒸餾 Claude Sonnet 用於支援分類

    讓我們演練一個具體案例。一個 AI 機構正在為電子商務客戶構建客戶支援系統。系統需要將傳入的票分類到 12 個類別:訂單狀態、退貨、帳單、產品問題、運輸、技術問題、帳戶管理、投訴、讚美、功能請求、合作關係和垃圾郵件。

    第一步: 定義任務。輸入是客戶訊息(10-500 個詞)。輸出是包含類別、置信度分數和一行推理的 JSON 對象。

    第二步: 生成訓練資料。使用 Claude Sonnet 對客戶歷史資料中的 2,500 張真實支援票進行分類。另外,生成 500 個涵蓋可能屬於多個類別的模糊票的合成邊緣案例。

    第三步: 整理。審查 3,000 個範例。刪除 200 個 Claude 輸出不一致或明顯錯誤的範例。刪除 50 個重複項。最終資料集:2,750 個範例。

    第四步: 在 Ertas Studio 中使用 LoRA 微調 Llama 3.3 8B。訓練時間:45 分鐘。費用:$8。

    第五步: 在 275 個保留範例上評估。結果:與 Claude Sonnet 在類別分配上 93.1% 的一致性。在他們不一致的案例中,人工審閱顯示微調模型在 40% 的情況下實際上是正確的(Claude 在模糊案例上犯了錯誤,微調模型從整理的訓練資料中學會了更好地處理)。

    第六步: 匯出為 GGUF,通過 Ollama 在客戶的伺服器上部署。推理延遲:平均 180ms,相比 Sonnet API 的 800-1,200ms。

    結果:更快、更便宜、更一致,完全在客戶的基礎設施上運行。

    Ertas Studio 如何簡化管道

    上述蒸餾工作流程涉及傳統上需要不同工具、腳本和手動協調的多個步驟。Ertas Studio 將這些整合到單一管道中。

    資料集管理。 匯入生產日誌或合成資料。Ertas 提供品質評分和去重複工具,在訓練開始之前標記低品質範例。

    訓練配置。 為蒸餾任務優化的預配置 LoRA 模板。選擇你的基礎模型(Llama、Qwen、Gemma、Mistral),調整秩和學習率,然後一鍵啟動訓練。

    評估儀表板。 在你的保留測試集上並排比較教師和學生的輸出。自動指標(準確率、F1、完全匹配)加上手動抽查的審閱介面。

    匯出和部署。 一鍵 GGUF 匯出,帶有量化選項(Q4、Q5、Q8)。與 Ollama 直接整合用於本地部署。模型從訓練到生產需要幾分鐘,而不是幾天。

    整個管道——從原始資料到部署模型——通常需要 3-4 小時,包括訓練時間。現金支出費用為 $5-50,取決於資料集大小和模型選擇。

    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.

    結論

    模型蒸餾不是一種黑客或捷徑。它是一種合法的工程技術,由多年研究支持,並由各行業的團隊大規模部署。前提很簡單:大型模型是通用的;你的任務是特定的。在你特定任務上適當訓練的小型模型,可以以大型模型的一小部分成本匹配其品質。

    經濟效益很明確。$10-50 的一次性投資消除了每月 $100-1,000 以上的持續支出。盈虧平衡期以天計算,而不是月。

    如果你目前正在為定義良好的、可重複的任務支付按 token 的 API 帳單,你就是蒸餾的候選者。問題不在於它是否有效——這已經被証明了數千次。問題是你何時開始。


    準備好蒸餾你的第一個模型了嗎?請參閱我們的使用 LoRA 蒸餾的技術指南獲取詳細的工程演練,或閱讀按 token 定價的隱藏成本以了解完整的財務情況。

    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