Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte - Pontes, Leandro Baêta Lustosa (2022)
RESUMO: Sumarização de código-fonte é a tarefa de criar automaticamente uma descrição em linguagem natural de trechos de código-fonte como classes, métodos ou funções. Nos últimos anos, diversos modelos baseados em algoritmos de aprendizado profundo têm sido propostos na literatura para essa tarefa. Mais recentemente, a arquitetura Transformer permitiu o desenvolvimento de grandes modelos pré-treinados a partir de imensas bases de dados. A partir dessa arquitetura, deu-se origem aos modelos especializados nas tarefas de compreensão e na sumarização de código-fonte em linguagem natural. Neste trabalho, realizou-se uma investigação comparativa entre quatro modelos neurais baseados na arquitetura Transformer (CodeBERT, CodeT5, CodeTrans e PLBART) do estado da arte para a tarefa de sumarização de código-fonte. Para isso, experimentos foram realizados utilizando quatro bases de dados comumente usadas na literatura contendo funções implementadas nas linguagens de programação Java e Python e seus respectivos resumos. Os experimentos foram realizados equalizando os parâmetros de execução e de treinamento desses modelos, para gerar os resultados com a maior isonomia possível. Inicialmente, experimentos foram executados utilizando os modelos pré-treinados e os resultados experimentais demonstraram que o modelo CodeTrans obteve os melhores resultados em diferentes medidas de avaliação, tanto para a linguagem Java como para Python. Além disso, os resultados também apontaram que os modelos aplicados na linguagem Java, obtiveram resultados superiores caso sejam executados com um conjunto de dados pré-processados com técnicas de fragmentação dos tokens do código-fonte, baseado nas regras de Camel-case e Snake-case. No entanto, o mesmo não é aplicável à linguagem Python, onde os modelos apresentaram melhores resultados quando aplicados nas bases de dados sem nenhuma fragmentação dos tokens. Em um segundo experimento, foram avaliadas as similaridades das descrições geradas pelos diferentes modelos e estratégias de pré-processamento das bases de dados e observou-se que os resumos gerados apresentam uma baixa similaridade quando comparados com outros modelos. Em um terceiro experimento, foi analisado o desempenho dos modelos após o processo de ajuste fino nas bases de dados utilizadas neste trabalho. Além disso, foram investigadas três estratégias para a seleção do melhor modelo, durante o processo de treinamento, que são: minimizar a função de perda e maximizar as medidas de avaliação ROUGE-L e BLEU-4 suavizada. Essas últimas são normalmente medidas adotadas para avaliar sistemas dessa área de estudo. Os resultados desse último experimento demonstraram que houve melhorias significativas após o ajuste fino dos modelos em ambas as bases de dados adotadas e que os modelos PLBART e CodeTrans obtiveram melhor desempenho em relação aos demais modelos avaliados, especialmente utilizando a medida BLEU-4 para selecionar o melhor modelo.