如果這 30 天你只讀一篇,我希望是這一篇。
大部分垂直模型專案的失敗,不是敗在訓練技巧,是敗在把資料放錯地方。而且這個錯誤有個惡毒的特性:它在訓練階段完全看不出來,要等到你拿 benchmark 結果出來,才發現努力全打在棉花上。
我自己就踩了,而且踩得不輕(Day 12 的檢討)。所以今天先把正確的判準寫下來。
手上的每一份資料,只有三個去處:
訓練集 ── 我要模型「內化」的東西
RAG 庫 ── 我要模型「查得到」的東西
評測集 ── 我要用來「驗證」的東西(絕不能碰前兩者)
判斷的核心問題只有一個:
這份資料,我要模型「變成」它,還是「引用」它?
判準:這份資料代表的是行為、語域、或思考方式,而不是可查詢的事實。
具體來說:
共同點是:這些東西沒有「正確答案」可以被檢索出來,它們是一種風格或傾向。
判準:這份資料是事實、會過期、需要引用出處、或者要能被更新。
具體來說:
共同點是:這些東西的價值在於準確與可追溯,而模型的參數記憶既不準確也不可追溯。
我把 CVE 描述、標準文件、教材內容大量餵進了 CPT。
當下的理由聽起來很合理:「讓模型多懂一點資安知識總是好的。」
錯在哪?
第一,它們是事實類資料,模型會記成模糊印象。 模型讀完幾萬筆 CVE 描述,不會變得能準確回答 CVE-2024-XXXXX 是什麼,它只會學到「CVE 描述長這樣」。而後者我用一百筆就學得會。
第二,這是評測資料洩漏的溫床。 我用來評測的 CyberMetric、SecQA 這類題庫,題目來源就是公開的資安知識與標準文件。當我把大量標準文件餵進 CPT,我等於在污染自己的評測。分數如果變高,我無法確定是模型變強還是它看過答案。
第三,也是最痛的——它排擠了真正該進訓練集的資料。 訓練預算(時間、步數、token 量)是有限的。我花在讓模型「模糊記住 CVE」的每一個 token,都是從「讓模型學會寫報告」那裡偷來的。
判準:任何我打算用來宣稱「模型變好了」的資料。
規則只有三條,但每一條都不能破:
第三條特別要小心,因為它的誘惑非常大。當你花了三天訓練完,結果 benchmark 掉了 2%,「換一組更貼近場景的評測集」這個念頭會非常自然地冒出來。那個瞬間你要提醒自己:你在做的事情叫做結果導向的評測選擇,這是自欺。
| 資料類型 | 訓練 | RAG | 評測 |
|---|---|---|---|
| 資安部落格、技術文章 | ✅ CPT | ||
| 威脅情報敘事報告 | ✅ CPT | ✅ | |
| CVE 資料庫 | ❌ | ✅ | |
| 資安標準法規原文 | ❌ | ✅ | 部分 |
| 產品操作手冊 | ❌ | ✅ | |
| 歷史事件報告(格式) | ✅ SFT | ||
| 歷史事件報告(內容) | ❌ | ✅ | |
| 歷史 Q&A | ✅ SFT 少量 | ✅ | 部分 |
| 教材與題庫 | ❌ | ✅ | ✅ |
| 判斷情境推理 | ✅ 蒸餾 |
注意「歷史事件報告」被拆成兩行。同一份文件,格式進訓練、內容進 RAG。 這個拆法是我事後才想通的,但它是對的——你要模型學會的是它的骨架,不是它的血肉。
會過期的、要引用的、要準確的 → RAG。
要內化的、是風格的、沒有標準答案的 → 訓練。
要用來證明有效的 → 鎖起來,碰都不要碰。
明天建評測基線,先讓通用模型跑一次,拿到那條我後來一直在追的線。
💡 關於作者
我是 Fngi,專注在 AI 安全與雲端資安領域。如果這篇對你有幫助,歡迎追蹤 Instagram @aid3fend,我在那裡分享更多 AI 資安的實務筆記與趨勢觀察。