微調、RAG、提示詞工程怎麼選?一把尺講清

模型總答不對,會議室裡分成三派:「寫好提示詞就行」「上 RAG」「微調一下」。到底聽誰的?先把多數對比文章不肯直說的話說清楚:這三派通常都對了一部分,因為它們修的是不同的東西。提示詞工程、RAG、微調不是同一個問題的三個競爭方案,而是三層逐級加碼的台階。選對的關鍵不在背功能對比表,而在回答一個問題:你要改的是模型知道什麼,還是模型怎麼表現?

這篇文章給你這把尺、一個三問快篩,以及流行說法靠不住的幾種情況。

升級階梯:便宜的那層先試

把適配一個大模型想成帶一個新員工上手,四層台階一目了然。

提示詞工程是職務說明書。你把指令寫清楚:語氣、格式、約束。一個能力合格的員工第一天就能照做。成本約等於零,因為你只是在改文字。說明書管用,這事就完了,不用往下看任何廠商頁面。

少樣本示例(few-shot)是給他看兩個做好的樣例。你在提示詞裡貼兩三個輸入輸出對,模型照著樣子模仿。還是便宜,還是隨時能撤。Meta 自己的指導寫得很直白:任何微調之前先做少樣本實驗,它甚至能預判微調能帶來多少提升。

RAG 是給他配一個資料庫。模型回答問題時先查文件,而不是憑記憶。知識從此可以每天更新,答案還能標出處。成本從這一層開始(向量資料庫、入庫管線),詳細機制我們寫過一篇 RAG 全解,要動手的可以過去讀。

微調是送他去做正式訓練。模型的權重被你精心準備的樣本永久地重塑。效果最強,成本最高,週期最長,而且最不可逆。

(還有一條常被忘掉的岔路:長上下文視窗,把材料全部直接貼進去。單份長文件這麼乾沒問題,但按 token 計費,而且再大的視窗也裝不下百萬份文件的庫。)

我自己在幫團隊做選型時的規矩是:便宜的那層沒榨乾,不付下一層的錢。不是因為貴不好,而是跳層之後你根本說不清貴的那層有沒有起作用。第一天就直接微調的團隊,手裡沒有任何基線可對比。我見過有團隊跳過前兩層直接開訓,結果一段提示詞就能修好的輸出格式問題,被一輪訓練「教會」了——白忙一場。

一把尺:改行為,還是補知識

Databricks 把核心取捨講得很乾淨:RAG 是推理時注入知識,微調是部署前把專長烤進權重。落到選型上,這個區分準得出奇:

  • 知識問題(模型不知道你的產品手冊、這一季的政策、你們的合約)指向 RAG。IBM 說得明確:微調通常無法注入新知識,而且微調後的知識凍結在訓練那一刻。新季度新法規?要嘛重訓,要嘛……更新一下檢索索引就行。
  • 行為問題(語氣不對、格式不對、術語不專業、邊緣情況不聽話)指向 微調。你在教一種風格或一門手藝,不是在補一條事實。

提示詞工程墊在兩者底下:它是任一方向的廉價第一次嘗試。IBM 的指南裡有句話值得釘在牆上:再多的訓練和再多的資料接入,都補償不了糟糕的提示詞。指令寫得含糊,修它只要一個下午;跳過這一步,你永遠不知道 RAG 和微調到底是不是真有必要。

提示詞工程:天花板在哪

怎麼判斷提示詞這條路走到頭了?三個訊號:

  • 缺的是事實,不是指令。無論怎麼措辭,都不可能讓它「知道」你的私有文件,這是知識缺口,再多形容詞也補不上。
  • 格式穩不下來。你要每次都是嚴格 JSON,它十次裡有九次照做、一次自由發揮。指令能幫你走到 90%,但讓行為在高負載下依然穩定是微調的主場。
  • 示例多到提示詞裝不下。當你貼了十幾個少樣本、模型開始忽略其中一半(Meta 特別點名了這個現象),你就已經超出了提示詞的承載力,而且有意思的是,這恰恰是 RAG 登場的時刻:按問題檢索相關示例,本來就是檢索的另一種說法。

RAG:補知識的賽道

診斷是缺知識,標準答案就是 RAG:把模型接上你的文件,提問時檢索,帶引用回答。機制值得單獨一篇講,我們已經寫了,這裡只說跟決策有關的部分:事實常變、答案要標出處、私有資料要留在可管權限可稽核的一層裡,這三樣是 RAG 的主場。

什麼時候 RAG 不是答案?當你的抱怨是「它答得對,但說話的方式/格式/耐心不對」。檢索教不會模型你們的行文風格。那是行為問題,階梯告訴你行為歸哪層。

