[AGENT] 5 分鐘閱讀OraCore 編輯部

法律標註微調小型 LLM 產出

把 3B SmolLM3 微調成法律標註專家,並建立可重跑的評估與分流流程。

分享 LinkedIn
法律標註微調小型 LLM 產出

81.7% 代表 3B SmolLM3 能在單一法律標註任務上勝過部分大型模型。

這篇給要把通用開源模型變成法律標註專用模型的開發者。照做完,你會拿到一個可用的 LoRA 微調模型、可重跑的評估腳本,以及一套把難例交給大模型的分流規則。

開始之前

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

  • Hugging Face 帳號與 access token。
  • Python 3.10+、pip 23+。
  • PyTorch 2.2+,CUDA 12.1 或更新版本。
  • Transformers 4.40+、Datasets 2.19+、PEFT 0.11+、Accelerate 0.30+。
  • 一台有 NVIDIA GPU 的主機,或可用的雲端 GPU 環境。
  • 一份已標註的法律合約資料,格式可為 CSV 或 JSONL。
  • 足夠磁碟空間可放 base model、adapter 權重與測試集。

Step 1: 定義單一法律標註任務

先把問題縮到小模型能學的範圍,避免一開始就碰廣泛推理。

法律標註微調小型 LLM 產出

選一個重複決策,例如合約條款標記、法務工單分流,或法律議題分類。把標籤數量控制在小而穩定的集合,並寫出輸入與輸出的明確定義。

例如,輸入是合約段落,輸出只能是固定標籤之一。若人工標註者對同一筆資料常常不一致,模型也很難學出乾淨規則。

你應該得到一份「任務規格書」,內容包含標籤清單、例子輸入,以及一個簡短驗收條件,例如「在保留測試集上對齊人工標籤」。

Step 2: 整理可訓練資料集

把資料整理成訓練時可直接讀取的格式,減少跑訓練時的額外清理。

法律標註微調小型 LLM 產出

先切分 train、validation、test 三份,去除重複樣本,統一標籤名稱,再把每筆資料轉成 prompt-response 配對。若採 JSONL,建議一行一筆,方便串流進訓練流程。

{"prompt":"Classify this clause: ...","response":"termination"}

確認 validation 與 test 裡沒有訓練集看過的合約。你應該看到每個 split 的筆數統計,並且三份資料彼此沒有重疊。

Step 3: 下載基底模型並掛上 LoRA

這一步的產出是可訓練的基底模型設定,讓你只微調少量參數。

從小型開源模型開始,例如 SmolLM3,然後加上 LoRA adapter,只訓練低秩層。這樣能把成本壓在單張 GPU 可接受的範圍,也方便你反覆調整資料。

先登入 Hugging Face,再載入模型與 tokenizer,接著凍結 base model 的權重,只保留 adapter 可更新。訓練完只存 adapter 與 tokenizer,方便後續重用。

你應該看到模型成功載入、LoRA 層被插入,且輸出資料夾裡出現 adapter 權重檔。

Step 4: 啟動微調訓練

這一步的產出是一次完成的微調 run,以及可供比較的訓練紀錄。

用你熟悉的訓練框架啟動 fine-tuning,設定 batch size、learning rate、epoch 與 checkpoint 儲存策略。法律標註任務通常不需要很長訓練,重點是讓模型穩定學到標籤映射。

訓練時盡量保留驗證集評估,觀察 loss 是否下降、是否過擬合。你應該看到訓練日誌、最佳 checkpoint,還有一份 adapter checkpoint 資料夾。

Step 5: 跑保留測試與基準比較

這一步的產出是可直接對外說明的 scorecard,證明模型是否真的有用。

把保留測試集送進微調後模型,再用同一份測試集跑一到兩個大型基準模型,然後比較 exact-match accuracy 或 macro F1。原始案例中,3B SmolLM3 在 74 分鐘後達到 81.7%,高於 GPT-5.5 的 76.7% 與 Claude Sonnet 4.6 的 77%。

同時記錄品質與成本。小模型可能只在單一工作流上勝出,但那已足以支撐實務部署。你應該看到一份包含預測、分數與成本註記的比較表。

Step 6: 設定難例分流與監控

這一步的產出是可上線的 routing 規則,以及持續監控的清單。

先設一個信心門檻或簡單 fallback 規則。當小模型不確定時,把請求送到大型模型,並記錄兩邊結果。這樣常見案件走低延遲路徑,模糊案件則有保護網。

一開始保持 router 簡單即可,可用分數差、label entropy,或用歷史失敗樣本訓練一個二分類器。你應該看到大部分流量留在小模型,只有少數例外被升級處理。

指標基準/優化前結果/優化後
法律標註準確率GPT-5.5:76.7%SmolLM3 微調:81.7%
法律標註準確率Claude Sonnet 4.6:77%SmolLM3 微調:81.7%
訓練時間未提供74 分鐘

常見錯誤

  • 標籤定義太寬。修法:只保留一個重複決策,先寫任務規格再訓練。
  • 資料有重複或雜訊。修法:先去重、統一標籤名稱,並保留乾淨測試集。
  • 沒有 fallback。修法:把低信心請求送去大型模型,並完整記錄升級原因。

接下來可以看什麼

下一步可以接 retrieval 讀取最新法規,或做量化與蒸餾,讓這個法律標註專家能在更小的硬體上部署。