[Paper] 用机器学习改进深度学习库测试

发布: (2026年2月4日 GMT+8 01:19)
7 分钟阅读
原文: arXiv

Source: arXiv - 2602.03755v1

(请提供您希望翻译的正文内容,我将按照要求进行简体中文翻译并保留原有的格式。)

Overview

深度学习框架如 TensorFlow 和 PyTorch 为无数 AI 产品提供动力,然而它们庞大且高度动态的 API 却出人意料地容易出错。本文展示了一种轻量级机器学习分类器——基于在 API 调用中流动的张量形状进行训练——能够自动学习库的“合法”输入空间,并显著减少自动化测试工具中的误报。

关键贡献

  • 基于形状的抽象: 证明仅使用张量形状信息即可作为学习 API 输入约束的足够、低维表示。
  • 机器学习驱动的输入验证器: 在运行时标记的示例上训练二元分类器(如随机森林、梯度提升),预测给定 API 调用是否会成功。
  • 大规模实证研究: 在 183 个 TensorFlow 和 PyTorch API 上评估该方法,对未见输入实现 > 91 % 的分类准确率。
  • 与 ACETest 的集成: 将学习到的验证器嵌入最先进的错误发现工具 ACETest,使其有效通过率从约 29 % 提升至约 61 %。
  • 开源成果: 提供数据收集流水线和训练好的模型,帮助其他研究者和工程师复现或扩展此工作。

方法论

  1. 数据收集: 随机为每个目标 API 生成具体输入(例如,不同维度、数据类型和值的张量)。执行调用并记录是成功还是抛出错误。
  2. 形状提取: 对每个输入,仅保留张量形状(例如 [32, 64][None, 128])以及附加元数据(dtype、参数数量)。这将特征空间从数百万可能的数值降至少量的类别/序数特征。
  3. 标注: 运行时结果(通过/失败)作为真实标签。
  4. 模型训练: 在基于形状的特征向量上训练标准监督分类器(随机森林、XGBoost、浅层神经网络)。通过交叉验证进行超参数调优。
  5. 评估: 将数据集按每个 API 划分为训练集和保留集,测量准确率、精确率、召回率和 F1 分数。
  6. 工具集成: 用训练好的分类器替代 ACETest 的启发式输入验证步骤,使 bug‑finder 在更深层次的符号执行之前剔除明显无效的输入。

结果与发现

  • Classification performance: 在所有 183 个 API 中,表现最佳的模型达到 91.3 % 准确率,大多数 API 的精确率/召回率均超过 0.9。
  • Generalization: 在子集输入上训练的模型能够正确分类 > 85 % 的全新形状组合,证明形状抽象捕获了关键约束。
  • Impact on bug‑finding: 当分类器用于过滤无效测试用例时,ACETest 的 pass rate(即有意义的生成测试所占比例)从 ~29 % 提升至 ~61 %,效率提升超过一倍。
  • False‑positive reduction: 误报的数量(被标记为 bug 的无效输入)下降约 70 %,为开发者在 triage 中节省了大量时间。

实际影响

  • 更快的 CI 流水线: 团队可以将基于形状的分类器嵌入到自定义 TensorFlow/PyTorch 扩展的持续集成测试中,减少无效的测试执行。
  • 更好的模糊测试工具: 现有的深度学习库模糊测试器可以采用相同的抽象,将其变异引擎聚焦在 有效 的形状空间上,从而提升 bug 发现率。
  • API 文档辅助: 学习到的约束可以逆向工程为人类可读的前置条件,帮助库维护者改进文档和静态分析工具。
  • 跨框架可移植性: 由于该方法仅依赖张量形状,可在新兴框架(如 JAX、MindSpore)中复用,且只需极少的重新训练工作。
  • 低开销: 在普通笔记本电脑上训练一个新 API 的分类器只需几秒到几分钟,使其能够轻松集成到开发者工具工作流中。

限制与未来工作

  • 仅形状抽象: 虽然对许多 API 有效,但某些函数还依赖张量内容(例如,值必须为非负)。当前模型无法捕获此类语义约束。
  • 静态与动态行为: 该方法从观察到的运行时结果中学习;如果训练集未包含罕见的极端形状,分类器可能会误判。
  • 对自定义算子的可扩展性: 将该方法扩展到具有复杂控制流的用户自定义操作可能需要超出形状的更丰富特征集。
  • 未来方向: 作者建议在形状特征中加入轻量级的数值统计(最小/最大、稀疏性),并探索迁移学习,以最少的数据为新库快速构建分类器。

底线: 通过将看似混乱的深度学习库输入验证问题转化为可处理的机器学习任务,这项工作提供了一个实用的即插即用组件,能够显著提升 TensorFlow、PyTorch 等框架的自动化测试效率,使其更友好于开发者。

作者

  • Facundo Molina
  • M M Abid Naziri
  • Feiran Qin
  • Alessandra Gorla
  • Marcelo d’Amorim

论文信息

  • arXiv ID: 2602.03755v1
  • 分类: cs.SE
  • 出版时间: 2026年2月3日
  • PDF: 下载 PDF
Back to Blog

相关文章

阅读更多 »