Type4Py:基于实用的深度相似性学习的 Python 类型推断
本文介绍了 ManyTypes4Py,这是一个用于基于机器学习的类型推理的大型 Python 数据集。该数据集包含了 5,382 个 Python 项目,共有超过 869K 的类型注释。为了消除重复偏差的负面影响,去除了重复源代码文件。为了方便机器学习模型的训练和评估,数据集按文件被分为训练、验证和测试集。我们开发了一个轻量级静态分析器管道来从 AST 中提取类型信息,并附带了数据集。使用这个管道,收集的 Python 项目进行了分析,并将 AST 分析结果存储为 JSON 格式的文件。ManyTypes4Py 数据集在 zenodo 上共享,并且其工具在 GitHub 上公开可用。
Apr, 2021
本研究提出了一种混合类型推断方法 HiTyper,它基于静态推断和深度学习,用于 Python 等动态编程语言。实验结果表明,HiTyper 比最先进的深度学习模型表现更好,并且在推断罕见类型方面具有 30%以上的增加。仅考虑 HiTyper 的静态部分,它比现有的静态类型推断工具推断出 2 倍到 3 倍的类型。
May, 2021
本文介绍了 TypeWriter,它是一种将概率类型预测与基于搜索的类型验证相结合的方法,可用于 Python,通过从部分注释的代码库中学习函数的返回和参数类型,预测结果明显优于以往的类型预测模型,并在 Facebook 等公司应用。
Dec, 2019
CodeTIDAL5 是一种基于 Transformer 的模型,用于可靠地预测类型注释,并从程序的代码属性图中提取使用片段,其在 ManyTypes4TypeScript 基准测试上优于当前最先进的神经类型推理系统 7.85%,总体准确率达到 71.27%。
Oct, 2023
本研究提出一种基于图神经网络的类型推断模型 Typilus,借助深刻相似度学习从程序结构、名称和模式角度预测变量类型,模型可采用一次学习预测任何罕见和用户定义的类型,成功应用于 Python,并能够精准地预测符号类型并找到不正确的类型注释。
Apr, 2020
本文提出了一种新的类型推理算法 TypeT5,通过机器学习和固定语境的方式,使用先进的 pre-trained language model CodeT5,对 Python 和 JavaScript 程序中缺失的类型进行预测,并采用迭代解码方法处理相关代码元素之间的信息传递,从而提高了对带有稀有和复杂类型的程序的准确性。
Mar, 2023
该研究提出了一种概率类型推理框架,在 TypeScript 文件中预测缺失的类型。该框架将来自类型系统的逻辑约束与来自命名约定的深度学习模型提取的自然约束相结合,优于先前使用单一信息的模型。
Apr, 2020
OpenTau 为解决基于 LLMs 进行自动化类型预测中的问题而构建了一个基于搜索的方法,包括提出了一个新的衡量类型预测质量的度量方式、给出了一种基于树形程序分解的生成类型搜索空间的方法以及针对 LLMs 的 fill-in-the-type 微调方法。在新的 TypeScript 类型预测数据集上评估我们的工作,结果表明,在所有文件中有 47.4% 的文件通过类型检查(相对改善 14.5%),每个文件的总体错误率为 3.3 个类型错误。
May, 2023
本文提出了一种基于概率类型推断和图神经网络的 TypeScript 类型推断方案,采用源代码分析生成类型依赖图,并在相关的类型变量之间传递信息来进行类型预测,可预测标准类型和用户自定义类型,并且比现有技术在库类型上表现提高了 14%。
Apr, 2020
使用机器学习自动推断类型限定符的可插入式类型系统研究,提出了一种编码最小数据流提示的新型表示方式 NaP-AST,并评估了多种模型架构,包括图变换网络(Graph Transformer Network),图卷积网络(Graph Convolutional Network)和大型语言模型。研究中还验证了这些模型在 12 个开源项目中的性能,并进行了一个可行性研究,结果发现在大约 16k 个类时性能有所提升,在约 22k 个类时由于过拟合而恶化。
Jun, 2024