
從應用程式使用者互動建構訓練資料集
您的應用程式已經在生成微調所需的訓練資料。如何收集、清理和格式化使用者互動,轉換為能產出高品質裝置端模型的資料集。
AI 模型最好 的訓練資料來自您自己的應用程式。使用者的真實互動、真實問題和真實內容,完全代表了模型需要學習的領域。沒有任何合成資料或公開資料集能比得上來自實際使用場景的資料品質。
本指南涵蓋如何收集、清理和格式化這些資料以用於微調。
什麼算是訓練資料
應用程式中的每個使用者互動都是潛在的訓練範例:
| 應用程式類型 | 原始資料 | 訓練範例 |
|---|---|---|
| 客戶支援 | 使用者問題 + 客服回覆 | 問答對 |
| 筆記應用 | 使用者筆記 + 自動生成摘要 | 摘要對 |
| 金融 | 交易描述 + 指定分類 | 分類對 |
| 電子郵件 | 收到的郵件 + 使用者回覆 | 回覆生成對 |
| 電商 | 產品 + 使用者評論 | 情感對 |
| 健康 | 症狀描述 + 分診結果 | 分類對 |
模式是:任何輸入-輸出對,其中「正確」輸出是已知的(無論是來自明確的使用者行為還是專家判斷),就是一個訓練範例。
資料收集策略
被動收集(建議的起步方式)
記錄自然產生輸入-輸出對的使用者互動:
- **搜尋查詢 + 點擊結果:**點擊的結果就是「正確」答案
- **分類動作:**當使用者為內容指定分類時,就是一個標記範例
- **修正:**當使用者編輯 AI 生成的回應時,編輯後的版本就是「正確」輸出
- **接受:**當使用者接受建議時,就是一個正面範例
// 記錄使用者修正作為訓練資料
function onAiResponseEdited(original: string, edited: string, context: string) {
logTrainingExample({
input: context,
output: edited, // 使用者的修正就是訓練目標
source: "user_correction",
timestamp: Date.now(),
});
}
主動收集
提示使用者提供直接產生訓練資料的回饋:
- **對 AI 回應按讚/倒讚:**篩選按讚的回應作為正面範例
- **修正介面:**讓使用者修改 AI 回應;記錄修正
- **範本使用:**當使用者選擇並使用範本時,填寫好的範本就是一個訓練範例
合成增強
用合成範例補充真實資料:
- 取用您最好的真實範例
- 使用更大的模型(GPT-4o、Claude Sonnet)生成變體
- 將合成範例與真實範例進行驗證
- 混合合成和真實資料(目標至少 30% 真實資料)
隱私與同意
法律要求
在收集任何使用者資料進行訓練之前:
- 更新隱私政策以揭示匿名化的互動資料可能用於改善 AI 功能
- 取得同意(GDPR 要求處理個人資料需取得明確同意)
- 提供退出選項給不希望其互動用於訓練的使用者
- 匿名化資料後再用於訓練。移除姓名、電子郵件、電話號碼和其他個人 識別資訊。
技術匿名化
import re
def anonymize(text: str) -> str:
# 移除電子郵件地址
text = re.sub(r'\b[\w.-]+@[\w.-]+\.\w+\b', '[EMAIL]', text)
# 移除電話號碼
text = re.sub(r'\b\d{3}[-.]?\d{3}[-.]?\d{4}\b', '[PHONE]', text)
# 移除姓名(需要 NER 或姓名清單)
text = replace_names(text, '[NAME]')
return text
裝置端收集
最安全的方式:在裝置上收集訓練資料,僅傳輸匿名化、匯總的資料。原始互動留在使用者手機上。只有匿名化的訓練範例離開裝置。
資料清理
原始互動資料是有雜訊的。清理是管線中最重要的步驟。
品質篩選
- **移除過短的範例:**輸入少於 10 個字元或輸出少於 20 個字元的範例很少包含有用資訊
- **移除重複:**完全重複和近似重複的範例會增加雜訊
- **移除錯誤:**應用程式當機或使用者中途放棄的互動
- **移除離題:**與目標任務不符的互動
- **移除漏過匿名化的個資:**使用更嚴格的模式進行二次檢查
品質評分
並非所有範例都同樣有用。為每個範例評分:
| 訊號 | 權重 | 理由 |
|---|---|---|
| 使用者接受了 AI 回應 | 高 | 直接的正面訊號 |
| 使用者編輯後接受 | 最高 | 編輯結果就是理想輸出 |
| 使用者拒絕了 AI 回應 | 低(謹慎使用) | 負面訊號,作為對比有用 |
| 長而詳細的互動 | 中 | 為模型提供更多上下文 |
| 常見的查詢模式 | 中 | 高頻模式最為重要 |
目標分佈
您的訓練集應大致匹配正式環境的查詢分佈。如果 40% 的使用者查詢是關於主題 A,10% 關於主題 B,您的訓練集應反映該比例。過度代表稀有 主題可能使模型產生偏差。
格式化以進行微調
聊天格式(標準)
大多數微調框架期望聊天格式:
{"messages": [
{"role": "system", "content": "You are an assistant for FitTracker app."},
{"role": "user", "content": "How many calories in a banana?"},
{"role": "assistant", "content": "A medium banana has about 105 calories, 27g carbs, 1.3g protein, and 0.4g fat."}
]}
多輪對話
對於聊天功能,包含完整的對話:
{"messages": [
{"role": "system", "content": "You are an assistant for FitTracker app."},
{"role": "user", "content": "What should I eat before a workout?"},
{"role": "assistant", "content": "A light meal 1-2 hours before works best. Good options: banana with peanut butter, oatmeal, or a small smoothie. Focus on easily digestible carbs."},
{"role": "user", "content": "What about protein?"},
{"role": "assistant", "content": "Add a small amount of protein: a scoop of whey in your smoothie, Greek yogurt with your oatmeal, or a handful of almonds. Keep it under 20g to avoid feeling heavy during the workout."}
]}
分類格式
對於分類任務,格式更簡單:
{"messages": [
{"role": "user", "content": "Classify: Morning run in the park"},
{"role": "assistant", "content": "Cardio"}
]}
資料集大小指南
| 任務 | 最低 | 良好 | 優秀 |
|---|---|---|---|
| 分類(5-10 個類別) | 200 | 500-1,000 | 2,000+ |
| 問答(有界領域) | 300 | 1,000-2,000 | 3,000+ |
| 聊天(多輪) | 500 | 2,000-3,000 | 5,000+ |
| 摘要 | 300 | 1,000-2,000 | 3,000+ |
| 內容生成 | 500 | 1,500-3,000 | 5,000+ |
品質比數量更重要。500 個精心策劃的範例勝過 5,000 個有雜訊的範例。
流程
- 在應用程式中埋入追蹤以記錄互動(需使用者同意)
- 累積資料 2-4 週的正常使用
- 匯出和匿名化記錄的互動
- 使用上述品質標準清理和篩選
- 格式化為聊天 JSON 結構
- 分割為訓練集(90%)和評估集(10%)
- 微調使用像 Ertas 這樣的平台:上傳格式化的資料集,選擇基礎模型,使用 LoRA 訓練,匯出 GGUF
- 在保留的測試集上評估
- 部署 GGUF 模型到裝置端
- 迭代通過定期收集更多資料並重新訓練
您的應用程式現在就在生成訓練資料。問題是您是否正在捕獲它。
Ship AI that runs on your users' devices.
Free plan with 30 credits/mo, no card required. Paid plans from $25/mo USD.
Keep reading

API 日誌轉訓練資料:利用雲端 AI 歷史記錄進行微調
您現有的雲端 AI API 日誌就是一個現成的訓練資料集。如何從 API 互動日誌中提取、清洗和格式化微調資料,用於裝置端模型。

Gemma 3 行動端:微調與裝置端部署
如何將 Google 的 Gemma 3 模型用於裝置端行動 AI。模型選擇、LoRA 微調、GGUF 匯出,以及透過 llama.cpp 在 iOS 和 Android 上部署。

Llama 3.2 行動應用:微調與裝置端部署
在行動應用中使用 Meta Llama 3.2 1B 和 3B 模型的完整指南。使用 LoRA 微調、匯出至 GGUF,以及透過 llama.cpp 在 iOS 和 Android 上部署。