中文

检测Python数据科学库中的多参数约束不一致性

软件工程 2024-11-20 v2

摘要

现代AI和数据密集型软件系统严重依赖数据科学和机器学习库,这些库提供了必要的算法实现和计算框架。这些库暴露了复杂的API,其正确使用必须遵循多个相互依赖参数之间的约束。使用这些API的开发人员期望通过提供的文档了解约束,任何差异都可能导致意外行为。然而,在API文档中维护正确且一致的多参数约束仍然是API兼容性和可靠性的重大挑战。为了解决这一挑战,我们提出了MPDetector,用于检测代码与文档之间的不一致性,特别关注多参数约束。MPDetector通过符号执行探索执行路径,在代码层面识别这些约束,并进一步利用大型语言模型(LLM)从文档中提取相应的约束。我们提出了一种定制的模糊约束逻辑来调和LLM输出的不可预测性,并检测代码与文档约束之间的逻辑不一致性。我们从四个流行的数据科学库中收集并构建了两个数据集,并在其上评估了MPDetector。结果表明,MPDetector能够有效检测不一致性问题,精确率达到92.8%。我们进一步向库开发人员报告了14个检测到的不一致性问题,截至撰写本文时,已有11个问题得到确认。

关键词

引用

@article{arxiv.2411.11410,
  title  = {Detecting Multi-Parameter Constraint Inconsistencies in Python Data Science Libraries},
  author = {Xiufeng Xu and Fuman Xie and Chenguang Zhu and Guangdong Bai and Sarfraz Khurshid and Yi Li},
  journal= {arXiv preprint arXiv:2411.11410},
  year   = {2024}
}