论文

名称可能会造成伤害:发现本地编码中的包名称幻觉导致的抢注风险 LLM

Names Can Hurt: Spotting Slopsquatting Risks Caused by Package Name Hallucinations in Local Coding LLMs

模型推理推理验证与自校正

摘要

当代码生成语言模型伪造 Python 包名称时,在 PyPI 上预先注册该名称的对手可以将该幻觉转换为供应链妥协。这一事件被称为“slopsquatting”。我们提出了一个两层检测器来解决这个问题。第一层执行确定性 PyPI 存在检查。第二个是随机森林分类器,它基于从包名称及其 PyPI 元数据派生的 10 个特征进行训练。导入名称协调器将两者联系起来,解决诸如“import cv2”与“pip install opencv-python”之类的情况,而无需安全绕过。该检测器嵌入在 LangGraph 状态机中,该状态机会在温度升高时重试,并在重复失败时路由到更强大的后备模型。在 300 个精心策划的提示中,该管道在 76% 的运行中生成了无幻觉的代码。主节点用尽了 28.7% 的重试预算;模型内重试恢复了大约四分之一,跨模型回退则恢复了剩余的 16.5%。观察到四项发现。首先,一半被标记的幻觉是已经在 PyPI 上注册的包,作为知名项目的低质量相似物,被分类器而不是确定性层捕获(例如 pil、faiss、tabula、haystack)。其次,幻觉率几乎与即时对抗性成线性关系,从常规编码的 0% 到 10% 到 slopsquat 诱饵的 40% 到 73%。第三,较弱的初选在没有帮助的情况下拒绝了 10 个直接诱饵中的 6 个,这表明最近的指令调整提供了基线防御。第四,当主设备和后备设备共用一个型号系列时,大约 84% 的主设备故障会在后备设备上重复出现,从而促进跨系列配对。一项用户研究 (n = 24) 报告显示,平均满意度为 5 人中的 4.4 人,以及 24 人中表示采用意图的 21 人。