SELGPLAug 19, 2022

Cross-Domain Evaluation of a Deep Learning-Based Type Inference System

arXiv:2208.09189v44 citationsh-index: 13
Originality Synthesis-oriented
AI Analysis

This work addresses the generalization challenges of type inference systems for dynamic programming languages, which is crucial for improving IDE support and error detection in software development, though it is incremental in nature.

The study evaluated Type4Py, a deep learning-based type inference system, across different software domains and found that dataset shifts and long-tailed distributions significantly reduced its performance, with unsupervised domain adaptation and fine-tuning tested as potential solutions.

Optional type annotations allow for enriching dynamic programming languages with static typing features like better Integrated Development Environment (IDE) support, more precise program analysis, and early detection and prevention of type-related runtime errors. Machine learning-based type inference promises interesting results for automating this task. However, the practical usage of such systems depends on their ability to generalize across different domains, as they are often applied outside their training domain. In this work, we investigate Type4Py as a representative of state-of-the-art deep learning-based type inference systems, by conducting extensive cross-domain experiments. Thereby, we address the following problems: class imbalances, out-of-vocabulary words, dataset shifts, and unknown classes. To perform such experiments, we use the datasets ManyTypes4Py and CrossDomainTypes4Py. The latter we introduce in this paper. Our dataset enables the evaluation of type inference systems in different domains of software projects and has over 1,000,000 type annotations mined on the platforms GitHub and Libraries. It consists of data from the two domains web development and scientific calculation. Through our experiments, we detect that the shifts in the dataset and the long-tailed distribution with many rare and unknown data types decrease the performance of the deep learning-based type inference system drastically. In this context, we test unsupervised domain adaptation methods and fine-tuning to overcome these issues. Moreover, we investigate the impact of out-of-vocabulary words.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes