论文标题

Typilus:神经类型提示

Typilus: Neural Type Hints

论文作者

Allamanis, Miltiadis, Barr, Earl T., Ducousso, Soline, Gao, Zheng

论文摘要

在动态键入语言中对部分上下文的推论很具有挑战性。在这项工作中,我们提出了一个图形神经网络模型,该模型通过对程序的结构,名称和模式进行概率推理来预测类型。该网络使用深度相似性学习来学习打字空间 - 连续放松类型的离散空间 - 以及如何将符号(即标识符)的类型属性嵌入其中。重要的是,我们的模型可以采用一声学习来预测类型的开放词汇,包括稀有和用户定义的类型。我们意识到将打字空间与可选类型检查器相结合的Python的Typilus方法。我们证明Typilus准确地预测了类型。 Typilus自信地预测了所有带注释的符号的70%的类型;当它预测一种类型时,该类型可选地检查95%的时间。 Typilus还可以找到不正确的类型注释;两个重要且流行的开源库Fairseq和Allennlp接受了我们的拉动请求,这些请求修复了发现的注释错误。

Type inference over partial contexts in dynamically typed languages is challenging. In this work, we present a graph neural network model that predicts types by probabilistically reasoning over a program's structure, names, and patterns. The network uses deep similarity learning to learn a TypeSpace -- a continuous relaxation of the discrete space of types -- and how to embed the type properties of a symbol (i.e. identifier) into it. Importantly, our model can employ one-shot learning to predict an open vocabulary of types, including rare and user-defined ones. We realise our approach in Typilus for Python that combines the TypeSpace with an optional type checker. We show that Typilus accurately predicts types. Typilus confidently predicts types for 70% of all annotatable symbols; when it predicts a type, that type optionally type checks 95% of the time. Typilus can also find incorrect type annotations; two important and popular open source libraries, fairseq and allennlp, accepted our pull requests that fixed the annotation errors Typilus discovered.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源