Last year, I wrote a blog post on the development and release of Type4Py. Type4Py is a machine learning model for code. In a nutshell, it predicts type annotations for Python source code files and enables developers to add types gradually to their codebases. At the time of the Type4Py release, its deployment was pretty simple. I didn’t use containerization (Docker) and Kubernetes, and the model was deployed on a single machine. There were two clear downsides to the initial deployment approach. First, I could not easily deploy the ML model and its pipeline on another machine. Because I had to install Type4Py and its dependencies on other machines, Second, the ML application could not be scaled well since a single machine’s resources are limited.
Over the past decade, machine learning (ML) has been applied successfully to a variety of tasks such as computer vision and natural language processing. Motivated by this, in recent years, researchers have employed ML techniques to solve code-related problems, including but not limited to, code completion, code generation, program repair, and type inference.
Dynamic programming languages like Python and TypeScript allows developers to optionally define type annotations and benefit from the advantages of static typing such as better code completion, early bug detection, and etc. However, retrofitting types is a cumbersome and error-prone process. To address this, we propose Type4Py, an ML-based type auto-completion for Python. It assists developers to gradually add type annotations to their codebases. In the following, I describe Type4Py’s pipeline, model, deployments, and the development of its VSCode extension and more.
To stay up-to-date in your field of research or study, you should read research papers. However, reading a research paper is not like reading a newspaper. Because a paper has a formal structure that consists of several sections. Authors of research papers know the structure quite well. It is also essential for readers to be familiar with the main sections of a research paper. This helps readers to quickly find the information they are looking for in a research paper. Moreover, it helps them comprehend new ideas and methods of a paper better. Aside from gaining new knowledge, reading research papers help you find out what was done in the past to solve a particular problem. Therefore, you are not going to reinvent the wheel and probably implement a method or algorithm that is proposed in a paper.
In this post, I explain the components of each section in a research article. Also, examples from a real and open-access research paper in machine learning are provided to help you understand the components of each section.
Currently, many people want to learn about Machine Learning. Because they see fancy and intelligent things in the media from big tech companies. To learn about this appealing subject (Machine Learning), there are numerous textbooks and tutorials out there. However, machine learning textbooks are often more than 500 pages. Also, these books are written for the technical audience. That is those readers who have a degree in Computer Science, Mathematics or Engineering. Even CS graduates often find some topics of Machine Learning hard to grasp.