Understanding and Implementing Deep Neural Networks for Unconditional Source Code Generation
Type
Trabajo de grado - Maestría
Document language
InglésPublication Date
2022-07-15Metadata
Show full item recordAbstract
Code Generation is a relevant problem in computer science, supporting the automation of tasks such as code completion, program synthesis, and program translation. In recent years, Deep Learning approaches have gained popularity in the code generation problem, and some of these approaches leverage Language Models. However, the existing studies mainly focus on evaluation using machine learning metrics. Additionally, the generation process can be classified into conditional or unconditional (i.e., open-ended) approaches depending on the input context provided to the models. This research proposes CodeGenXplainer, a suite of interpretability methods for Unconditional Language Models of source code. CodeGenXplainer comprises four methods leveraging multiple source code features such as embedding representations, code metrics, compilation errors, and token distributions. Additionally, this research presents an empirical study to validate CodeGenXplainer using publicly available data and extensive sampling of code snippets. Furthermore, CodeGenXplainer provides a base conceptual framework that allows studying multiple complementary perspectives based on machine-generated code. Results show that the studied models can generate code exhibiting similar properties to human code, particularly in terms of code metrics, compilation errors, and token-level information; nonetheless, machine-generated code presents issues with the semantic elements of the code. (Texto tomado de la fuente)Summary
La generación de código es un problema relevante en ciencias de la computación, que soporta la automatización de tareas como completado de código, síntesis y traducción de programas. En los últimos años, los enfoques de aprendizaje profundo han ganado popularidad en el problema de generación de código y algunos de estos enfoques están basados en modelos de lenguaje. Sin embargo, los estudios existentes se centran principalmente en la evaluación utilizando métricas de aprendizaje automático. Adicionalmente, el proceso de generación se puede clasificar en enfoques condicionales o incondicionales (es decir, open-ended) según el contexto de entrada proporcionado a los modelos. Esta investigación propone CodeGenXplainer, un conjunto de métodos de interpretabilidad para modelos de lenguaje no condicionados de código fuente. CodeGenXplainer comprende cuatro métodos que aprovechan múltiples características de código fuente, como representaciones abstractas, métricas de código, errores de compilación y distribuciones de tokens. Además, esta investigación presenta un estudio empírico para validar CodeGenXplainer utilizando datos disponibles públicamente y muestreo extensivo de fragmentos de código. Por otra parte, CodeGenXplainer proporciona un marco conceptual base que permite estudiar múltiples perspectivas complementarias basadas en código generado por máquina. Los resultados muestran que los modelos estudiados pueden generar código que exhibe propiedades similares al código humano, particularmente en términos de métricas de código, errores de compilación e información a nivel de token; no obstante, el código generado por máquina presenta problemas con los elementos semánticos del código.Keywords
Physical description
ilustraciones, gráficas
Collections
