從教師模型到邊緣設備:模型蒸餾的資料準備工作流程
當目標是算力有限的邊緣設備時,準備訓練資料的逐步工作流程。從定義硬體限制到驗證設備上的效能。
您有企業資料,有目標設備——配備 NPU 的手機、配備神經引擎的筆記型電腦、工廠地面上的邊緣設備。您需要一個在該設備上能夠出色執行一個特定任務的小型模型。
從企業資料到部署邊緣模型的路徑有 十二個步驟。大多數指南跳過了步驟 4–8——資料準備步驟——這正是大多數邊緣 AI 專案表現不佳的原因。
以下是完整的工作流程。
步驟一:定義目標限制
在接觸任何文件之前,以具體術語定義部署目標。
硬體規格:
- 設備:Snapdragon 8 Gen 3(Hexagon NPU)、Apple A17 Pro(ANE)、Intel Core Ultra(NPU)、NVIDIA Jetson Orin 或特定邊緣硬體
- 模型可用記憶體:2GB、4GB、8GB、16GB
- 算力預算:推論可用的 TOPS(每秒兆次運算)
模型大小預算:
- 5 億參數:Q4 下約 300MB,適合行動 NPU
- 10 億參數:Q4 下約 600MB,適合 RAM 不少於 6GB 的平板和手機
- 30 億參數:Q4 下約 1.8GB,適合筆記型電腦和高端平板
- 80 億參數:Q4 下約 4.5GB,適合配備專用神經引擎的筆記型電腦
生產參數:
- 上下文視窗:512、1024 或 2048 個 token(影響記憶體和延遲)
- 延遲預算:每次推論 20ms、50ms、100ms、200ms
- 輸出格式:分類標籤、JSON 物件、短文本、結構化提取
- 吞吐量:設備必須處理的每秒查詢數
在繼續之前記錄這些內容,它們影響所有後續決策。
步驟二:選擇教師模型
教師模型定義了您的品質上限。它生成學生將從中學習的合成訓練資料。
對於不足 10 億參數的學生模型: 使用 700 億以上參數的教師。教師和學生之間的品質差距很大(參數差 140 倍),因此您需要最好的教師以最大化知識轉移。
對於 30 億–80 億參數的學生模型: 300 億–700 億參數的教師效果良好。差距較小意味著略小的教師仍能產生有效的訓練資料。
教師模型注意事項:
- 如果可能,教師應在您的領域上進行微調。生成合成醫療資料的通用 700 億模型產生的樣本,不如在臨床文本上微調的 700 億模型有用。
- 教師在資料生成期間在雲端 GPU 上運行。它不需要適合目標設備。
- 如果對教師進行領域專屬微調不可行,請在合成生成期間使用您的企業文件進行 RAG。
步驟三:生成合成訓練資料
使用教師模型生成領域專屬訓練樣本。但要限制生成。
對不足 10 億參數目標的生成參數:
- 最大輸出長度:匹配學生的生產上下文視窗(例如 512 個 token)
- 溫度:0.3–0.5(一致性優先於多樣性)
- 推理深度:限制到 2–3 步驟鏈
- 輸出格式:在每個樣本中與生產格式完全相同
對 30 億–80 億參數目標的生成參數:
- 最大輸出長度:匹配學生的生產上下文視窗(例如 2048 個 token)
- 溫度:0.5–0.7(適度多樣性)
- 推理深度:3–5 步驟鏈
- 輸出格式:符合生產要求
生成比預期使用量多 5–10 倍的樣本。對於不足 10 億參數的目標,過濾(步驟 5–7)將移除 60–80% 的生成樣本。
步驟四:導入企業文件
您的合成資料生成需要領域基礎。教師模型必須參考您的企業知識。
將原始企業文件——PDF、Word 檔案、掃描文件、資料庫匯出、對話日誌——導入教師可以參考的結構化格式。
關鍵考量:
- 解析文件時保留結構(標題、表格、列表),而非只進行原始文本提取
- 建設業:工程量清單、技術圖紙、規格書
- 醫療業:臨床筆記、出院摘要、化驗報告
- 法律業:合約、訴狀、備忘錄
- 金融業:財務報表、交易記錄、監管申報
此步驟必須在本地進行。企業文件包含不能傳送至雲端解析服務的敏感資料。
步驟五:清洗和過濾
這是蒸餾感知資料準備與標準微調資料準備差異最大的地方。
長度過濾: 移除目標上下文視窗第 10–90 百分位之外的樣本。對於 512 個 token 的生產上下文:丟棄短於 30 個 token 或長於 450 個 token 的樣本。
複雜度評分: 透過與學生相似大小的模型(或學生模型本身,如果可用)運行每個樣本。測量困惑度。丟棄第 75 百分位以上的樣本——它們超出了學生的學習能力。
領域相關性評分: 使用嵌入相似度與精選的 50–100 個黃金標準樣本進行比較。丟棄餘弦相似度低於 0.7 的樣本。
去重: 以 0.85 相似度閾值應用 MinHash。從每個聚類中只保留品質最高的變體。
格式驗證: 每個樣本必須符合精確的生產輸出格式。一個格式錯誤的 JSON 樣本可能在不足 10 億參數的模型中引入 3–5% 的失敗率。
預期結果: 對不足 10 億參數目標,100,000 個生成樣本 → 過濾後 20,000–40,000 個。對 30 億–80 億目標,100,000 → 50,000–70,000 個。
步驟六:由領域專家標注
自動過濾能捕捉分布問題,但無法捕捉事實錯誤、領域特定的不準確之處,或只有主題專家才能注意到的微妙品質問題。
領域專家——醫生、律師、工程師、分析師——審查過濾後資料集的樣本,並對品質進行標注:
- 對此領域事實正確嗎?
- 對生產任務的細節水準是否適當?
- 此回應在生產中可以接受嗎?
對不足 10 億參數的目標,目標是對過濾集中至少 2,000 個樣本進行 100% 的專家審查。使用這些經過專家審查的樣本作為驗證集。
此步驟需要領域專家可以直接使用的工具——而非 Python 筆記本或命令列介面。
步驟七:增強
過濾和專家審查後,增強資料集以填補空缺。
針對性增強: 分析過濾後的資料集,找出代表性不足的類別、邊緣案例或失敗模式。專門針對這些空缺生成額外的合成樣本。
改述生成: 對每個經過專家審查的樣本,生成 2–3 個改述變體。這在不改變基本分布的情況下增加訓練資料多樣性。
難度校準: 在學生模型能力範圍內生成不同難度級別的樣本。簡單樣本(訓練 資料的 80%)建立可靠的基準效能。困難樣本(20%)推動能力邊界。
步驟八:匯出
將最終資料集匯出為適合您的微調框架的 JSONL 格式。包含元數據:
- 目標模型大小和架構
- 目標上下文視窗
- 目標量化級別
- 應用的過濾閾值
- 專家審查覆蓋率百分比
這些元數據在迭代時實現可重複性和調試。
步驟九:微調學生模型
使用雲端 GPU 在準備好的資料集上訓練學生模型。標準微調流程——根據模型大小和資料集大小選擇 LoRA 或全量微調。
對不足 10 億參數的模型:LoRA 秩 16–32 通常效果良好。考慮到模型規模小,全量微調也是可行的。
對 30 億–80 億參數的模型:LoRA 秩 32–64 更實際。全量微調需要更多 GPU 記憶體和時間。