A selection of articles on machine learning: cases, guides, and research - July 2020





It seems that not one of our digests is complete without mentioning the developments of Open AI: in July, the new GPT-3 algorithm became the most discussed topic in the field of machine learning. Technically, this is not one model, but a whole family, which for convenience is generalized under a single name. The largest model uses 175 billion parameters, and a 570 Gb dataset was used for training, which included filtered data from Common Crawl archives and high-quality data from WebText2, Books1, Books2 and Wikipedia.



It is worth noting here that the model is pre-trained and does not require fine tuning for specific tasks: to achieve better results, it is recommended to provide it with at least one (one-shot) or several (few-shot) examples of solving problems at the input, but you can do without them (zero-shot). For the model to generate a solution to the problem, it is enough to describe the problem in English. It is generally believed that this is an algorithm for generating texts, but it is already clear that the potential is much richer.



The model was presented back in May, even then Open AI demonstrated that GPT-3 trained on the GitHub repositories can successfully generate Python code, and now, a month and a half later, the first lucky ones got access to the API and showed their best practices. The results are amazing. We, as developers, are, of course, interested in how much this algorithm will simplify our life, and maybe create competition.



The debuild.co service has already appeared, which, according to the textual description of the function, creates a working code and makes good layout .







You can use the best practices not only in web programming, but also in design. The model is capable of generating JSON data by text description and translating it into Figma layout.







And also she practically succeededinterview for a Ruby developer position.



The news about the use of machine learning in programming does not end there.



TransCoder



Migrating your codebase from an archaic programming language like COBOL to a modern alternative like Java or C ++ is a complex, resource-intensive task that requires professionals to be proficient in both technologies. At the same time, archaic languages ​​are still used in mainframes around the world, which often leaves owners with a difficult choice - either manually translate the codebase into a modern language, or continue to maintain legacy code.



Facebook Unveils Open Source Self-Learning Modelwhich will help facilitate this task. It is the first system capable of translating code from one programming language to another without requiring parallel training data.



The creators estimate that the model correctly translates over 90% of Java functions to C ++, 74.8% of C ++ functions to Java, and 68.7% of Java functions to Python. Which is higher than the indicators of commercial analogues



ContraCode Development



tools are increasingly using machine learning to understand and modify human-written code. The main difficulty in working with algorithms with code is the lack of labeled datasets.



Researchers at Berkeley suggest solving this problem using the ContraCode method. The authors believe that programs with the same functionality should have the same representations, and vice versa. Therefore, they generate code variants for Contrastive Learning. To create data, the variables are renamed, the code is reformatted and obfuscated.



In the future, a self-learning model using this method will be able to predict types, detect errors, summarize code, etc. Given these and other advances in the field, it is possible that machines will soon learn to write code just like humans.



DeepSIM







The authors of this study show that a generative adversarial network on a single target image is able to handle complex manipulations.

The model learns to match the primitive representation of the image (for example, only the edges of the objects in the photo) with the image itself. During manipulation, the generator allows you to modify images by changing their primitive representation at the input and mapping it through the network. This approach solves the DNN problem that requires a huge training dataset. The results are impressive.



3D Photo Inpainting







Another way to convert 2D RGB-D images to 3D. The algorithm recreates areas that are hidden by objects in the original image. A layered depth image was used as a base representation, from which the model iteratively synthesizes new color and depth data for the invisible region, taking into account the context. The output is photos, to which you can add a parallax effect using standard graphics engines. A colab is available where you can test the model yourself.



HiDT







A team of Russian researchers presented an open source algorithm that changes the time of day in photographs. Modeling lighting changes in high-resolution photographs is challenging. The presented algorithm combines the generative image-to-image model and the upsampling scheme, which allows transformations on high-resolution images. It is important to note that the model was trained on static images of different landscapes without time stamps.



Swapping Autoencoder







If HiDT is able to qualitatively change lighting in images, then this neural network, trained on different datasets, is capable of changing not only the time of day, but also the landscape. Unfortunately, there is no opportunity to see the source code, so we can only admire the video that demonstrates the capabilities of this model.



SCAN An



open source neural network that independently groups images into semantically meaningful clusters. The novelty of the author's approach is that the stages of training and clustering are separated. First, the task of teaching features is started, then the model is based on the data obtained at the first stage during clustering. This allows for better results than other similar models.



RetrieveGAN







Generating neural networks are rapidly developing, and RetrieveGAN is another confirmation of this. An algorithm based on a textual description of a scene uses fragments of existing images to create unique new ones. While the resulting images have a lot of artifacts, and they do not look very believable, but in the future this may open up new possibilities in the field of photomontage.



Elevator Passenger Tracking



Thanks to advances in computer vision and machine learning, human tracking is becoming even more effective. A group of researchers from Shanghai commissioned by a large developer has developed a system of social control of behavior in elevators in real time. The system is capable of detecting suspicious activity in elevators. Thus, the creators hope to prevent vandalism, sexual harassment, drug trafficking. The system will also notice if people stop on a certain floor more often: for example, it has already been possible to identify catering that works illegally in the apartment. The system has already been installed and monitors hundreds of thousands of elevators.



This is how intense July turned out to be. Let's see what news the next month brings us. Thank you for attention!



All Articles