Page 68 - SMILESENG
P. 68

Intl. Summer School on Search- and Machine Learning-based Software Engineering
  Fig. 1. A type auto-completion example from VS Code. The expected return type is Optional[str].
 using the light-weight Flask web framework. The pre-trained
Type4Py model uses the ONNX runtime5 for faster inference
on both CPUs and GPUs. For KNN search, Annoy6 is em-
ployed, which is fast and memory-efficient. To analyze Python
REFERENCES
[1] M. Pradel, G. Gousios, J. Liu, and S. Chandra, “Typewriter: Neural type prediction with search-based validation,” in Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2020, pp. 209–
[2] M. Allamanis, E. T. Barr, S. Ducousso, and Z. Gao, “Typilus: neural type hints,” in Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, 2020, pp. 91–105.
[3] A. M. Mir, E. Latoskinas, S. Proksch, and G. Gousios, “Type4py: Practical deep similarity learning-based type inference for python,” in 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE). IEEE, 2022.
[4] A.M.Mir,E.Latosˇkinas,andG.Gousios,“Manytypes4py:Abenchmark python dataset for machine learning-based type inference,” in 2021 IEEE/ACM 18th International Conference on Mining Software Reposi-
source files for feature extraction, we use our LibSA4Py
7 220.
library .
D. Deployment
To deploy Type4Py, a Docker image is created which con- tains the pre-trained model, pre-processing/feature extraction component, and the REST API. To scale the deployment, a number of containerized stateless Type4Py applications are currently deployed on our Kubernetes cluster.
ACKNOWLEDGMENT
This research work was funded by H2020 grant 825328 (FASTEN).
5 https://onnxruntime.ai/index.html
6 https://github.com/spotify/annoy
7 https://github.com/saltudelft/libsa4py
tories (MSR).
IEEE, 2021, pp. 585–589.
Fig. 2. Design and deployment of Type4Py in practice
56










































































   66   67   68   69   70