Evaluating the effect of retrieval augmented generation in Mistral-7b-Instruct-v0.2’s clojure’s code review.

Revisão de código é uma das atividades mais importantes da engenharia de software, visto que visa garantir a qualidade e confiabilidade do código, mas esse processo é feito majoritariamente de maneira manual, o que pode demandar tempo e tornar o processo oneroso e suscetível a falhas. O processo de...

Descripción completa

Detalles Bibliográficos
Autor: ANDRADE, Victor Brandão de.
Tipo de recurso: tesis doctoral
Estado:Versión publicada
Fecha de publicación:2024
País:Brasil
Institución:Universidade Federal de Campina Grande (UFCG)
Repositorio:Biblioteca Digital de Teses e Dissertações da UFCG
Idioma:portugués
OAI Identifier:oai:localhost:riufcg/38351
Acceso en línea:http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/38351
Access Level:acceso abierto
Palabra clave:Clojure
Code Review
RAG
LLMs
Revisão de Código
Ciência da Computação
Descripción
Sumario:Revisão de código é uma das atividades mais importantes da engenharia de software, visto que visa garantir a qualidade e confiabilidade do código, mas esse processo é feito majoritariamente de maneira manual, o que pode demandar tempo e tornar o processo oneroso e suscetível a falhas. O processo de revisão de código é um forte candidato para automação com objetivo de torná-lo mais eficiente e menos suscetível a falhas devido ao componente humano do processo. Neste trabalho, nós desejamos explorar a automação do processo de revisão de código através da aplicação de Grandes Modelos de Linguagem e uma técnica de otimização no contexto de revisão de código Clojure, que é uma linguagem de programação emergente. O Grande Modelo de Linguagem escolhido foi o Mistral-7B-Instruct-v0.2 e a técnica de otimização foi a Retrieval Augmented Generation (RAG), ambos os tópicos são discutidos nas seções seguintes deste trabalho. Nossos resultados mostram que o Mistral com e sem o uso da otimização com RAG pode revisar código como humanos, mas RAG não melhorou a revisão do modelo.