Cursor Learn · · 4 min read

幻覺 Hallucinations

既然你已了解 AI 模型的運作方式,接下來談談許多開發者在初次使用 AI 工具時常遇到的問題:幻覺

「幻覺」指的是 AI 模型以十分自信的口吻產生看似合理、實則錯誤的資訊。就像有人對不熟悉的主題硬要裝懂,試圖唬弄帶過一樣。

為什麼模型會產生幻覺?#

還記得我們說過 AI 模型是根據學到的模式來預測下一個 token 嗎?有時這些模式會讓它們判斷失準。

把這些模型想成功能極強的文字自動完成。當你輸入「The weather today is...」時,你的手機可能會依常見模式建議「sunny」或「cloudy」。AI 模型也會做類似的事,但範圍涵蓋整個概念與程式碼區塊。

當 AI 模型不知道某件事時,它不一定會說「I don't know」。相反地,它會根據看過的模式生成看似最有可能的內容。對於寫程式,可能會是:

  • 編造「看起來合理」但實際不存在的 API 方法
  • 把不同程式庫或框架的語法混在一起
  • 建立看似合理但並不真實的設定選項

AI 模型提供者會使用網路上大量文字(以及其他專有資料)來訓練模型,直到某個稱為「knowledge cutoff」的日期。這個日期代表模型最新的知識範圍。若你詢問在此日期之後才出現的程式庫,AI 模型可能會提出不正確的解法。

對於可能是幻覺的 API 方法,最好的立即回應是什麼?

先相信並實作,之後再修。到文件或你的程式碼庫中查證;把錯誤回饋給模型。再要求三個替代方案並挑一個。CheckReset

野外環境下的幻覺#

以下示範一些開發者實際遇到的幻覺範例。

第一個是看似正確、實則不存在的套件匯入。

// AI 建議:
import { debounce } from "react";

// 現實:React 並未匯出 debounce!
// 你需要使用 lodash 或自己實作

第二種是看似可靠、但其實是假的類別方法:

# AI 建議:
df.remove_outliers(threshold=3)
# 實際情況:pandas DataFrames 沒有這個方法
# 你需要自己實作異常值移除功能

最後,這是一個「幾乎正確」的設定檔:

// AI 建議用於 package.json:
{
  "type": "module",
  "exports": "./index.js",
  "browser": true // <- 這是無效的!
}

隨著你更常使用 AI 模型,你會學會如何辨識幻覺。

對模型產出的結果保持懷疑,並獨立驗證其建議是值得的。要讓這更容易,可將你的編輯器或應用程式環境設為能提供回饋。

例如,在 Cursor 中,錯誤的 import 陳述式應會顯示「匯入不存在」的錯誤,之後即可將此回饋提供給 AI 模型。

其他模型限制#

模型有時也會非常自信地給出錯誤答案。

你可能會收到像「You’re absolutely right!」這樣的回應,但實際上你並不正確。此外,有些模型在決定性軟體擅長的事情上表現不佳,例如產生真正的隨機數,或計算某個字元在單字中出現的次數。

但即使存在幻覺與限制,AI 模型仍然非常實用。

與 AI 有效合作的關鍵是養成驗證心態。每個建議都是出發點,而不是最終答案。這聽起來像是在多做工,但其實會讓你成為更好的開發者,因為它促使你理解程式碼的行為,而不是只是複製貼上。

在整個課程中,我們會提供可行的做法,幫助你提升生成程式碼的品質,並正確地與 AI 模型協作。

在討論如何與模型互動之前,我們需要先了解它們的思考方式與計價模式。讓我們在下一堂課繼續深入探討。

Read next

Github Spec Kit ·

AI × SDD - HappyDesigner 20251025

活動開場 今天很榮幸邀請保哥來分享 AI 跟 Spec-Driven Development。我相信大家如果用 AI 寫 code 的話,這是最近的顯學。但是怎麼使用,然後各種心法,我覺得都可以互相交流。 我是布丁,我是 Happy Design 社群的

BMAD ·

The Official BMad-Method Masterclass (The Complete IDE Workflow)

介紹和概述 大家好,我是 Brian,BMAD 方法的建立者。這將是一個很長的影片,但我想展示使用 Claude Code 的所有相關內容,包括所有代理人、所有選項,全部都在 IDE 內完成。這是我第一次這樣做,我想向你們展示許多細節,以及一些我從未在影片中演示過的酷炫功能。而且我也從未見過其他人展示過這些技巧。

BMAD ·

BMad Method V4 Complete Step-by-Step Install, Upgrade and Execution

前言與改進概述 自從我上次的影片以來,BMAD 方法發生了很多變化。它已經被簡化,增加了安裝程式,還有很多令人興奮的新功能和改進。我將逐步演示,不會跳過任何內容,並向你展示如何在你選擇的 IDE 中安裝和設定 BMAD 方法。 貢獻者致謝 這裡有很多優秀的 BMAD 方法貢獻者。我想感謝 Kayan、