Back to blog
    如何合法蒸餾開源模型:逐步指南
    distillationopen-sourcetutoriallegalfine-tuninggguf

    如何合法蒸餾開源模型:逐步指南

    以正確方式進行模型蒸餾的實用指南:使用具有寬鬆授權的開源教師模型、您自己的領域資料,以及通往模型所有權的清晰法律路徑。

    EErtas Team··Updated

    Anthropic/DeepSeek 爭議展示了當蒸餾出錯時會發生什麼:24,000 個帳戶被封禁、國際頭條新聞和潛在的法律行動。但這個技術本身是合理的——問題在於來源,而不是方法。

    本指南從頭到尾說明合法的模型蒸餾。具有寬鬆授權的開源教師模型。您自己的領域資料。從訓練到部署的清晰路徑,具有完整的模型所有權和零法律風險。

    如果您一直在關注蒸餾辯論並在想「一定有正確的做法」——確實有。以下是如何做到。

    合法與非法蒸餾:明確的界線

    這個區別比標題所暗示的更簡單。

    合法蒸餾: 使用具有寬鬆授權的開源模型作為教師。授權賦予您創建衍生作品的權利,包括在教師輸出上訓練更小的模型。您在行使模型創建者明確授予您的權利。

    非法蒸餾(或違反服務條款): 使用封閉 API 模型(GPT-4、Claude、Gemini)作為教師,違反其服務條款。法律形勢仍在演變,但合約禁止是明確的。

    測試方法: 在使用任何模型作為教師之前,閱讀其授權。如果它允許衍生作品和商業使用,您就是清白的。如果它禁止使用輸出進行競爭性模型訓練,則不要使用。

    步驟 1:選擇您的開源教師模型

    您的教師模型決定了學生模型的品質上限。謹慎選擇。

    授權比較

    模型授權是否允許蒸餾商業使用是否需要署名
    Llama 3(8B-405B)Meta Community是(月活躍使用者低於 7 億)
    Qwen 2.5(7B-72B)Apache 2.0
    Mistral(7B-8x22B)Apache 2.0
    DeepSeek-R1(開放權重)MIT最低限度
    Gemma 2(2B-27B)Gemma 條款
    Phi-3(3.8B-14B)MIT最低限度

    所有這些模型都明確允許您創建衍生作品,包括蒸餾模型。法律路徑是清晰的。

    選擇哪個教師模型

    對於一般推理和指令遵循: Llama 3 70B 或 Qwen 2.5 72B。兩者都是強大的通用模型,在各個領域產生高品質的訓練資料。

    對於程式碼和技術任務: DeepSeek-R1 或 Qwen 2.5 Coder。在結構化輸出和程式碼生成方面表現強勁。

    對於多語言任務: Qwen 2.5 在各種語言中表現出色。Llama 3 以英語為主,但在主要語言上也有能力。

    對於受限環境: 如果您無法運行 70B 模型,對於您用自己資料補充的特定領域任務,Llama 3 8B 或 Qwen 2.5 14B 是不錯的教師模型。

    2026 年最佳微調模型取決於您的具體使用案例,但上表中的任何模型都為您提供了法律上乾淨的起點。

    步驟 2:設置教師模型

    您需要在可以大規模生成訓練資料的環境中運行您的教師模型。三個選項:

    選項 A:本地部署

    使用 Ollama、vLLM 或 llama.cpp 在您自己的硬體上運行教師模型。這讓您完全控制且沒有使用限制。

    70B 模型的要求:

    • 2 個 NVIDIA A100(80GB)或同等產品
    • 超過 128GB 系統 RAM
    • 生成速度預計每秒 10 至 30 個標記

    7B 至 14B 教師模型的要求:

    • 單個 NVIDIA RTX 4090 或 Apple M2 Ultra
    • 超過 32GB RAM
    • 預計每秒 30 至 80 個標記

    選項 B:雲端 GPU 租用

    使用 RunPod、Lambda 或類似的 GPU 雲端提供商啟動臨時推理實例。對於批量生成訓練資料來說成本效益高——您只需支付所需時間的費用。

    典型成本:A100 實例每小時 2 至 5 美元。您可以在幾個小時內生成數千個訓練示例。

    選項 C:開源 API 提供商

    Together AI、Fireworks 或 Groq 等服務提供對開源模型的 API 存取。由於您在其開源授權下使用這些模型(而不是專有 API),從這些端點生成訓練資料在法律上等同於在本地運行模型。

    檢查提供商的條款,確認他們沒有在模型的開源授權之上添加限制。

    步驟 3:從您的領域生成合成訓練資料

    這是蒸餾與微調交匯的地方——也是真正價值被創造的地方。

    您不是從教師模型蒸餾通用能力,而是使用教師模型處理您的特定領域內容。結果是將教師的語言能力與您的專有知識相結合的訓練資料。

    流程

    1. 準備您的源材料。 收集您的特定領域內容:

    • 客戶支援日誌和已解決的工單
    • 產品文件和知識庫文章
    • 銷售電話記錄和常見問題
    • 行業特定文件和監管文本
    • 您業務特有的任何結構化資料

    2. 設計您的提示。 創建提示模板,要求教師模型使用您的源材料作為上下文執行您的目標任務。

    例如,如果您正在建立支援分類模型:

    Given this support ticket:
    "{ticket_text}"
    
    Classify into one of these categories: {your_categories}
    
    Respond with only the category name.
    

    3. 大規模生成。 通過教師模型運行您的源材料。對於每個輸入,收集輸出。這創建了您的訓練資料集。

    目標資料集大小:

    • 最低可行: 500 個示例(對於定義明確的任務出奇有效)
    • 穩固基線: 1,000 至 2,000 個示例
    • 生產品質: 2,000 至 5,000 個示例
    • 複雜任務: 5,000 至 10,000 個示例

    更多資料並非總是更好。精心策劃的 500 個高品質示例的資料集通常優於 5,000 個噪雜的示例。

    4. 添加您的專有信號。 教師生成有能力的輸出。您的領域專業知識使它們卓越。審查生成的資料並:

    • 修正任何不符合您品質標準的輸出
    • 添加教師做錯的示例(邊緣案例、特定領域的細微差別)
    • 確保所有示例的輸出格式一致
    • 驗證領域術語使用正確

    這個步驟是通用蒸餾與特定領域微調之間的區別。教師提供語言能力。您的資料和審查提供領域專業知識。

    步驟 4:準備資料集

    微調的訓練資料集通常使用 JSONL 格式——每行一個 JSON 物件,每個物件包含對話結構。

    格式

    {"messages": [{"role": "system", "content": "You are a support classifier for Acme Corp."}, {"role": "user", "content": "My invoice is wrong"}, {"role": "assistant", "content": "billing_issue"}]}
    {"messages": [{"role": "system", "content": "You are a support classifier for Acme Corp."}, {"role": "user", "content": "Can't log in"}, {"role": "assistant", "content": "account_access"}]}

    品質過濾

    訓練前,清理您的資料集:

    • 刪除重複項。 幾乎相同的示例增加噪音而不增加價值。
    • 刪除矛盾。 如果相同的輸入映射到不同的輸出,解決衝突。
    • 驗證格式一致性。 每個示例應遵循相同的輸出結構。
    • 檢查幻覺。 審查教師輸出,核對源材料中的事實錯誤。
    • 平衡類別。 如果您正在訓練分類器,確保各類別的合理代表性。

    有 1,000 個乾淨示例的資料集將優於有 5,000 個混亂示例的資料集。品質勝於數量,每次都是如此。

    不想管理 JSONL 文件和訓練配置?Ertas 以視覺化方式處理資料集準備。加入優先預約 →

    步驟 5:微調學生模型

    現在您在準備好的資料集上訓練較小的學生模型。這是蒸餾的知識被壓縮到可部署模型的地方。

    選擇學生模型

    您的學生應該比您的教師小——這就是蒸餾的意義。常見選擇:

    • 教師 70B → 學生 7B-14B — 大多數生產部署的最佳選擇
    • 教師 14B → 學生 3B-7B — 用於邊緣部署或資源受限環境
    • 同系列優先 — 將 Llama 70B 蒸餾到 Llama 7B 比跨系列蒸餾效果更好

    訓練方法:LoRA/QLoRA

    即使是 7B 模型的全量微調也需要大量 GPU 記憶體。LoRA(低秩適應)和 QLoRA(量化 LoRA)使這成為可能:

    • LoRA 在凍結的基礎權重之上添加小型可訓練適配器(約 50 至 200 MB)
    • QLoRA 將 LoRA 與 4 位元量化相結合,進一步降低記憶體要求
    • 7B 模型可以在具有 24GB VRAM 的單個 GPU 上使用 QLoRA 進行微調

    關鍵訓練參數:

    • 學習率:1e-4 至 2e-4
    • 批次大小:4 至 8(帶梯度累積)
    • 訓練輪數:2 至 4(資料更多 = 需要更少的訓練輪數)
    • LoRA rank:16 至 64(越高 = 容量越大,記憶體消耗越多)

    使用 Ertas

    如果您寧願完全跳過配置,Ertas 以視覺化方式處理此步驟:

    1. 上傳您的 JSONL 資料集(或從 Hugging Face 匯入)
    2. 選擇您的基礎模型
    3. 通過 UI 調整訓練參數(或使用推薦的預設值)
    4. 開始訓練——實時追蹤進度
    5. 如果運行多個實驗,並排比較結果

    無需 Python。無需 YAML。無需 CLI。平台處理基礎設施並返回您的微調模型。

    步驟 6:評估學生模型與教師模型

    部署前,驗證您的學生模型滿足您的品質標準。

    自動化評估

    在保留的測試集(訓練中未使用的示例)上運行教師和學生模型。比較:

    • 準確率 — 學生是否產生正確的輸出?
    • 格式合規性 — 學生是否遵循預期的輸出結構?
    • 一致性 — 學生對相似輸入是否給出相同的答案?
    • 延遲 — 學生的響應速度如何?(應該比教師更快)

    人工評估

    對於主觀任務(寫作、對話、摘要),自動化指標並不能說明全部情況。進行盲評:

    1. 對相同輸入生成 50 至 100 個教師和學生的輸出
    2. 並排展示輸出,不帶標籤
    3. 讓領域專家評估品質、準確率和適當性
    4. 追蹤學生的不足之處——這些差距指導您下一次訓練迭代

    目標基準

    對於具有精心策劃的訓練資料的特定領域任務,您應該期望:

    • 分類和提取任務準確率達到 90 至 95%
    • 生成任務在教師品質的 5 至 10% 以內
    • 推理速度比教師快 3 至 10 倍(視大小比例而定)
    • 在窄而定義明確的任務上匹配或超越提示工程的 GPT-4

    如果您的學生達不到目標,修復方法通常是更好的訓練資料——而不是更大的學生模型。返回步驟 3,在學生表現不佳的領域添加更多高品質示例。

    步驟 7:匯出到 GGUF 並部署

    一旦您的學生模型通過評估,將其匯出用於生產部署。

    GGUF 匯出

    GGUF 是本地模型部署的標準格式。它相容於:

    • Ollama — 最簡單的部署,單個命令即可運行
    • llama.cpp — 輕量級,在 CPU 和 GPU 上運行
    • LM Studio — 帶 UI 的桌面應用程式
    • vLLM — 高吞吐量生產服務

    量化選項

    GGUF 支援多種量化級別,在模型大小和品質之間進行權衡:

    • Q8 — 最高品質,7B 模型約 8 GB
    • Q5 — 品質好且體積小,7B 模型約 5.5 GB
    • Q4 — 大多數任務可接受的品質,7B 模型約 4.5 GB

    對於在高品質資料上進行微調的特定領域任務,Q5 量化通常保持超過 95% 的全精度品質。從那裡開始,根據您的品質要求進行調整。

    部署

    # 使用 Ollama
    ollama create my-model -f Modelfile
    ollama run my-model
    
    # 使用 llama.cpp
    ./server -m my-model.gguf --port 8080

    您的模型現在在本地運行。沒有 API 呼叫。沒有每個標記的費用。沒有可以棄用它的供應商。沒有可以在您下面改變的服務條款。

    Ertas 工作流程:不需要 CLI 即可完成所有這些

    上述步驟是有效的。它們也需要大量手動工作——設置推理環境、管理 JSONL 文件、配置訓練運行、處理量化和匯出。

    Ertas 將整個管道壓縮到視覺化介面中:

    1. 上傳您的資料集(或通過 URL 從 Hugging Face 匯入)
    2. 選擇您的基礎模型,從支援的開源選項中
    3. 配置並訓練,使用視覺化控件和推薦的預設值
    4. 評估,使用內建比較工具
    5. 一鍵匯出到 GGUF

    從資料集上傳到可部署的 GGUF 文件——整個過程需要幾分鐘而不是幾個小時。無需管理 Python 環境。無需 GPU 配置。無需 YAML 配置文件。

    您創建的模型是您的。下載 GGUF,在任何地方部署。Ertas 是訓練工具,而不是部署鎖定。

    正確的蒸餾方式

    DeepSeek 情況不是蒸餾作為技術的失敗。它是策略上的失敗——選擇從封閉平台提取能力,而不是在開放基礎上建立。

    正確的方法:

    1. 具有寬鬆授權的開源教師模型
    2. 您的領域資料作為差異化因素
    3. 合法微調,產生其他任何人都沒有的能力
    4. GGUF 匯出,用於可攜式、不依賴供應商的部署
    5. 管道中每個組件的完整所有權

    沒有假帳戶。沒有服務條款違規。沒有法律風險。只是一個真正屬於您的更好模型。


    無需接觸 CLI 即可完成所有這些。Ertas 以視覺化方式處理整個蒸餾管道——從資料集到 GGUF 只需幾分鐘。以早鳥定價預訂。查看方案 →

    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