
我把 journal club 的「讀論文腦」寫成了 AI skill,還逼它不能靠印象唬爛
前面分享的論文學習小站,有個「品質」、「內容」按鈕,那時沒有把背後的實作放出來。算是個有前端網頁,但後端還是要靠自己整理的平台。不過我自己的實作,當然後端還是要接給 AI,減輕認知的負荷,這裡就是把後端兩個 skill 分享出來,加速大家學習速度囉! — 一個負責「這篇可不可信」 第一個叫 paper-review,做的是 journal club 那種評讀。 依研究設計自動選對工具 它會依照論文的類別,選用建議的評讀工具,隨機對照試驗(randomized controlled trial)用 Cochrane RoB 2、觀察性研究用 ROBINS-I、系統性回顧用 AMSTAR-2、診斷準確度用 QUADAS-2,而不是拿一張萬用 checklist 硬套。這件事聽起來理所當然,但你知道大部分「AI 幫你看論文」其實就是一張萬用 checklist 套到底。 引用查核:先確認文獻「真的存在」 我最喜歡的一關是引用查核。它會先去 CrossRef 確認每一篇被引用的文獻「真的存在」,再比對「論文說這篇文獻講了什麼」跟「這篇文獻實際上講了什麼」。 為什麼要先查存不存在?因為 AI 寫出來的引用,沒稽核的話正確率其實只有四到八成,假 DOI、張冠李戴的狀況比想像中多。所以這一步是一個很便宜、但很有用的防呆。 統計顯著不等於臨床顯著 還有一個地方我很堅持:統計顯著不等於臨床顯著。所以它會把效果量拿去跟量表的最小臨床重要差異(minimal clinically important difference, MCID)比,p 值小於 0.05 但根本沒過 MCID,它就會直接講出來。 整體借鏡了林協霆醫師的分享,還有之前學 EBM 的內容,大家也可以再加入你覺得重要的部分。 — 重點:我不讓 AI 靠「印象」給分 這是這次我自己覺得最有意思的部分。 一開始我讓 Claude 自己算證據等級(GRADE)、自己判斷「結論有沒有超過資料能支撐的範圍」。但我後來覺得不對,因為這種東西讓語言模型「憑整體感覺」給一個分數,它其實很會講得頭頭是道,可是你沒辦法檢查它到底怎麼得出來的。 所以我乾脆寫了兩支確定性的小程式,把「判斷」跟「計算」分開: grade_judge.py:把 GRADE 變成算術 語言模型只負責評五個面向(risk of bias、inconsistency、indirectness、imprecision、publication bias),每個面向給「不嚴重/嚴重/很嚴重」。真正的最終等級由程式加總算出來,不是模型自己講。模型自報的等級只當參考,如果跟程式算的不一樣,程式還會跳出來提醒「這兩個對不上,回去重看某個面向」。 它甚至會幫你擋掉 GRADE 的規則錯誤,例如觀察性研究只要有任何一項被降級,就不准再往上升級,這個規則模型很容易記錯,程式不會。 argdown_lint.py:把結論的邏輯漏洞變成可以檢查的東西 這支更好玩。語言模型負責把論文的結論、還有每一個「用來支撐結論的發現」標上類型(這是隨機對照試驗的直接證據?還是只是相關性?還是只是替代指標?還是只是次要 outcome?),然後由程式判斷這個推論跳得合不合法。 例如「用替代指標的改善,去宣稱對真正的臨床終點有效」、「用相關性去宣稱因果」、「用單一研究去宣稱『一致地顯示』」,這些都是論文 spin 最愛躲的地方。程式抓到就直接標紅、回報有漏洞。 ...








