Melhorando a Rastreabilidade de Software Automatizado com LLMs
Esse artigo fala sobre como usar prompts pra melhorar a rastreabilidade de software com modelos de linguagem grande.
― 8 min ler
Índice
- O Desafio da Rastreabilidade de Software
- Explorando Prompts para Rastreabilidade
- Aprendendo com a Experiência
- Analisando Conjuntos de Dados e Trabalhos Relacionados
- Configuração do Experimento
- Desenvolvimento de Prompts de Classificação
- Instrução e Raciocínio
- Abordagem de Classificação
- Lições da Pesquisa
- Investigações Futuras
- Importância de Prompts Eficazes
- Fonte original
A rastreabilidade automatizada de software é a prática de acompanhar e vincular diferentes peças de artefatos de software pra garantir a relação e a responsabilidade deles. Com o avanço da tecnologia, ferramentas como modelos de linguagem grande (LLMs) mostram potencial pra melhorar esse processo. Este artigo analisa o papel dos Prompts, ou instruções dadas a esses modelos, em melhorar a rastreabilidade automatizada de software.
O Desafio da Rastreabilidade de Software
Nos últimos vinte anos, os desafios na automação da rastreabilidade têm sido destacados várias vezes. Muitas metodologias foram propostas, mas uma abordagem consistente e precisa ainda é difícil de encontrar. Fatores como termos técnicos complexos, dados limitados para treinamento e baixa interpretabilidade geraram problemas. Embora avanços como o modelo BERT do Google em 2018 tenham feito progresso, muitos problemas ainda persistem.
Agora, LLMs como GPT-3 e Claude oferecem novas oportunidades para automatizar a rastreabilidade. Mas ainda não tá claro como usar esses modelos da melhor forma pra isso. O principal objetivo ao usar LLMs é refinar o processo de criação de prompts que gerem links de rastreabilidade eficazes.
Explorando Prompts para Rastreabilidade
No começo da nossa pesquisa, queríamos encontrar o prompt perfeito pra usar na rastreabilidade automatizada. Esperávamos que esse prompt identificasse consistentemente os links verdadeiros em vários projetos. Descobrimos que, enquanto um método de prompting funcionava bem em alguns casos, o ideal variava dependendo dos recursos disponíveis, do modelo usado e da tarefa específica.
Os diferentes LLMs têm suas próprias forças e fraquezas, o que significa que eles podem responder de forma diferente aos mesmos prompts. Além disso, várias versões do mesmo modelo podem ter desempenhos diferentes, criando mais complexidade.
Aprendendo com a Experiência
Enquanto criávamos nossos prompts, encontramos vários desafios e queríamos compartilhar essas dificuldades com outros na área. Em vez de apenas apresentar nossos melhores resultados, queríamos educar e inspirar outros que precisavam criar prompts adequados para suas demandas.
Buscamos responder algumas perguntas importantes sobre os LLMs e sua eficácia em projetos com vocabulário técnico. Também queríamos determinar se esses modelos poderiam fornecer explicações razoáveis para suas decisões e se tais explicações poderiam levar a melhores prompts.
Analisando Conjuntos de Dados e Trabalhos Relacionados
Pra estudar a eficácia dos LLMs na rastreabilidade automatizada, usamos três conjuntos de dados de engenharia de software: CM1, iTrust e Dronology. Cada conjunto representava domínios e tipos distintos de artefatos de software, incluindo elementos de linguagem natural e de programação.
Nas últimas décadas, pesquisadores examinaram diferentes métodos de rastreabilidade automatizada. Técnicas clássicas de processamento de linguagem natural lançaram as bases, mas métodos de deep learning ganharam destaque em torno de 2010. Conforme os modelos cresciam em tamanho e complexidade, especialmente com arquiteturas de transformadores, novas oportunidades surgiram que antes pareciam inalcançáveis.
No entanto, pouca pesquisa foi feita sobre o potencial específico dos LLMs na rastreabilidade automatizada. Nosso trabalho visava preencher essa lacuna investigando como esses modelos poderiam fazer previsões sobre links de rastreabilidade entre artefatos de software.
Configuração do Experimento
Para nossos experimentos, primeiro escolhemos um subconjunto menor de dados dos nossos conjuntos. Isso ajudou a focar mais e fazer uma análise mais profunda, reduzindo custos e tempo de execução. Calculamos várias métricas, incluindo o número de artefatos filhos conectados aos pais, visando criar um conjunto representativo de consultas de rastreio.
Antes de usar modelos como o Claude, testamos o text-davinci-003 da OpenAI pra prever links de rastreio. Esse modelo teve desempenho comparável, embora no final optássemos pelo Claude por suas velocidades mais rápidas e custos mais baixos. Também examinamos a ideia de usar embeddings pra calcular similaridade entre artefatos, mas esse método não trouxe vantagens significativas, levando-nos a focar nas capacidades generativas em vez disso.
Pra preparar nosso enfoque de Classificação, pedimos ao modelo sobre cada par de artefato fonte e alvo. Fizemos perguntas pra obter respostas de 'sim' ou 'não' sobre se eles estavam relacionados.
Desenvolvimento de Prompts de Classificação
Nosso primeiro prompt foi bem geral: "O (1) está relacionado a (2)? Responda 'sim' ou 'não'." Embora isso produzisse resultados, muitas vezes perdia links verdadeiros. Na nossa tentativa de entender o raciocínio do modelo, exploramos várias modificações. Por exemplo, descobrimos que ignorar os diferentes níveis de detalhe nos artefatos poderia melhorar as previsões.
À medida que refinamos nossos prompts, percebemos que deixar o contexto claro ajudava o modelo a entender as relações entre os artefatos. Ao esclarecer que ambos os artefatos eram do mesmo sistema de software, o modelo melhorou sua capacidade de identificar links. Contudo, esse ajuste também levou a muitos falsos positivos, indicando que, embora o modelo parecesse encontrar conexões, ele também se confundia quando os artefatos não estavam realmente ligados.
Outros ajustes envolveram pedir ao modelo que se concentrasse em se um artefato poderia ser decomposto de outro, mas essa abordagem também ficou muito restritiva. No final, chegamos a um prompt que perguntava se o segundo artefato cumpria o primeiro.
Instrução e Raciocínio
Na nossa jornada pra refinar os prompts, percebemos que adicionar uma etapa de raciocínio poderia melhorar os resultados. Ao pedir ao modelo que articulasse seu processo de pensamento antes de dar uma resposta final, testemunhamos um aumento tanto na precisão quanto na recuperação. O modelo ficou melhor em explicar seu raciocínio, ajudando a melhorar seu julgamento final ao determinar o link de rastreabilidade.
Esse processo nos permitiu colocar mais informações em cada prompt, proporcionando mais contexto sobre as relações que estávamos tentando estabelecer.
Abordagem de Classificação
Além da classificação, exploramos usar uma abordagem de classificação pra prever links de rastreio. A classificação permite uma expressão mais nuances da confiança nas previsões, permitindo que o modelo forneça uma lista priorizada de candidatos.
Pra conduzir essa classificação, instruímos o modelo a listar artefatos relacionados do mais ao menos relacionado a uma fonte. No entanto, também reconhecemos que a ordem em que os artefatos eram apresentados importava muito. Quando os artefatos eram apresentados em ordem aleatória, o desempenho do modelo caía pra níveis quase aleatórios. Ao pré-classificar com base nas pontuações de similaridade, conseguimos melhorar nossos resultados.
Embora tenhamos descoberto que a classificação pode ser eficaz, ela também exigia uma grande janela de contexto. Portanto, continuamos examinando a classificação como uma alternativa viável.
Lições da Pesquisa
Nossos achados indicaram que a engenharia de prompts desempenha um papel crucial em maximizar o potencial dos LLMs para tarefas de rastreabilidade. Mudanças pequenas podem levar a mudanças drásticas na saída. Portanto, nossa abordagem na criação de prompts exigia reflexão cuidadosa.
Um tema constante foi que os LLMs podem identificar relações entre artefatos de forma diferente de rastreadores humanos. Ao especificar o uso pretendido dos links de rastreabilidade, poderíamos alinhar melhor a saída do modelo com os resultados desejados.
Outra lição significativa foi que exigir que os modelos articulassem seu raciocínio levava a um desempenho melhor nas tarefas. Esses passos intermediários não apenas informaram as decisões feitas pelos modelos, mas também poderiam servir como uma ferramenta valiosa para aqueles que trabalham na criação de links de rastreio.
Investigações Futuras
Embora tenhamos destacado alguns resultados promissores, desafios permanecem em entender totalmente como aproveitar efetivamente os LLMs para rastreabilidade automatizada. Pesquisas adicionais precisam explorar conjuntos de dados adicionais e o impacto de diferentes métodos de engenharia de prompts.
Também reconhecemos a importância de testar quão bem os LLMs se saem em conjuntos de dados completamente novos, separados dos utilizados nesta pesquisa. Explorar conhecimento em diversos tipos de projetos será fundamental pra expandir nossa compreensão.
Importância de Prompts Eficazes
No fim das contas, o sucesso de usar LLMs pra rastreabilidade automatizada de software depende muito dos prompts utilizados. Ao refinar esses prompts, podemos maximizar a utilidade dos LLMs na rastreabilidade de artefatos de software.
O objetivo não é encontrar um único prompt perfeito, mas desenvolver um conjunto de estratégias eficazes que possam ser adaptadas a diferentes contextos e aplicações. Dessa forma, pesquisadores e engenheiros podem trabalhar de forma mais eficiente na criação e uso de links de rastreabilidade.
Essa jornada contínua revela as dinâmicas promissoras, porém complexas, de usar LLMs na rastreabilidade de software. À medida que as limitações da criação de prompts forem melhor compreendidas, a aplicação dessas ferramentas em cenários práticos provavelmente se tornará mais ágil e eficiente.
Título: Prompts Matter: Insights and Strategies for Prompt Engineering in Automated Software Traceability
Resumo: Large Language Models (LLMs) have the potential to revolutionize automated traceability by overcoming the challenges faced by previous methods and introducing new possibilities. However, the optimal utilization of LLMs for automated traceability remains unclear. This paper explores the process of prompt engineering to extract link predictions from an LLM. We provide detailed insights into our approach for constructing effective prompts, offering our lessons learned. Additionally, we propose multiple strategies for leveraging LLMs to generate traceability links, improving upon previous zero-shot methods on the ranking of candidate links after prompt refinement. The primary objective of this paper is to inspire and assist future researchers and engineers by highlighting the process of constructing traceability prompts to effectively harness LLMs for advancing automatic traceability.
Autores: Alberto D. Rodriguez, Katherine R. Dearstyne, Jane Cleland-Huang
Última atualização: 2023-07-31 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2308.00229
Fonte PDF: https://arxiv.org/pdf/2308.00229
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.