LLM 給的文獻,可能根本不存在

——那要怎麼判斷?怎麼解?

從一個具體問題,一路走到 deterministic 查證(API)

先看一個真實的坑

你請 LLM 幫衛教找根據,它回你一篇文獻:標題像、作者像、期刊年份都有,連 DOI 都附上了

看起來煞有其事——但這篇可能根本不存在,是它「」出來的。衛教若引用了假文獻,等於把錯誤蓋上一個權威印章。

所以問題很實際:怎麼知道一篇文獻是真是假?

換你想:你會怎麼判斷?

先別問 AI——如果是你,要確認一篇文獻到底存不存在,你會怎麼查?

(提示:每篇正式文獻,都有一個獨一無二的編號。怕有人對它不熟,下一張先補「DOI 是什麼」。)

先補:DOI 是什麼?

DOI = 每篇正式文獻的「永久身分證」,長這樣:10.1056/NEJMoa2116044。不管期刊網站怎麼改版、搬家,這串碼永遠指向同一篇

把它貼到 doi.org(或交給程式去查),就會連到那一篇確切的文獻

DOI 是「一對一」——所以它 deterministic

所以「人」的解法超簡單:拿 DOI 去查——在,就是真;查不到,就是假。一翻兩瞪眼。

那 LLM 為什麼會掰錯 DOI?

擬人的講法是「它記錯了」。但更精確地說:LLM 根本不「記憶事實」

所以純靠「背」吐一個 DOI:錯誤才是常態,正確只是巧合

那為何現在 LLM 越來越少出包?

關鍵不是模型突然變聰明,而是工程師讓它學會「使用工具」去查——遇到 DOI、藥名、數字,不再靠背,而是實際發一個查詢出去

而這個「程式去問另一個程式」的查詢介面,就叫 API:你給它一個明確的輸入,它回你一個明確的輸出

人 ↔ 機器(你平常用 app/網站)機器 ↔ 機器(API)
畫面,用眼睛看、用手點(GUI)純數位:給明確輸入 → 回明確輸出,中間沒有人、沒有畫面、沒有模糊語意

實例:輸入一個 DOI,看它吐什麼

真 DOI → 用 API 查(deterministic)

輸入:10.1056/NEJMoa2116044

Crossref 回傳:
Molnupiravir for Oral Treatment of Covid-19 in Nonhospitalized Patients
Jayk Bernal A. 等 · NEJM · 2022 · 386(6):509–520

LLM 自己「背」一個 → 多半(stochastic)

輸入:10.1056/NEJMoa9999999(格式正確、看起來像真的)

一查下去:
404 — 不存在

差別就一個字:一邊是(deterministic、可重複),一邊是(stochastic、賭運氣)。

誰「真的」去查?傳統 vs 代理式

傳統對話式(如 ChatGPT)

搜尋網路、開 DOI/期刊頁查證(比純背可靠)——但不直接呼叫 Crossref API;它讀的頁面,很多本身就來自 Crossref 生態。

代理式(剛才的 Claude Code)

真的跑一行 curl api.crossref.org/...,拿到 JSON、檢查欄位。剛才那筆 molnupiravir,就是這樣當場驗的。

兩者都能查證;差別在「搜尋頁面」還是「直接呼叫 API、把結果接進後續程式」——只有後者能自動化。

同一條線也適用「讀網頁」:雲端 LLM 走雲端、自己的途徑抓(常被網站擋),代理式走你本機抓——呼叫 API開網頁都一樣,差在雲端途徑 vs 地端途徑(Drugs 只能拿公開摘要,同個道理。)

同一招,推廣成三個免費查詢

API解決什麼成本
Crossref驗 DOI/文獻是否真實存在(剛才那招)免費・一行指令
PubMed查一個 trial 的真實主要結果,而不是 LLM 猜的結論免費・一行指令
OpenFDA查藥品仿單/不良反應/召回——做藥品衛教最該用免費・一行指令

共同點:免費、免帳號,回傳整齊的結構化資料(電腦好讀的格式)。隨機的是 LLM,這幾道查詢是確定性的。

順帶一提:台灣這塊是治理問題

美國 OpenFDA

API:程式可直接查仿單、不良反應

台灣 TFDA/健保署

多半只有要人手動點的網頁沒有給程式用的 API

所以在台灣查跨國藥物,用美國 OpenFDA 反而比查自家方便。這個 gap 不是 LLM 能解的——是資料開放/治理的問題。

帶走這一句

凡是「一字不漏才算對」的
——別信 LLM 的記憶,叫它去「查」

但別叫 LLM「記得」每次查——它會忘。讓它寫程式自動查(下一段)。