Investigação de modelos neurais baseados na arquitetura Transformer para sumarização automática de código-fonte
| Ano de defesa: | 2022 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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 |