
行動應用的裝置端文字分類
如何建構在使用者手機上運行的快速、精確文字分類。情感分析、內容分類、意圖偵測和垃圾訊息過濾,無需 API 呼叫。
文字分類是最實用的裝置端 AI 功能。它快速(100ms 以內)、精確(微調後 90%+)、在最小的模型上就能運作(1B),且可在幾乎任何現代手機上運行。
如果你的應用程式需要分類內容、偵測意圖、過濾垃圾訊息、分析情感或路由訊息,裝置端分類是最高效的方法。
為什麼分類是裝置端的理想選擇
分類具有使其非常適合行動端的特性:
短輸出: 模型只需生成一個詞或短語(類別標籤)。這只需毫秒,而非秒。
小模型即可勝任: 微調 1B 模型以 90-94% 的準確率處理分類。不需要更大、更慢的模型。
高頻率: 分類通常在每段內容上運行(每則訊息、每則筆記、每個照片說明)。在高頻率下,雲端 API 成本快速累積。在裝置端,每次分類都是免費的。
適合背景運行: 分類可以在背景中運行,無需使用者互動。自動分類輸入的費用。儲存時自動標記筆記。收到訊息時自動偵測垃圾訊息。
分類使用案例
情感分析
判斷使用者輸入的情感基調。適用於:
- 客戶回饋應用(正面/負面/中性)
- 社群媒體監控
- 日記/心情追蹤應用
- 支援工單優先級路由
內容分類
自動為使用者內容指派類別:
- 費用分類(餐飲、交通、娛樂、公用事業)
- 筆記標記(工作、個人、想法、參考)
- 郵件分類(重要、電子報、社交、交易)
- 照片相簿整理(旅遊、美食、人物、自然)
意圖偵測
理解使用者想做什麼:
- 語音助手路由(播放音樂、設定計時器、發送訊息、搜尋)
- 聊天機器人意圖分類(提問、投訴、請求退款)
- 搜尋查詢分類(導航、資訊、交易)
內容過濾
偵測並過濾不想要的內容:
- 通訊應用中的垃圾訊息偵測
- 不當內容標記
- 社群應用中的離題訊息偵測
語言偵測
識別輸入文字的語言,用於多語言應用。路由到適當的模型或翻譯流程。
實作
提示詞模式
對於基於 LLM 的分類,提示詞很簡單:
Classify the following text into one of these categories: [Food, Transport, Entertainment, Utilities, Shopping, Healthcare, Other]
Text: "Uber ride to airport"
Category:
模型生成一個詞:「Transport」
為分類微調
以聊天格式建立訓練範例:
{"messages": [
{"role": "user", "content": "Classify: Uber ride to airport"},
{"role": "assistant", "content": "Transport"}
]}
{"messages": [
{"role": "user", "content": "Classify: Netflix monthly subscription"},
{"role": "assistant", "content": "Entertainment"}
]}
{"messages": [
{"role": "user", "content": "Classify: Grocery store visit"},
{"role": "assistant", "content": "Food"}
]}
使用涵蓋所有類別的 500-1,000 個範例,微調 1B 模型可達到 90-94% 的準確率。這超越了提示式 GPT-4o 在同一任務上的表現(通常 78-85%)。
結構化輸出
為了可靠的解析,指示模型輸出 JSON:
{"messages": [
{"role": "user", "content": "Classify this expense: Uber ride to airport\nOutput JSON with 'category' and 'confidence' fields."},
{"role": "assistant", "content": "{\"category\": \"Transport\", \"confidence\": \"high\"}"}
]}
微調模型學會產出一致的 JSON。直接在你的應用程式碼中解析輸出。
速度最 佳化
分類生成非常少的 tokens(1-10 個)。你可以針對最大吞吐量進行最佳化:
- 將
n_predict設定為較低的值(最多 10-20 tokens) - 使用
stoptokens 在類別標籤後停止生成 - 使用 temperature 0 獲得確定性輸出
- 處理列表時批次化多個分類
透過這些最佳化,1B 模型在旗艦手機上每秒可分類 5-15 個項目。
效能預期
按訓練資料量的準確度
| 訓練範例數 | 1B 準確率 | 3B 準確率 |
|---|---|---|
| 100 | 78-82% | 82-86% |
| 250 | 84-88% | 87-91% |
| 500 | 88-92% | 91-94% |
| 1,000 | 90-94% | 93-96% |
| 2,000 | 92-95% | 94-97% |
大多數分類任務超過 1,000 個範例後收益遞減。從 500 開始,只有在準確率不足時才增加更多。
按裝置的速度
| 裝置 | 1B 分類時間 | 每秒分類數 |
|---|---|---|
| iPhone 16 Pro | 30-60ms | 15-30 |
| iPhone 14 | 50-80ms | 12-20 |
| Galaxy S24 | 40-70ms | 14-25 |
| 中階 Android | 80-130ms | 8-12 |
在任何現代手機上,每次分類都在 150ms 內完成。使用者感覺是即時的。
與雲端 API 的比較
| 指標 |
|---|