跳到主要內容

LV.09

岔路口:Prompt、RAG、Fine-tune、規則

不是每個病都要開刀

BOSS
萬靈丹推銷員
時間
約 30 分鐘
建議先過
LV.08

這一關要打倒什麼?

Boss 是「萬靈丹推銷員」,口頭禪是「fine-tune 什麼都能解決!」。他說得很誘人,因為你剛學會 fine-tune 的概念,手上有錘子,看什麼都像釘子。

類比:沒有一種處置適用所有病人。輕症衛教就好,不必每個人都開刀;該開刀的也不能只靠衛教。這一關要練的是「分診」:看到一個任務,先判斷該走哪條路,再決定要不要動刀。

這一關沒有實作,兩條軌道(Mac 與 Colab)完全相同,是一次決策練習。

先講為什麼:四條路各自解決什麼問題

路線做了什麼事通常擅長通常不擅長
規則式(regex、查表、if-else)寫死的規則格式固定、規則明確的欄位自由書寫、規則寫不完的變化
Prompt(含 few-shot、輸出約束)不改模型,只改指令快速試、零訓練成本格式不穩、風格難固定、長指令吃 context
RAG(檢索增強生成)先找資料,再讓模型照資料回答知識常更新、需要引用來源需要建索引、檢索錯了答案會跟著錯
Fine-tune(微調)用範例調整模型權重格式、風格、專一抽取任務更新知識成本高;需要資料、算力與評估

這是一個常見的經驗法則:事實更新用 RAG;格式、風格、專一抽取用 fine-tune。要說明的是,這個說法是作者整理的推論,直接比較兩者的文獻目前還沒有補齊來源,請當成起點,不要當成定理。

兩種極端說法,都先放一邊

  • Unsloth 文件說「fine-tune 能複製 RAG 的功能,但反之不然」。這是工具廠商的說法,偏向自家路線,本站視為偏激。反方向也不宜:RAG 無法取代「把輸出風格或格式訓練進模型」。
  • 2026 年 JMIR 有一篇比較 fine-tuning、RAG 與 hybrid 的系統性回顧(35 篇),但作者尚未能取得內文,結論待核,本站暫不引用其數字。

比較可靠的做法是自己對照:用同一份評估資料,把規則式、prompt、(必要時)fine-tune 各跑一遍,看數字。這也是 LV08 先做 baseline 的原因。

一份有證據的參考

Nat Commun 2025 的研究(PMID 40188094)評估多種語言模型在生醫 NLP 任務上的表現,指出開源 LLM 在多數 BioNLP 任務需要 fine-tune,才能縮小與 GPT-4 的差距;而 GPT-4 在推理型任務(例如醫學問答)較強。

這個結果的重點是「任務類型很重要」,並不能推論成「所有任務」。我們的主線任務(PHI 標記與輸出 JSON)屬於偏抽取、格式固定的任務,是 fine-tune 小模型常見的適用情境,但仍然要用自己的評估資料驗證。

決策流程(動手前問五題)

依序回答,遇到第一個「是」就先走該路線;走完還不夠,再往下一題。

  1. 規則寫得出來嗎?(格式固定、有明確 pattern)→ 先用規則式。
  2. 加 few-shot 與 JSON schema 約束後,結果夠好嗎?(對照 baseline)→ 夠好就停在 prompt。
  3. 答案取決於會更新的外部資料嗎?(藥品公告、院內流程)→ 加 RAG。
  4. 問題是格式不穩、風格不對、或要大量處理同一類專一任務嗎?→ 考慮 fine-tune。
  5. 資料能自己合法取得嗎? 若是真實病歷,宜先確認院方核准與 IRB;若不行,就用合成資料(下一關)。

三點補充:

  • 四條路線可以疊加。例如:規則式處理電話與身分證,fine-tune 的模型處理人名與醫院名,最後再用規則式驗證輸出格式。
  • 小模型能「在院內硬體執行」不代表安全合規。本地不等於合法。
  • 臨床輸出需要專業人員審閱,本站所有成果僅供教學。

練習:三個情境,各自走哪條路?

試著先自己判斷,再往下看作者的想法(都是推論,沒有標準答案)。

情境 A:把每天上百則的護理交班文字,摘要成固定的五個欄位。 欄位固定、風格要一致,屬於「格式與風格」的需求。作者會先試 prompt 加 JSON schema,若格式仍不穩,才評估 fine-tune。

情境 B:讓學弟妹查詢最新版的院內抗生素使用指引。 指引會更新,而且回答最好能指出出處。作者會優先考慮 RAG,因為換文件比重訓快,也比較容易追溯來源。但真實院內文件仍需要院方核准。

情境 C:從報告中找出所有「陽性淋巴結數」的數字。 若報告格式相當固定,規則式可能就夠;若寫法千奇百怪,再考慮 prompt 或 fine-tune。重點是先看「規則寫不寫得出來」。

提醒:每一條路都有隱藏成本。規則式要維護,prompt 要反覆調,RAG 要管理文件與索引,fine-tune 要準備資料、花算力、做評估。成本與效益都要一起算。

這三題的共通點是:判斷依據不是「哪個技術比較厲害」,而是「這個任務的瓶頸是什麼」:知識會不會變、格式穩不穩、規則寫不寫得出來。

套用到「病歷守門人」

  • 電話、身分證字號這類格式固定的欄位:規則式通常夠用,也是 LV08 的對照組。
  • 人名、醫院名、自由書寫的日期:regex 很難,prompt 的 baseline 也不穩(見 LV08),所以這裡才是 fine-tune 的目標。
  • 知識更新需求:本專案不需要,所以用不到 RAG。
  • 結論:主線選擇「fine-tune 小模型處理 prompt 與規則難以處理的部分」,並保留規則式作為對照與後處理。這是一個「選擇」,不是「fine-tune 比較強」的證明。

本關重點

  • 四條路:規則式、prompt、RAG、fine-tune,各解決不同問題,可以疊加使用。
  • 經驗法則:事實更新用 RAG;格式、風格、專一抽取用 fine-tune。這是作者推論,宜自行驗證。
  • 對「fine-tune 萬能」與「RAG 萬能」兩種說法都保持懷疑,用同一份評估資料對照。
  • 任務類型決定路線;引用的研究結論不可推廣到所有任務。
  • 先試便宜的做法,再決定要不要動刀。

BOSS 戰:萬靈丹推銷員

HP0/5
  1. 你的任務是「每週更新院內藥品公告後,讓助理能回答最新的藥品規格」。哪個路線通常最合適?

  2. 你的任務是「不論病歷多亂,都輸出固定欄位的 JSON」。在 prompt 已經試過、格式仍不穩定時,下一步通常優先考慮什麼?

  3. Unsloth 文件有一說「fine-tune 能複製 RAG 的功能,但反之不然」。比較穩妥的看法是什麼?

  4. 研究(Nat Commun 2025,PMID 40188094)指出,開源 LLM 在多數 BioNLP 任務需要 fine-tune 才能縮小與 GPT-4 的差距,而 GPT-4 在推理型任務(如醫學 QA)較強。這對你選路線的啟示是什麼?

  5. 為什麼規則式程式(regex、查表)仍然在決策樹裡佔一席?