Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: Pontes, Leandro Baêta Lustosa
Orientador(a): Oliveira, Hilário Tomaz Alves de
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Edifes
Serra
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://repositorio.ifes.edu.br/handle/123456789/2993
Resumo: 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.
id IFES-2_d3fea55f98f2c43ccfb0fd9f510474bc
oai_identifier_str oai:repositorio.ifes.edu.br:123456789/2993
network_acronym_str IFES-2
network_name_str Repositório Institucional do IFES
repository_id_str
spelling Pontes, Leandro Baêta LustosaInstituto Federal do Espírito Santo (Ifes)Universidade Federal do Espírito Santo (Ufes)Mutz, Filipe WallCavalieri, Daniel CruzOliveira, Hilário Tomaz Alves deBoldt, Francisco de Assis2023-03-07T21:33:51Z2023-03-07T21:33:51Z2022Pontes, Leandro Baêta Lustosa. Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte. 2022. 71 f. Dissertação (Mestrado em Computação Aplicada ) - Instituto Federal do Espírito Santo, Campus Serra, Serra, 2022.https://repositorio.ifes.edu.br/handle/123456789/299330004012075P4RESUMO: 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.ABSTRACT: Source code summarization is the task of automatically creating a natural language description of source code snippets such as classes, methods or functions. Several models based on deep learning algorithms have been proposed in the literature for this task in recent years. More recently, the Transformer architecture allowed the development of large pre-trained models from huge databases. This architecture gave rise to models specialized in the tasks related to understanding and generating source code and natural language and vice versa. In this work, a comparative investigation was carried out between four state-of-the-art neural models based on the Transformer architecture (CodeBERT, CodeT5, CodeTrans and PLBART) for the source code summarization task. Experiments were performed using four databases commonly adopted in the literature containing functions implemented in Java and Python programming languages and their summaries. The experiments were carried out by equalizing the execution and training parameters of these models, seeking to generate the results with the greatest possible isonomy. Initially, experiments were performed using the pre-trained models, and the experimental results demonstrated that the CodeTrans model obtained the best results based on different evaluation measures, both for Java and Python programming languages. In addition, the results also showed that the models applied in the Java language obtained superior results when executed after a pre-processed step applying tokenization techniques on the tokens of the source code based on Camel-case and Snake-case. However, the same behaviour does not apply to the Python language, where the models showed better results without the tokenization pre-processing. In a second experiment, the similarities of the descriptions generated by the different models and pre-processing strategies of the databases were evaluated, and it was observed that the generated summaries present a low similarity when compared with other models. In a third experiment, the performance of the models after a fine-tuning process in the databases used in this work was analyzed. Furthermore, three strategies for selecting the best model during the training process were investigated, minimizing the loss function and maximizing the ROUGE-L and smoothed BLEU-4 evaluation measures, normally adopted to evaluate code summarization systems. This last experiment showed that the models achieved significant improvements after fine-tuning in both adopted databases. The PLBART and CodeTrans models performed better than the other evaluated models, especially using the BLEU-4 measure to select the best model during the fine-tuning training steps.Campus Serra71 f.EdifesSerraSumarização de código-fonteModelos NeuraisAprendizado ProfundoArquitetura TransformerInvestigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonteinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional do IFESinstname:Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo (IFES)instacron:IFESCampus Serrahttp://lattes.cnpq.br/2529360031927429https://orcid.org/0009-0007-1449-4354Ciências exatas e da terraInteligência Artificial (IA)http://lattes.cnpq.br/8980213630090119https://orcid.org/0000-0003-0643-7206http://lattes.cnpq.br/0385991152092556https://orcid.org/0000-0001-6919-5377Computação Aplicadahttp://lattes.cnpq.br/3123292310632540http://lattes.cnpq.br/9583314331960942https://orcid.org/0000-0002-2951-9207https://orcid.org/0000-0002-4916-1863LICENSElicense.txtlicense.txttext/plain; charset=utf-8934https://repositorio.ifes.edu.br/bitstreams/4abc4440-036e-4975-a8e6-e8f2de3e89dc/downloadac7cb971050ed632be934da23d966924MD52falseAnonymousREADORIGINALdissertacao-leandro-baeta-lustosa-pontes-vFinal.pdfdissertacao-leandro-baeta-lustosa-pontes-vFinal.pdfDissertação de Mestradoapplication/pdf2490094https://repositorio.ifes.edu.br/bitstreams/0f22a6de-ef7a-4300-b9ff-669a54e51eed/download629744889624a411f60de4ad498ec5d7MD51trueAnonymousREADTEXTdissertacao-leandro-baeta-lustosa-pontes-vFinal.pdf.txtdissertacao-leandro-baeta-lustosa-pontes-vFinal.pdf.txtExtracted texttext/plain149810https://repositorio.ifes.edu.br/bitstreams/ebb7b365-9194-4fcf-a108-a915362e4d05/download3e5de0a47054e797b4e1b0a0c3be9950MD53falseAnonymousREADTHUMBNAILdissertacao-leandro-baeta-lustosa-pontes-vFinal.pdf.jpgdissertacao-leandro-baeta-lustosa-pontes-vFinal.pdf.jpgGenerated Thumbnailimage/jpeg2206https://repositorio.ifes.edu.br/bitstreams/46243429-4fc3-4dff-88fa-16df8eda2426/downloada559c342e0924dd5898e51756ad31df0MD54falseAnonymousREAD123456789/29932025-09-10T18:57:00.861Zopen.accessoai:repositorio.ifes.edu.br:123456789/2993https://repositorio.ifes.edu.brRepositório InstitucionalPUBhttps://repositorio.ifes.edu.br/server/oai/requestrepositorio@ifes.edu.bropendoar:2025-09-10T18:57Repositório Institucional do IFES - Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo (IFES)falseQXV0b3JlcyBxdWUgc3VibWV0ZW0gYSBlc3RhIGNvbmZlcsOqbmNpYSBjb25jb3JkYW0gY29tIG9zIHNlZ3VpbnRlcyB0ZXJtb3M6CmEpIEF1dG9yZXMgbWFudMOpbSBvcyBkaXJlaXRvcyBhdXRvcmFpcyBzb2JyZSBvIHRyYWJhbGhvLCBwZXJtaXRpbmRvIMOgIGNvbmZlcsOqbmNpYSBjb2xvY8OhLWxvIHNvYiB1bWEgbGljZW7Dp2EgTGljZW7Dp2EgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiwgcXVlIHBlcm1pdGUgbGl2cmVtZW50ZSBhIG91dHJvcyBhY2Vzc2FyLCB1c2FyIGUgY29tcGFydGlsaGFyIG8gdHJhYmFsaG8gY29tIG8gY3LDqWRpdG8gZGUgYXV0b3JpYSBlIGFwcmVzZW50YcOnw6NvIGluaWNpYWwgbmVzdGEgY29uZmVyw6puY2lhLgpiKSBBdXRvcmVzIHBvZGVtIGFicmlyIG3Do28gZG9zIHRlcm1vcyBkYSBsaWNlbsOnYSBDQyBlIGRlZmluaXIgY29udHJhdG9zIGFkaWNpb25haXMgcGFyYSBhIGRpc3RyaWJ1acOnw6NvIG7Do28tZXhjbHVzaXZhIGUgc3Vic2Vxw7xlbnRlIHB1YmxpY2HDp8OjbyBkZXN0ZSB0cmFiYWxobyAoZXguOiBwdWJsaWNhciB1bWEgdmVyc8OjbyBhdHVhbGl6YWRhIGVtIHVtIHBlcmnDs2RpY28sIGRpc3BvbmliaWxpemFyIGVtIHJlcG9zaXTDs3JpbyBpbnN0aXR1Y2lvbmFsLCBvdSBwdWJsaWPDoS1sbyBlbSBsaXZybyksIGNvbSBvIGNyw6lkaXRvIGRlIGF1dG9yaWEgZSBhcHJlc2VudGHDp8OjbyBpbmljaWFsIG5lc3RhIGNvbmZlcsOqbmNpYS4KYykgQWzDqW0gZGlzc28sIGF1dG9yZXMgc8OjbyBpbmNlbnRpdmFkb3MgYSBwdWJsaWNhciBlIGNvbXBhcnRpbGhhciBzZXVzIHRyYWJhbGhvcyBvbmxpbmUgKGV4LjogZW0gcmVwb3NpdMOzcmlvIGluc3RpdHVjaW9uYWwgb3UgZW0gc3VhIHDDoWdpbmEgcGVzc29hbCkgYSBxdWFscXVlciBtb21lbnRvIGFudGVzIGUgZGVwb2lzIGRhIGNvbmZlcsOqCg==
dc.title.pt_BR.fl_str_mv Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
title Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
spellingShingle Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
Pontes, Leandro Baêta Lustosa
Sumarização de código-fonte
Modelos Neurais
Aprendizado Profundo
Arquitetura Transformer
title_short Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
title_full Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
title_fullStr Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
title_full_unstemmed Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
title_sort Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
author Pontes, Leandro Baêta Lustosa
author_facet Pontes, Leandro Baêta Lustosa
author_role author
dc.contributor.institution.pt_BR.fl_str_mv Instituto Federal do Espírito Santo (Ifes)
Universidade Federal do Espírito Santo (Ufes)
dc.contributor.member.none.fl_str_mv Mutz, Filipe Wall
Cavalieri, Daniel Cruz
dc.contributor.author.fl_str_mv Pontes, Leandro Baêta Lustosa
dc.contributor.advisor1.fl_str_mv Oliveira, Hilário Tomaz Alves de
dc.contributor.advisor-co1.fl_str_mv Boldt, Francisco de Assis
contributor_str_mv Oliveira, Hilário Tomaz Alves de
Boldt, Francisco de Assis
dc.subject.por.fl_str_mv Sumarização de código-fonte
Modelos Neurais
Aprendizado Profundo
Arquitetura Transformer
topic Sumarização de código-fonte
Modelos Neurais
Aprendizado Profundo
Arquitetura Transformer
description 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.
publishDate 2022
dc.date.issued.fl_str_mv 2022
dc.date.accessioned.fl_str_mv 2023-03-07T21:33:51Z
dc.date.available.fl_str_mv 2023-03-07T21:33:51Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv Pontes, Leandro Baêta Lustosa. Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte. 2022. 71 f. Dissertação (Mestrado em Computação Aplicada ) - Instituto Federal do Espírito Santo, Campus Serra, Serra, 2022.
dc.identifier.uri.fl_str_mv https://repositorio.ifes.edu.br/handle/123456789/2993
dc.identifier.capes.pt_BR.fl_str_mv 30004012075P4
identifier_str_mv Pontes, Leandro Baêta Lustosa. Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte. 2022. 71 f. Dissertação (Mestrado em Computação Aplicada ) - Instituto Federal do Espírito Santo, Campus Serra, Serra, 2022.
30004012075P4
url https://repositorio.ifes.edu.br/handle/123456789/2993
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 71 f.
dc.publisher.none.fl_str_mv Edifes
Serra
publisher.none.fl_str_mv Edifes
Serra
dc.source.none.fl_str_mv reponame:Repositório Institucional do IFES
instname:Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo (IFES)
instacron:IFES
instname_str Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo (IFES)
instacron_str IFES
institution IFES
reponame_str Repositório Institucional do IFES
collection Repositório Institucional do IFES
bitstream.url.fl_str_mv https://repositorio.ifes.edu.br/bitstreams/4abc4440-036e-4975-a8e6-e8f2de3e89dc/download
https://repositorio.ifes.edu.br/bitstreams/0f22a6de-ef7a-4300-b9ff-669a54e51eed/download
https://repositorio.ifes.edu.br/bitstreams/ebb7b365-9194-4fcf-a108-a915362e4d05/download
https://repositorio.ifes.edu.br/bitstreams/46243429-4fc3-4dff-88fa-16df8eda2426/download
bitstream.checksum.fl_str_mv ac7cb971050ed632be934da23d966924
629744889624a411f60de4ad498ec5d7
3e5de0a47054e797b4e1b0a0c3be9950
a559c342e0924dd5898e51756ad31df0
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional do IFES - Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo (IFES)
repository.mail.fl_str_mv repositorio@ifes.edu.br
_version_ 1865654665916448768