為什麼這一級不一樣
本級之前的內容都是在讓大型語言模型去*產出*某樣東西——更鋒利的提示、一條推理鏈、一個用來給答案接地的檢索步驟。而這最後一篇要回答的,是決定一切能否上線的問題:*輸出到底好不好,出錯時又會怎樣?*這聽起來不如花式提示那麼炫,卻是真實系統的生死所在。讓你驚艷一次的演示不是產品;產品是那個你能在第一萬次、你本人從未親眼讀過的查詢上依然信任的東西。
有兩件事讓評估生成式輸出格外困難。第一,正確答案往往不止一個——一段摘要、一封郵件、一處程式碼修復,可以以十幾種不同的形態都很出色,所以你給分類器用的那個乾脆的準確率數字在這裡不適用。第二,模型即便錯了也很流暢:它會用與說真話時一樣溫和的語氣,自信滿滿地說出一句假話。因此我們需要新工具——為開放式文本量身打造的評估,以及一開始就假定模型偶爾會出格、並仍能把它接住的護欄。
評估:度量開放式輸出
評估(eval)不過是對模型品質的一次可重複測試:一組固定的輸入、一套給輸出打分的方法,以及一個你可以長期盯著看的數字。這門功夫和你早先學到的基準測評、以及基線的價值是同一回事——無法度量的東西就無法改進。生成式文本的難點在於*打分*,而這裡有三類誠實的做法,每一類都有真實的局限。
- 基於參考答案的指標。 用BLEU、ROUGE或嵌入相似度等度量,把輸出與標準答案對比。便宜又自動——但它們獎勵表面重合,於是一個正確的改寫可能得分很低,一個流暢的錯誤答案反而得分很高。
- LLM 充當評審。 讓一個強模型按評分量表給輸出打分(「它忠於原文嗎?切題嗎?」)。它能擴展到開放式文本——但評審本身也有偏好(偏愛更長、更自信的答案),還可能被鑽空子,所以要拿它和人工抽樣核對。
- 人工評估。 由人來給輸出打分或排序,有時透過兩兩對比的A/B 測試進行。在品味與安全上它是金標準——但它慢、貴、雜訊大,所以你把它留給那些便宜方法判不了的情形。
無論你用哪種方法,你打造出的最有價值的東西都不是那個指標——而是評估集本身:一份精挑細選、真實、有難度、有代表性的輸入集合,並標註好一個好答案該是什麼樣子。每當系統在生產中翻車,就把那個案例補進去;每個 bug 都變成一道永久的測試題。這與經典機器學習中留出測試集的直覺如出一轍,同樣的警告也適用:要防止資料洩漏,因為一旦你的提示被悄悄調成專門通過自己的評估,那個數字就什麼也不代表了。
幻覺:自信、流暢,卻是錯的
幻覺(hallucination)指的是模型把假的或沒有依據的東西當作事實陳述出來——一條偽造的引用、一個虛構的 API、一個自信卻錯誤的日期。人們很想把它當成一個待修補的 bug,但更誠實的看法是:它是這類模型工作方式所固有的。大型語言模型是靠預測下一個詞元訓練出來的;它學到的是看似合理的文本*形狀*,而不是一個經過核實的事實資料庫。生成一句流暢、聽上去很可能的句子,恰恰就是它的本職——而一句流暢的謊言,聽上去和一句流暢的事實一樣可能。
那要怎麼對付它?你能做的是減少它,而非消滅它。最大的一根槓桿,是用檢索增強生成把模型接地到真實來源上,然後*核查答案是否真的能追溯回那些來源*——這是一項忠實度評估,而不只是憑感覺。你可以調低溫度,讓模型咬定它最可能(通常也最穩妥)的續寫,而不是跑去發揮創意。你還可以讓模型給出引用、允許它說「我不知道」,或讓它展開推理過程,好讓審核者——無論是人還是程式——有東西可以對照核驗。
護欄:在邊界處攔下麻煩
護欄(guardrail)是一道圍在模型*外面*的檢查——設在輸入端或輸出端,而不是在模型內部。可以這樣設想一條工廠流水線:模型是工人,護欄是上下游的品檢員。在入口處,你篩查提示注入(使用者或一份被檢索到的文件試圖覆蓋你的系統提示)、跑題請求,或套取機密的企圖。在出口處,你在回覆抵達使用者之前先檢查它:它會洩露個人資料嗎?含有不允許的內容嗎?破壞了必需的格式嗎?
user input │ ▼ [ input guardrail ] ──blocked──► refuse / safe reply │ ok ▼ LLM ◄── system prompt + retrieved context │ ▼ [ output guardrail ] ──flagged──► block / redact / escalate │ ok ▼ response to user
護欄是分層的,便宜的那層先上。簡單規則——正規表示式、黑名單、一個 JSON schema 校驗器、一個長度上限——以幾乎為零的成本和延遲攔下出人意料的一大部分。它們之上是用來標記有毒內容或自傷內容的小型分類器與審核模型。再往上,一次額外的 LLM 呼叫可以判斷規則漏掉的細微之處。這裡的功夫在於排序:讓又快又確定的檢查跑在又慢又模糊的檢查之前——並記住每一道護欄都會增加延遲和推理成本,所以要把這份預算花在風險真正所在之處。
迴路中的人
沒有任何評估、任何護欄是完美的,所以安全的最後一層是人。人在迴路這一模式讓一個人留在決策路徑上——審閱、批准或糾正——尤其是在錯誤答案代價高昂或不可逆的地方。「要多少人」是一個旋鈕,而不是一個開關。一次用完即棄的腦力激盪一個人都不需要;一封郵件草稿想在發送前被瞄一眼;一條醫療或法律建議、一筆超過閾值的退款,或任何智慧體在現實世界裡做出的動作,都應停下來等一個人來批准。讓摩擦力匹配風險。
人工審核也是系統隨時間變好的途徑。每一次糾正都是一個帶標籤的樣本:把它餵回你的評估集、你的護欄規則,或者——如果某種模式足夠龐大穩定——餵回你將用於微調的資料。這就閉合了你在整一級裡一直在搭建的迴路。提示與檢索塑造輸出;評估與護欄度量並約束它;人接住漏網之魚,並教會系統「好」意味著什麼。這正是把一個巧妙的演示,變成一個你真能交付、並願意為之背書的東西,所需要的全部功夫。