還有一點要如實說:把兩者混著用、讓微調過的模型更會利用檢索到的資料,是被驗證過的模式,Meta 在用例清單裡明確列了「微調模型以更好地使用檢索器給出的上下文」。賽道幫你起步,但賽道不是牆。

微調:改行為的賽道

大模型微調是在預訓練模型上繼續訓練:用標註好的輸入輸出對演示你要的行為,永久更新它的權重。這是監督式學習,你的資料品質就是效果上限。Databricks 把資料準備稱為整個流程最關鍵的一步,因為壞樣本不會安靜地失效,它會把錯誤直接寫進參數。

下手之前值得知道三件事:

成本的帳已經變了。全量微調更新所有參數,要正經的 GPU 陣容。參數高效方法(代表是 LoRA 低秩適應,只訓練一小撮新增權重)社群基準給出口徑:不到 1% 的可訓練參數,能拿到全量微調 90% 以上的效果。以前是資料中心專案,現在一張強力單卡就能開工。

需要的資料比你想的少——有時候。Meta 團隊報過數字:ChatGPT 在 Reddit 評論情緒分析上的準確率從 48% 提到 73%,只用了一百個樣本;一個 Phi-2 模型做金融情緒分析從 34% 提到 85%。他們的經驗法則:基線準確率低於 50% 時,幾百個樣本常帶來大幅提升;基線高了,回報變平,功夫要花在資料品質上。

它會忘事。社群管這叫災難性遺忘:在某個領域猛訓一通的模型,可能把原本會的通用本事練丟。另外有個違反直覺的隱私問題:微調是把資料烤進權重,而權重裡的東西能被部分提取出來——受監管產業請注意,Databricks 的口徑是把敏感文件放在有權限控制的檢索層(也就是 RAG)才是更好治理的設計,不是更差。

三問快篩

Meta 的完整框架有八個問題。實際用起來,三個就能幹大部分的活:

先問什麼答案去哪層
壞的是什麼:事實還是行為?事實/時效/要引用RAG(提示詞先行)
語氣/格式/穩定性微調(提示詞+少樣本先行)
手裡有多少標註資料?不到幾百對提示詞+RAG;微調大概率餓死
幾百對以上、任務穩定微調開始可行
知識多久變一次?每天/每週RAG,重訓永遠在追移動靶
很少變都行;微調的穩定性開始值錢

如果你只從這篇文章帶走一個習慣,帶第一行:選技術之前,先用一句話說清抱怨——「它不知道 X」還是「它表現得不對」。這句話會替你選好賽道。

組合拳:兩邊都值才一起上

Meta 和 Databricks 在這點上口徑一致:生產環境裡,混合方案常常優於單用任何一個。經典管線拿醫療助理舉例:先用醫學文獻微調,讓它說行話;再疊 RAG,讓它檢索最新的診療指引。行為來自權重,知識來索引,引用來自檢索。

但帳也要算清楚:兩套系統意味著兩倍的管線、評測和故障面。給工程時間有限的團隊的排序建議:提示詞和少樣本用到吱吱作響,剩下的知識缺口交給 RAG,等量出來的行為缺口熬過了前兩層,再上微調。「混合最優」是真的,它也是專案維護費悄悄翻倍的經典路徑,兩邊各自掙到飯錢才組合,別因為架構圖上畫著就組合。

常見問題快答

微調和 RAG 哪個好? 微調和RAG的差別一句話:RAG 管知識(新鮮、可引用、私有),微調管行為(語氣、格式、穩定性)。沒有普適答案:流行的「先 RAG 不行再微調」是不錯的預設順序,但如 Meta 所說太簡化,RAG和微調的差別更多是分工而非替代——最強的生產系統常常兩個都在跑。

微調之後還需要 RAG 嗎? 通常需要,只要你的事實會變。微調不能可靠地注入新知識,它的知識凍結在訓練時刻;檢索讓答案保持最新、可溯源。

LoRA微調一句話是什麼? 參數高效微調方法:只訓練一小撮新增權重而不是全部參數,大約千分之一到百分之一的 trainable 參數,拿到典型任務 90% 以上的收益。

微調需要多少資料? 基線弱的時候比想像中少,Meta 報過 100 個樣本提升 25 個百分點;幾百對是合理起點。比數量更重要的:樣本要反映生產環境的真實流量長什麼樣。

微調對私有資料更安全嗎? 違反直覺,恰恰相反。微調把資料烤進權重,權重內容可能被提取出來;RAG 把文件留在你能控制和稽核的權限層裡。受監管產業一般更偏好檢索方案。

下次會議室再分成三派,先問那個藏在爭論底下的問題:輸出到底哪裡不對?說出問題,階梯——提示詞、示例、檢索、訓練——會告訴你該站在哪一級。從低處開始,量著走,資料說話了再往上爬。