The Good, the Bad, and the Missing: Neural Code Generation for Machine Learning Tasks

05/16/2023
by   Jiho Shin, et al.
0

Machine learning (ML) has been increasingly used in a variety of domains, while solving ML programming tasks poses unique challenges because of the fundamentally different nature and construction from general programming tasks, especially for developers who do not have ML backgrounds. Automatic code generation that produces a code snippet from a natural language description can be a promising technique to accelerate ML programming tasks. In recent years, although many deep learning-based neural code generation models have been proposed with high accuracy, the fact that most of them are mainly evaluated on general programming tasks calls into question their effectiveness and usefulness in ML programming tasks. In this paper, we set out to investigate the effectiveness of existing neural code generation models on ML programming tasks. For our analysis, we select six state-of-the-art neural code generation models, and evaluate their performance on four widely used ML libraries, with newly-created 83K pairs of natural-language described ML programming tasks. Our empirical study reveals some good, bad, and missing aspects of neural code generation models on ML tasks, with a few major ones listed below. (Good) Neural code generation models perform significantly better on ML tasks than on non-ML tasks. (Bad) Most of the generated code is semantically incorrect. (Bad) Code generation models cannot significantly improve developers' completion time. (Good) The generated code can help developers write more correct code by providing developers with clues for using correct APIs. (Missing) The observation from our user study reveals the missing aspects of code generation for ML tasks, e.g., decomposing code generation for divide-and-conquer into two tasks: API sequence identification and API usage generation.

READ FULL TEXT
research
01/27/2021

In-IDE Code Generation from Natural Language: Promise and Challenges

A great part of software development involves conceptualizing or communi...
research
03/22/2021

Comprehensive Integration of API Usage Patterns

Nowadays, developers often reuse existing APIs to implement their progra...
research
07/17/2023

In-IDE Generation-based Information Support with a Large Language Model

Understanding code is challenging, especially when working in new and co...
research
08/22/2021

Evaluation Methodologies for Code Learning Tasks

There has been a growing interest in developing machine learning (ML) mo...
research
05/23/2022

Automatic Generation of Programming Exercises

Massive training of developers following the growing demands of the info...
research
06/26/2023

Discriminating Human-authored from ChatGPT-Generated Code Via Discernable Feature Analysis

The ubiquitous adoption of Large Language Generation Models (LLMs) in pr...
research
11/21/2021

Challenging Machine Learning-based Clone Detectors via Semantic-preserving Code Transformations

Software clone detection identifies similar code snippets. It has been a...

Please sign up or login with your details

Forgot password? Click here to reset