Início Tecnologia Avaliando modelos GPT e de código aberto em tarefas de mutação de...

Avaliando modelos GPT e de código aberto em tarefas de mutação de código

20
0

Autores:

(1) Bo Wang, Universidade de Pequim Jiaotong, Pequim, China ([email protected]);

(2) Mingda Chen, Universidade de Pequim Jiaotong, Pequim, China ([email protected]);

(3) Youfang Lin, Universidade de Pequim Jiaotong, Pequim, China ([email protected]);

(4) Mike Papadakis, Universidade de Luxemburgo, Luxemburgo ([email protected]);

(5) Jie M. Zhang, King’s Faculty London, Londres, Reino Unido ([email protected]).

Resumo e 1 Introdução

2 Antecedentes e trabalho relacionado

3 desenho do estudo

3.1 Visão geral e perguntas de pesquisa

3.2 conjuntos de dados

3.3 Geração de mutação through LLMS

3.4 Métricas de avaliação

3.5 Configurações do experimento

4 Resultados da avaliação

4.1 RQ1: desempenho sobre custo e usabilidade

4.2 RQ2: similaridade de comportamento

4.3 RQ3: Impactos de diferentes solicitações

4.4 RQ4: Impactos de diferentes LLMs

4.5 RQ5: Causas raiz e tipos de erro de mutações não compiláveis

5 discussão

5.1 Sensibilidade às configurações de experimento escolhidas

5.2 Implicações

5.3 Ameaças à validade

6 conclusão e referências

4.4 RQ4: Impactos de diferentes LLMs

Para responder a este RQ, adicionamos dois LLMs extras, GPT-4 e Starchat16b e comparamos seus resultados com os dois LLMs padrão, GPT-3.5 e Code LLAMA-13B. A metade direita da Tabela 7 mostra resultados comparativos entre os modelos usando o immediate padrão. Observamos que os LLMs de código fechado geralmente superam os outros na maioria das métricas. O GPT-3.5 se destaca na contagem de mutações, custo de geração por 1K de mutações e tempo médio de geração, superb para gerar rapidamente inúmeras mutações. O GPT-4 lidera todas as métricas de usabilidade e métricas de similaridade de comportamento, demonstrando sua eficácia nas tarefas relacionadas ao código, embora seus aprimoramentos sobre o GPT-3.5 nas métricas de comportamento sejam triviais. Entre os dois LLMs de código aberto, apesar de Starchat-𝛽-16b ter mais parâmetros, o Codellama-13b supera todas as métricas. Isso sugere que a arquitetura e a qualidade dos dados do modelo afetam significativamente o desempenho além do número de parâmetros.

4.5 RQ5: Causas raiz e tipos de erro de mutações não compiláveis

Mutações não compiláveis ​​requerem uma etapa de compilação para filtrar, o que resulta em recursos computacionais desperdiçados. Conforme mencionado na Seção 4.1, os LLMs geram um número significativo de mutações não compiláveis. Este RQ analisa os tipos de erros e possíveis causas radiculares dessas mutações não compiláveis. Após a configuração das etapas anteriores, primeiro amostra 384 mutações de não compilação das saídas do GPT-3.5, garantindo que o nível de confiança seja de 95% e a margem de erro seja de 5%. A partir da análise guide dessas mutações não compiláveis, identificamos 9 tipos de erro distintos, conforme mostrado na Tabela 8.

Mostrado como Tabela 8, o tipo de erro mais comum, o uso de métodos desconhecidos, representa 27,34% do whole de erros, revelando a questão da alucinação de modelos generativos [30]. A destruição estrutural do código é o segundo erro mais comum, responsável por 22,92%, indicando que garantir que os códigos gerados sejam sintaticamente corretos continuam sendo um desafio para o LLMS atual. Este resultado sugere que ainda há espaço significativo para melhorias nos LLMs atuais.

Tabela 7: Resultados de comparação de diferentes solicitações e LLMSTabela 7: Resultados de comparação de diferentes solicitações e LLMS

Tabela 8: Tipos de erro de mutações não compiláveisTabela 8: Tipos de erro de mutações não compiláveis

Figura 3: Distribuição dos tipos de nó AST Código de origem para mutações não compiláveisFigura 3: Distribuição dos tipos de nó AST Código de origem para mutações não compiláveis

Para analisar quais tipos de código são propensos a fazer com que os LLMs gerem mutações não compiláveis, examinamos os locais de código de todas as mutações não compiláveis ​​geradas pelo GPT-3.5, Codellama, Leam e 𝜇BerT na seção 4.1, como mostrado na Figura 3. Para todas as abordagens, as dicas de código com a metodinvocação. Em explicit, existem mais de 30% das mutações não compiláveis ​​no native com o MethodInvocation e 20% ocorrem no native com a referência de membros. Isso é potencialmente causado pela complexidade inerente dessas operações, que geralmente envolvem múltiplas dependências e referências. Se qualquer método ou membro necessário estiver ausente ou especificado incorretamente, ele poderá facilmente levar a mutações não compiláveis. Os erros destacam a necessidade de uma melhor geração de mutação com reconhecimento de contexto, garantindo que o método chama e as referências de membros se alinhem à estrutura do programa pretendida. Além disso, inspecionamos as mutações de exclusão rejeitadas pelo compilador e descobrimos que, para GPT-3.5, Codellama, Leam, 𝜇bert e Main, essas mutações representam 7,1%, 0,2%, 45,3%, 0,14percente 14,4percentde todas as suas mutações não compiláveis, respectivamente. Assim, para os LLMs, a exclusão não é a principal razão para a não compilação.

Tabela 9: desempenho de diferentes comprimentos de contextoTabela 9: desempenho de diferentes comprimentos de contexto

Tabela 10: Similaridade do desempenho de diferentes comprimentos de contextoTabela 10: Similaridade do desempenho de diferentes comprimentos de contexto

Este artigo é Disponível no Arxiv sob a licença de CC por 4,0 Deed (Atribuição 4.0 Internacional).

fonte