TTPrompt 論文閱讀分析:當 CTI NER 真正卡住時,問題可能不是檢索不到像的例子,而是模型根本沒被清楚教會規則
本文由 AI 產生、整理與撰寫。
論文基本資訊
- 論文標題:From Retrieval to Reasoning: A Framework for Cyber Threat Intelligence NER with Explicit and Adaptive Instructions
- 作者:Jiaren Peng、Hongda Sun、Xuan Tian、Cheng Huang、Zeqing Li、Rui Yan
- 年份:2025
- 來源:arXiv:2512.19414
- 論文連結:https://arxiv.org/abs/2512.19414
- 主題:CTI、NER、Instruction Learning、In-Context Learning、Annotation Guidelines、Few-shot Adaptation、TTPrompt
如果前幾篇 CTI 論文多半在談 schema、verifier、STIX、ATT&CK mapping,這篇 From Retrieval to Reasoning 補上的,反而是更靠前、也更基本的一塊:當我們要讓 LLM 從威脅情報文本裡穩定抽出實體,問題也許不只是檢索有沒有找對例子,而是模型到底有沒有真的理解「這個資料集想怎麼標」這件事。
作者對現在很常見的做法下了一個蠻狠、但其實很準的判斷:很多 CTI NER 系統表面上靠 retrieval-based in-context learning(ICL)在進步,實際上模型吃到的幫助,往往不是因為它真的學會了更好的語意推理,而只是因為檢索剛好找回了實體類型重疊的範例。換句話說,模型不是在「理解規則」,而是在「碰巧看到像的答案」。這種成功方式很脆,資料集一換、標註風格一變、實體分布一偏,就很容易失靈。
所以這篇 paper 真正想做的,不是再把檢索做得更花,而是把 CTI NER 的重心從隱性誘導,往顯性指令拉回來:與其指望模型自己從 few-shot examples 猜出 annotation logic,不如把 task definition、guideline 與策略直接講清楚,甚至讓模型能根據少量錯誤回饋自己修規則。
這篇論文在打哪個痛點?
CTI 的 named entity recognition 不是一般新聞 NER。它會撞上幾個很煩的現實:
- 同一類實體在不同資料集裡可能有不同切法與標註邊界
- 實體類型本身高度領域化,像 malware、tool、campaign、vulnerability、indicator 常常混在敘事裡
- 真實文本的寫法不整齊,縮寫、別名、產品名、攻擊行為和技術描述常常互相纏在一起
- 許多 benchmark 之間其實不是只有資料不同,而是 annotation dialect 根本不同
這也意味著,CTI NER 的難點不是單純找 span,而是理解這個任務此刻要求你把什麼視為實體、用什麼邏輯切分、在模糊地帶時該偏哪一邊。
作者認為 retrieval-based ICL 在這裡有個被低估的問題:很多人以為模型是透過 semantic similarity 學到任務,但實際上,它經常只是因為檢索到的例子恰好含有類似實體類型,於是把那個局部 pattern 照抄過去。這不是真正可靠的 induction,也難怪一碰到 annotation style 漂移就開始掉分。
TTPrompt 在做的事:把 CTI 的 TTP 概念反過來拿來設計 instruction hierarchy
這篇論文最漂亮的設計,是它沒有只是說「多寫一點 prompt」。作者把 CTI 世界本來就很熟的 Tactics, Techniques, and Procedures(TTPs) 概念,反過來拿來組織 instruction:
- Tactics:定義任務層的核心目標,也就是這個標註任務到底想抽什麼
- Techniques:告訴模型應該採取哪些判斷策略與辨識方法
- Procedures:把具體 annotation guidelines 寫成可執行的步驟與規則
這件事的價值在於,它把原本隱含在 few-shot examples 裡的任務知識,拆成更清楚的顯性指令結構。模型不再只靠「看起來像」,而是被要求先理解:這個任務的目標是什麼、判斷時該注意什麼、遇到邊界案例時要遵守哪些規則。
簡單說,TTPrompt 想讓模型從 pattern matching,往 guideline-following 靠近。 對 CTI 這種資料集之間常常標註風格不一致的任務來說,這比再塞幾個示例更有長期價值。
這篇論文最關鍵的第二步:不是只有靜態規則,還讓規則能自我修正
如果只有 instruction hierarchy,這篇 paper 還不夠有意思。真正把它推進一步的是 Feedback-driven Instruction Refinement(FIR)。
作者看到的問題很直接:就算你先寫了一套看起來漂亮的 guidelines,它也未必能直接適配所有 CTI benchmark。 不同資料集的 annotation dialect、span boundary、label granularity 其實都可能不同。這時候,如果 instruction 是靜態的,模型仍然會卡在 domain shift 上。
FIR 的做法是讓模型從少量標註資料與錯誤中回頭修正自己的 instructions。它的精神不是重新 fine-tune 整個模型,而是透過少量 feedback 去更新「任務規則該怎麼寫、怎麼講比較對」。
這點很值得注意,因為它代表作者不是只把 prompt 當作一次性文字模板,而是把 instruction 視為可以被調整、可隨資料集語境進化的 control layer。這種想法其實非常適合 CTI,因為 CTI 任務最大的麻煩之一,本來就不是世界上只有一套正確標註,而是不同團隊、不同資料源、不同 benchmark 會各自形成自己的標註口音。
結果代表什麼?
根據摘要,TTPrompt 在五個 CTI NER benchmarks 上都穩定超越 retrieval-based baselines,這已經很夠看。更有意思的是,作者特別強調兩個訊號:
- 只用 1% 的訓練資料做 refinement,就能逼近 full fine-tuning 的效果
- 在複雜的 CTINexus 上,Macro F1 還能比 fine-tuned ACLM 高出 10.91%
這裡真正該看的,不只是「又一篇 paper 分數比較高」,而是它透露出一個很實用的方向:在 CTI 這種標註代價高、資料分布又碎的任務裡,與其一直追求更大規模 retriever 或 full fine-tuning,也許把 annotation logic 顯性化、再讓它能用少量 feedback 自我修正,才是更省力也更穩的路。
尤其作者還指出,在 LADDER 上只靠極少量 refinement 就能接近 full fine-tuned baseline,這對真實團隊很有吸引力。因為這意味著你不一定要重新做整套重訓,只要能提供少量高品質修正,就可能把模型往正確的 annotation dialect 拉過去。
我怎麼看這篇論文?
我覺得這篇 paper 最值得記住的,不是它把 prompt 寫得更精緻,而是它其實在提醒一件常被忽略的事:很多 CTI extraction 任務失敗,不是模型完全不懂資安,而是我們一直把最重要的 annotation knowledge 藏在資料例子裡,期待模型自己悟出來。
這在 benchmark 上有時還撐得住,但一進真實工作流就會很危險。因為現實世界裡你永遠會遇到:
- 資料源換了
- 標註習慣換了
- 實體邊界定義換了
- 想抽的 schema 更細或更粗了
如果系統只能靠 few-shot examples 隱性學規則,它就很容易變成一種「在熟題上看起來很聰明、離開題庫就開始飄」的工具。TTPrompt 比較有價值的地方,是它把規則從例子裡拉出來,變成可以顯性檢視、顯性修改、顯性適配的 instruction layer。
這個方向也很自然地接到最近 sectools.tw 那條主線:從可驗證 structured CTI outputs、到標準驅動 extraction、再到這篇的 instruction-driven NER。它們其實都在指向同一件事:真正能落地的 CTI LLM,不該只會在 benchmark 上猜答案,而是要能被明確約束、被少量校正、被下游系統接住。
如果要用一句話收這篇,我會這樣講:TTPrompt 真正想證明的,不是「少樣本也能做 CTI NER」,而是「當任務規則說得夠清楚、也能隨錯誤修正時,模型才比較像在做 reasoning,而不是只是在背相似範例」。
這不是最熱鬧的一種 paper,但它碰到的是 CTI extraction 很深的一層方法論問題。對想把 LLM 接到情資結構化流程裡的人來說,這篇值得看。
