Facebook to Unveil Getafix

New Facebook programming tool fixes bugs in code 'on the run' automatically
08 November 2018   1124

Facebook described how Getafix works. The developers of the company created it to automate the process of fixing the code. Getafix offers fixes for bugs found by the Infer static analyzer, Sapfix and Sapienz, the application testing system.

The tool was created with the aim of shifting the routine duties of engineers to find and fix bugs by AI. In this case, the final decision on making changes is made by the person. The neural network uses the tools to consiser for the previous changes made by engineers, checks the new code and the context of the fragment. After these steps, it offers the option of a fix to the engineer.

Tools that automatically fix code are mostly designed for simple tasks, without context. Getafix, even in the case of similar bugs, can offer different solutions:

The company compared the changes made by man and AI, with the correction of about two hundred bugs. A quarter of the options proposed by the neural network coincided with human-written solutions.

Another experiment involved the correction of 2 thousand bugs calling the null pointer method. Getafix automatically fixed 53% of errors.

Facebook developed an AI-based tool for generating and deploying patches called Sapfix in mid-September 2018. The company introduced it at the Scale 2018 conference. Sapfix can work on its own or in combination with Sapienz - this is “smart” testing software from Facebook for finding errors in the code.

Nvidia to Open SPADE Source Code

SPADE machine learning system creates realistic landscapes based on rough human sketches
15 April 2019   858

NVIDIA has released the source code for the SPADE machine learning system (GauGAN), which allows for the synthesis of realistic landscapes based on rough sketches, as well as training models associated with the project. The system was demonstrated in March at the GTC 2019 conference, but the code was published only yesterday. The developments are open under the non-free license CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike 4.0), allowing use only for non-commercial purposes. The code is written in Python using the PyTorch framework.

Sketches are drawn up in the form of a segmented map that determines the placement of exemplary objects on the scene. The nature of the generated objects is set using color labels. For example, a blue fill turns into sky, blue into water, dark green into trees, light green into grass, light brown into stones, dark brown into mountains, gray into snow, a brown line into a road, and a blue line into the river. Additionally, based on the choice of reference images, the overall style of the composition and the time of day are determined. The proposed tool for creating virtual worlds can be useful to a wide range of specialists, from architects and urban planners to game developers and landscape designers.

Objects are synthesized by a generative-adversarial neural network (GAN), which, based on a schematic segmented map, creates realistic images by borrowing parts from a model previously trained on several million photographs. In contrast to the previously developed systems of image synthesis, the proposed method is based on the use of adaptive spatial transformation followed by transformation based on machine learning. Processing a segmented map instead of semantic markup allows you to achieve an exact match of the result and control the style.

To achieve realism, two competing neural networks are used: the generator and the discriminator (Discriminator). The generator generates images based on mixing elements of real photos, and the discriminator identifies possible deviations from real images. As a result, a feedback is formed, on the basis of which the generator begins to assemble more and more qualitative samples, until the discriminator ceases to distinguish them from the real ones.