Skip to main content

Command Palette

Search for a command to run...

AI 基础入门

幻觉

现在你已经了解 AI 模型如何工作,接下来我们来谈谈许多开发者初次使用 AI 工具时容易遇到的问题:幻觉。

幻觉是指 AI 模型自信地生成看似合理、实则错误的信息。这就像有人对自己并不了解的话题侃侃而谈,试图蒙混过关。

为什么模型会产生幻觉?

还记得我们提到过,AI 模型会根据已学到的模式预测下一个 token 吗?但有时,这些模式也会误导它们。

可以把这些模型想象成非常强大的文本自动补全工具。如果您输入“今天天气是……”,手机可能会根据常见模式建议“晴朗”或“多云”。AI 模型也是如此,只不过它们处理的是完整的概念和代码块。

当 AI 模型不知道某件事时,并不总会说“我不知道”。相反,它会根据见过的模式生成看似最可能的内容。对于编程来说,这可能意味着:

  • 编造听起来合理但实际不存在的 API 方法
  • 混淆不同编程库或框架的语法
  • 创建看似合理但并不存在的配置选项

AI 模型提供商会使用互联网上的大量文本 (以及其他专有数据) 训练模型,训练数据截至某个称为“知识截止日期”的时间点。这个日期代表模型掌握的最新知识。如果您询问在此日期之后创建的库,AI 模型可能会给出不正确的解决方案。

面对可能是幻觉的 API 方法,最佳的即时应对措施是什么?

现实中的幻觉

下面来看一些开发者实际遇到过的幻觉示例。

第一个示例是从某个软件包导入一个看似正确但实际不存在的内容。

// AI 建议:import { debounce } from "react";// 但实际上:React 并未导出 debounce!// 你需要使用 lodash,或自行实现

第二种是类中一个看似可信、实则伪造的方法:

# AI 的建议:df.remove_outliers(threshold=3)# 事实:pandas DataFrame 根本没有这个方法# 离群值的移除需要你自己实现

最后,还有一个看似正确的配置文件:

// AI 对 package.json 的建议:{  "type": "module",  "exports": "./index.js",  "browser": true // <- 这个字段无效!}

随着使用 AI 模型的经验不断积累,你会逐渐学会识别幻觉。

对于模型返回的结果,应保持审慎,并独立验证其提出的建议。要让这一过程更轻松,可以将编辑器或应用环境配置为提供反馈。

例如,在 Cherri Code 中,错误的 import 语句应显示“导入不存在”的错误,随后可将该错误作为反馈提供给 AI 模型。

模型的其他局限性

模型也会一本正经地给出错误答案。

你可能会收到“你完全正确!”这样的回复,但实际上你_并不_正确。此外,有些模型不擅长确定性软件所擅长的事情,例如生成真正的随机数,或统计某个字符在单词中出现的次数。

但即使会产生幻觉且存在局限性,AI 模型仍然非常有用。

高效使用 AI 的关键是培养验证意识。每条建议都是起点,而不是最终答案。这听起来似乎会增加工作量,但实际上会让你成为更好的开发者,因为它会促使你理解代码的作用,而非只是照搬代码。

在本课程中,我们会介绍一些方法,帮助你提高生成代码的质量,并正确使用 AI 模型。

在讨论如何与模型交互之前,我们需要先进一步了解它们的思考方式和定价方式。下一课将深入探讨这些内容。