Atribución-NoComercial 4.0 InternacionalGómez Perdomo, Jonatan (Thesis advisor)Nader Palacio, David Alberto (Thesis co-advisor)Rodriguez Caicedo, Alvaro Dario2022-10-252022-10-252022-07-15https://repositorio.unal.edu.co/handle/unal/82449ilustraciones, gráficasCode 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)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.xi, 112 páginasapplication/pdfenghttp://creativecommons.org/licenses/by-nc/4.0/000 - Ciencias de la computación, información y obras generales::004 - Procesamiento de datos Ciencia de los computadores000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computaciónUnderstanding and Implementing Deep Neural Networks for Unconditional Source Code GenerationTrabajo de grado - MaestríaUniversidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/info:eu-repo/semantics/openAccessComputadoresComputersProcesamiento de la informaciónInformation processingOpen-ended Code GenerationML InterpretabilityLanguage ModelsAutoregressive ModelsNeural NetworksInterpretabilidad de aprendizaje automáticoGeneración No-Condicionada de CódigoModelos de LenguajeModelos AutoregresivosRedes NeuronalesEntendiendo e implementando redes neuronales profundas para la generación no condicionada de código fuente