「AI 會胡說八道」這件事,多數金融從業者都聽過;但很少有人認真想過:在你的工作場景裡,它具體會以哪幾種形態胡說,每一種的代價是多少。 這篇不談抽象風險,只拆解三種在投研與盡調場景裡最貴的幻覺錯誤,解釋它們為什麼會發生,並給出四道可以寫進 SOP 的防線。讀完你應該能回答一個問題:下一次 AI 給你一個數字時,你要做哪幾個動作才敢用它。
幻覺是什麼:先把機器原理講清楚
大型語言模型(LLM)的工作方式是「根據上下文預測下一個最合理的字」。它沒有一個內建的「事實資料庫」供它查詢,也不會在自己不確定時自動停下來。這帶來兩個直接後果:
- 它優先保證「流暢合理」,而不是「真實」。 一個編造的、但格式與語氣都正確的財務數字,對模型來說與一個真實數字沒有生成難度上的差別。
- 它傾向給出完整答案。 訓練過程獎勵「有幫助的回答」,而「我不知道」在多數對話場景裡被視為沒幫助。這讓模型在資料缺口處傾向填空,而不是承認缺口。
幻覺不是偶發故障,是這類系統的固有特性。金融場景之所以特別危險,是因為財務數字「長得很像」——格式規整、量級合理、有零有整——一個編造的毛利率數字,肉眼幾乎無法與真實數字區分。本站對 AI 編造行為做過系統性實測,結論與失敗形態可以參考 LLM Agent 自主繞過流程約束的實證分析:從 'Skip' 到 'Fabricate' 的惡化路徑。
先給全文的導覽表,三種錯誤各自的形態、代價與核心防線:
| 錯誤類型 | 典型形態 | 為什麼貴 | 核心防線 |
|---|---|---|---|
| 編造數字與附註 | 憑空生成不存在的財務數字、附註內容 | 虛構數據直接進入分析基礎 | 強制引用來源+回查原文 |
| 混淆期間與實體 | 上年數字當本期、A 公司數據安到 B 公司 | 每個數字單獨看都真實,錯在綁定關係 | 實體+期間+幣別+單位四標籤 |
| 推論冒充事實 | 用合理推論填補資料缺口,語氣篤定 | 事實與推測混為一層,無法區分驗證 | 三態標記+低信心棄權 |
第一種最貴的錯誤:編造不存在的數字或附註
形態。 你問模型某公司的分部收入,它給你一組拆分數字,格式完美、加總合理——但年報裡根本沒有這個拆分。或者它引用「附註 23」的內容,而那份年報的附註 23 講的是完全不同的另一件事。
為什麼會發生。 模型的訓練資料裡有大量財務文件的「樣子」。當你問的問題在它的上下文裡沒有答案時,它會按「財報通常長這樣」的統計規律生成一個最像正確答案的內容。附註編號、科目名稱、數字量級,全都是它可以模仿的表面特徵。
代價。 這類錯誤會直接進入你的分析基礎。如果編造的數字被寫進估值模型,後續所有計算都建立在虛構之上,而且因為「來源是 AI 給的」,使用者往往跳過了回查原文的動作。
怎麼防。
- 強制引用來源:要求每個數字都附「文件名稱+頁碼」,沒有來源指標的數字一律視為不存在。引用指標還必須抽查——AI 也會編造頁碼。
- 回查原文:關鍵數字由人打開原始 PDF 對照。慢,但這是唯一能確認「這個數字真的存在」的方法。
- 把「查不到」設計成合法輸出:在提示詞裡明確允許模型回答「提供的文件中找不到此數據」。缺口被承認,才不會被填補。
第二種最貴的錯誤:把不同期間、不同公司的數據混在一起
形態。 模型把上一財年的收入當成本期;把 A 公司的利潤率安到 B 公司頭上;或者在同一段回答裡,前半句用港幣、後半句用人民幣,單位悄悄換了。
為什麼會發生。 當上下文裡同時存在多份文件、多個年度、多家公司的數據時(這在投研裡是常態),模型做的是「語義拼接」而不是「欄位查詢」。兩段高度相似的文字——例如同一公司連續兩年的業績公告——對模型來說界線是模糊的。上下文越長、文件越多,串擾機率越高。
代價。 比第一種更隱蔽。每個數字單獨看都「真實存在」,錯的是它與實體、期間的綁定關係。同比增長率的分子分母來自不同年度,這種錯誤連回查原文都不一定抓得到——因為兩個數字都查得到,只是不該放在一起。
怎麼防。
- 每個數據點強制帶四個標籤:實體(哪家公司)、期間(哪個財年/季度)、幣別、單位。缺任何一個標籤的數據點不得進入計算。
- 交叉核對表:把模型輸出的所有數字整理成「實體 × 期間」矩陣,檢查同一格子內有沒有互相矛盾的數值、不同格子有沒有可疑的重複。
- 控制上下文:一次任務只餵一家公司、一個期間的文件。需要比較時,先各自結構化,再用程式合併——讓「綁定關係」由代碼保證,而不是由模型記憶。
第三種最貴的錯誤:用看似合理的推論填補缺口,且不標示不確定性
形態。 資料裡沒有下一年的資本開支,模型「根據行業慣例與公司歷史」推了一個數字,寫得和事實陳述一樣篤定。你問它毛利率趨勢,它把三個數據點外推成一條曲線,但不告訴你這是外推。
為什麼會發生。 這是前文說的「完整答案偏好」的直接後果。模型的輸出語氣不攜帶真實的置信資訊——它說「預計」「大約」與說「根據年報」用的是同一套生成機制,語氣的可信度與內容的可信度沒有關聯。
代價。 這種錯誤最難防,因為內容本身「不算錯」——推論可能合理,外推可能接近。問題在於推論與事實被混在同一層,讀者無法區分哪些是查證過的、哪些是 AI 補的。三個月後回看報告,連作者自己都不知道哪個數字有原文支持。
怎麼防。
- 強制三態標記:要求模型對每個結論標注「已證實(有來源)/推論(基於什麼推的)/未知(資料不足)」。拒絕標記或全部標「已證實」的輸出整份退回。
- 低信心自動棄權:設定規則——凡屬推論與未知,一律不得進入估值模型的核心假設,只能出現在「待查清單」裡。
- 人工複核節點:報告發出前,由人把所有「推論」逐條過一遍,決定升格(補到來源)、保留(明確標示)或刪除。
四道防線:把「不信 AI」寫進流程
三種錯誤的防法歸納起來是四道防線。關鍵不是每道防線多聰明,而是它們必須是流程的固定環節,不依賴使用者的當下判斷:
| 防線 | 防的是什麼 | 具體做法 | 成本 |
|---|---|---|---|
| 強制引用來源 | 編造數字與附註 | 每個數字附文件+頁碼;抽查引用的真實性 | 低,可全自動 |
| 覆蓋率與準確率分開統計 | 把「答得出」當成「答得對」 | 分別記錄:模型回答了多少比例的問題(覆蓋率)、回答中有多少經核對無誤(準確率)。覆蓋率高而準確率未知,是最危險的狀態 | 中,需要建立核對抽樣 |
| 低信心自動棄權 | 推論冒充事實 | 三態標記+棄權規則:推論與未知不得進入核心假設 | 低,規則化 |
| 人工複核節點 | 所有上述錯誤的最後一道 | 固定複核點:關鍵數字回查原文、推論逐條裁定、發出前署名 | 高,但不可省 |
第二道防線值得展開:覆蓋率與準確率是兩個獨立指標,必須分開看。 一個模型對你的問題「全都答得出來」,只說明它覆蓋率高;答案對不對,要靠另一套抽樣核對來估計。金融場景的正確姿勢是:先接受「準確率不可能百分之百」這個前提,再設計與錯誤率相匹配的複核強度——數字越關鍵,複核越重。關於「模型自信度與現實的落差」,本站另有一篇實測分析 決策模型的現實檢查:為何「網上神乎其神」,我們實測只有 54%?——JEV / LAYA / KEV / CLM-8B 全對比與落地公式,與本文互為表裡。
AI 會在這裡出錯:防線本身的失效形態
防線也會被繞過,最常見的三種失效:
| 失效形態 | 說明 | 對策 |
|---|---|---|
| 引用指標本身是編的 | 模型給出了頁碼,但那一頁沒有這個數字 | 引用必須抽樣回查,不能只查「有沒有頁碼」 |
| 三態標記被濫用 | 模型把推論全部標成「已證實」,標記失去意義 | 對「已證實」項目做反向抽樣:隨機抽幾條回查來源 |
| 防線只在示範時執行 | 趕報告時跳過複核節點,「這次先信它」 | 把複核做成模板的必填欄位;沒有複核簽名的報告不允許發出 |
最後強調一次本站的立場:這些防線的設計哲學不是「讓 AI 更準」,而是**「假設 AI 會說謊,讓每個結論都可以沿著來源指標走回原始文件」**。可回溯性比準確率更重要——準確率是估計出來的,可回溯性是設計出來的。把驗證架構做成系統而不是靠個人自律,可以進一步參考 從偽造到驗證:Agent 驗證架構的信任建築學。
收個尾,把四道防線壓成一張使用前檢查表。任何一次「讓 AI 參與金融數據工作」的任務,發出前過一遍:
- 每個數字都有來源指標(文件+頁碼),且抽樣回查過原文
- 每個數據點都帶實體、期間、幣別、單位四個標籤
- 每個結論都標了三態(已證實/推論/未知),推論條目附推理依據
- 提示詞裡明確允許模型回答「找不到」,且輸出中確實出現過「找不到」——一次都沒出現,本身就值得懷疑
- 覆核由不同於生成的人或模型執行,且有署名與日期
下一步
- AI 在投研流程的位置:哪些環節能交出去,哪些不能:把防線放回完整投研流程,看七個環節各自需要哪幾道。
- 機器怎麼讀懂財報:從 PDF 到結構化數據:從源頭減少缺口——機器正確讀取財報,模型就不需要用推論填空。
- 你的第一個投研工作流:從提問到可回溯結論:動手建立你的第一個「帶引用、可回溯」研究工作流。
- LLM Agent 自主繞過流程約束的實證分析:從 'Skip' 到 'Fabricate' 的惡化路徑:本站對 AI 編造行為的實測記錄,看幻覺在真實任務裡的具體形態。