我们有你的包裹!代码生成 LLM 包装幻觉的全面分析
软件工程
2025-03-04 v3 人工智能
密码学与安全
机器学习
摘要
主流编程语言如 Python 和 JavaScript 依赖中心化的包仓库和开源软件,结合大型语言模型(LLM)代码生成的兴起,导致软件供应链出现新型威胁:包装幻觉(package hallucinations)。这些幻觉源于使用 LLM 生成代码时的事实冲突错误,代表一种新的包装混淆攻击,构成软件供应链完整性的严重威胁。本文对包装幻觉进行严格且全面的评估,涵盖不同的编程语言、场景和参数,探讨各种模型和配置如何影响生成错误包装推荐的概率,并识别这一现象的根源。我们使用 16 个流行的 LLM 进行代码生成,结合两个独特的提示数据集,生成 576,000 个两种编程语言的代码样本进行分析。我们的发现表明,商业模型的平均幻觉包装比例至少为 5.2%,开源模型为 21.7%,包括 205,474 个独特的幻觉包装名称,进一步凸显了这一威胁的严重性和普遍性。为克服此问题,我们实现了几种幻觉缓解策略,显示出能够在保持代码质量的同时显著减少包装幻觉的效果。我们的实验和发现表明,包装幻觉是使用最新 LLM 代码生成时持续且系统性的现象,是一个值得研究社区紼急关注的重大挑战。
引用
@article{arxiv.2406.10279,
title = {We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs},
author = {Joseph Spracklen and Raveen Wijewickrama and A H M Nazmus Sakib and Anindya Maiti and Bimal Viswanath and Murtuza Jadliwala},
journal= {arXiv preprint arXiv:2406.10279},
year = {2025}
}
备注
To appear in the 2025 USENIX Security Symposium. 22 pages, 14 figures, 8 tables. Edited from original version for submission to a different conference. No change to original results or findings