TIGER: A Generating-Then-Ranking Framework for Practical Python Type Inference

2024年07月02日
  • 简介
    Python的动态类型系统提供了灵活性和表现力,但可能会导致与类型相关的错误,促使需要自动类型推断来增强类型提示。虽然现有的基于学习的方法显示出有希望的推断准确性,但它们在全面处理各种类型方面面临着实际挑战,包括复杂的泛型类型和(未见过的)用户定义类型。 在本文中,我们介绍TIGER,这是一个两阶段生成-排序(GTR)框架,旨在有效处理Python的多样化类型类别。TIGER利用经过微调的预训练代码模型来训练一个生成模型和一个相似度模型,分别具有掩码目标和对比训练目标。这种方法允许TIGER生成各种类型候选项,包括在生成阶段中的复杂泛型,并在排序阶段中准确地排名它们与用户定义类型。我们在ManyTypes4Py数据集上的评估显示TIGER在各种类型类别中具有优势,特别是在Top-5 Exact Match中,推断用户定义和未见过的类型的准确性分别提高了11.2%和20.1%。此外,实验结果不仅证明了TIGER的优越性能和效率,还强调了其生成和排序阶段在增强自动类型推断方面的重要性。
  • 图表
  • 解决问题
    本论文解决Python动态类型系统中类型推断的问题,尤其是在处理复杂泛型类型和用户自定义类型时的挑战。
  • 关键思路
    该论文提出了一个两阶段生成-排序(GTR)框架TIGER,利用微调预训练代码模型训练生成模型和相似度模型,以生成和排名多样的类型候选项。
  • 其它亮点
    TIGER在ManyTypes4Py数据集上的实验表明,在各种类型范畴中,相比现有方法,TIGER在推断用户自定义和未见过类型的Top-5精确匹配方面分别提高了11.2%和20.1%。此外,实验结果不仅展示了TIGER在性能和效率方面的优越表现,也强调了其生成和排序阶段在增强自动类型推断方面的重要性。
  • 相关研究
    最近的相关研究包括:TypeWriter、PyAnnotate、DeepTyper等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论