← 最新论文
💻 computer science

When LLMs Invent Rust Crates: An Empirical Study of Hallucination Patterns and Mitigation

本文呈现了首个关于大语言模型生成的代码中 Rust crate 幻觉的大规模实证研究,揭示了与 Python 或 JavaScript 不同,幻觉率在不同模型间保持一致且对参数不敏感,同时还评估了在不损害代码质量的前提下缓解这些安全风险的提示工程策略。

原作者: Jieming Zheng, Hao Guan, Yepang Liu

发布于 2026-06-09
📖 1 分钟阅读☕ 轻松阅读

原作者: Jieming Zheng, Hao Guan, Yepang Liu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在请教一位非常聪明、博学多才的图书管理员来帮你盖房子。你向她索要特定的工具和材料,比如“来自 SuperHammer 品牌的锤子”或者“来自 StrongBolt 工厂的螺栓”。

在计算机编程的世界里,这些“工具”被称为 crates(代码包)。这位图书管理员就是 AI(大语言模型)。这篇论文研究的问题是:有时这位图书管理员会过于自信,从而发明出一些实际上并不存在的工具。她可能会说:“这是把 SuperHammer,”但当你去商店购买时,却发现那里根本没有。在计算机世界中,这被称为 hallucination(幻觉)。

这是第一项大规模研究,旨在观察当 AI 编写一种叫做 Rust 的语言的代码时,这种情况发生的频率如何。

以下是研究人员的发现,通过简单的故事进行了解析:

1. “假工具”问题

研究人员要求 14 个不同的 AI 图书管理员(有些是免费的,有些是付费的)为 2,794 个不同的任务编写 Rust 代码。他们发现,AI 建议的工具中,大约有 五分之一 是假的。

  • 令人惊讶的是: 你可能会认为一个更大、更聪明的图书管理员(规模更大的 AI 模型)会犯更少的错误。但研究发现,规模并不重要。一个小型的 AI 制造假工具的次数与一个巨大的 AI 差不多。
  • 温度测试: 在 AI 中,“温度”(temperature)就像是允许 AI 发挥创意或随机性的程度。通常情况下,让 AI 更有创意会使其犯更多错误。但在 Rust 中,改变“创意旋钮”并没有真正改变 AI 发明假工具的频率。无论使用什么设置,错误率都顽固地保持在高位。

2. AI 是如何产生困惑的(模式分析)

研究人员仔细观察了这些假工具,发现 AI 并不是在随机编造名字。它是在非常特定的方式下产生了困惑:

  • “标准库”混淆: Rust 有一个自带的工具箱,里面装满了随语言免费提供的基础工具(比如一把内置的锤子)。AI 经常忘记这些工具是免费的,并试图将它们当作从商店购买的特殊付费工具来“订购”。这就像是你明明口袋里已经有一把锤子了,却还要去五金店买一把。
  • “差一点就对”的名字: 当 AI 确实发明了一个假工具时,这个名字通常与真实的一个非常接近。
    • 真实的 Rust 风格: http-response(带有连字符)。
    • AI 风格: httpresponse(没有连字符)。
    • 这就像 AI 知道“apple”这个词,但总是把它拼成“aple”或“apples”。这是一种“差一点就对了”的失误,而不是完全的凭空捏造。
  • “借用”的名字: AI 有时会抓取其他语言(如 Python)或操作系统(如 Windows)中的名称,并尝试在 Rust 中使用它们,尽管这些名称并不属于 Rust。

3. 我们能修复它吗?(缓解措施)

研究人员尝试了两种简单的技巧来阻止 AI 犯这些错误:

  1. “查阅资料”技巧 (RAG): 在 AI 开始编写代码之前,给它一本包含所有真实工具的“电话簿”。
  2. “双重检查”技巧 (Self-Refinement): 要求 AI 编写代码,然后停下来问自己:“我有没有编造任何工具?如果有,请修正它。”

结果: 这些技巧确实有一些帮助,但还不够。

  • “双重检查”技巧效果最好,减少了大约 10-15% 的假工具。
  • “查阅资料”技巧几乎没起作用。
  • 底线是: 你不能仅仅告诉 AI “要小心”或者给它一个列表,就期望问题消失。AI 仍然会以稳定的速率发明假工具。

为什么这很重要

论文解释说,虽然这些假工具可能不会总是导致安全灾难(因为 Rust 要求你明确确认你想要下载某个工具),但它们是一个巨大的麻烦。它们会导致代码崩溃、构建失败,并浪费开发人员寻找不存在的工具的时间。

简而言之: 研究表明,在编写 Rust 代码时,AI 仍然容易发明虚假的软件工具,而且仅仅通过让 AI 变得更大、更聪明或在提示词上更谨慎,并不能解决这个问题。我们需要更好的、更专门化的工具,以便在这些错误发生之前捕捉到它们。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →