Intel has made ControlFlag, a machine learning tool that automatically detects errors in the code, publicly available. ControlFlag has already found bugs in codes used several billion times a day.
According to research, the search and elimination of errors in the code are most often performed manually and take more than 50% of the working time of developers. Intel ControlFlag was designed to speed up the development process using an AI approach such as anomaly detection. The tool has been trained to detect standard code writing patterns on a large database and can find anomalies – potential sources of errors – regardless of the programming language.
First introduced at the end of 2020, ControlFlag has so far been used by Intel only internally to identify anomalies in the development of its software. By opening access to the tool for external developers, Intel expects to expand the capabilities of the system to optimize the process of writing code.
ControlFlag is based on the method of teaching without a teacher. The system has studied more than a billion lines of code, which allowed it to achieve a high degree of accuracy and even adapt to the style of individual developers to distinguish the anomaly from the peculiarities of the style of writing code.
Last year, ControlFlag discovered an anomaly in the Client URL (CURL) code, which transmits data using various network protocols more than a billion times a day. The CURL team agreed with ControlFlag’s findings and reworked the code to fix the problem.
The system is part of Intel’s Machine Programming Research (MPR) project, the main goal of which is to reduce the time required for software development by 1000 times due to automation. In particular, Intel is currently working to train Controlflag to automatically correct detected errors. Also in 2020, the company released the MISIM tool, developed jointly with MIT laboratories, which can study code fragments to understand what a part of the code intends to do. The system is planned to be used to offer developers ways to improve the efficiency of the code.