Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Ingegneria del software

Migliorare la tracciabilità automatizzata del software con gli LLM

Questo articolo parla di come usare i prompt per migliorare la tracciabilità del software con modelli di linguaggio ampi.

― 8 leggere min


Massimizzare gli LLM perMassimizzare gli LLM perla tracciabilitàusando gli LLM.tracciabilità degli artefatti softwareRaffinare i prompt migliora la
Indice

La tracciabilità automatizzata del software è la pratica di monitorare e collegare diversi pezzi di artefatti software per garantire la loro relazione e responsabilità. Con l'avanzare della tecnologia, strumenti come i modelli di linguaggio di grandi dimensioni (LLM) si sono dimostrati promettenti nel migliorare questo processo. Questo articolo esamina il ruolo dei "prompt", o istruzioni date a questi modelli, nel migliorare la tracciabilità automatizzata del software.

La Sfida della Tracciabilità del Software

Negli ultimi vent'anni, le sfide per automatizzare la tracciabilità sono state messe in evidenza più volte. Sono state proposte molte metodologie, ma un approccio consistente e preciso è stato difficile da trovare. Fattori come i termini tecnici complessi, la scarsità di dati per l'addestramento e la scarsa interpretabilità hanno causato problemi. Anche se avanzamenti come il modello BERT di Google nel 2018 hanno fatto progressi, molti problemi sono rimasti.

Ora, gli LLM come GPT-3 e Claude offrono nuove opportunità per automatizzare la tracciabilità. Tuttavia, non è chiaro come utilizzare al meglio questi modelli per questo scopo. L'obiettivo principale nell'uso degli LLM è perfezionare il processo di creazione di prompt che generino collegamenti di tracciabilità efficaci.

Esplorare i Prompt per la Tracciabilità

All'inizio della nostra ricerca, volevamo trovare il prompt perfetto da usare per la tracciabilità automatizzata. Speravamo che questo prompt identificasse costantemente i veri collegamenti in vari progetti. Abbiamo scoperto che, mentre un metodo di prompting funzionava bene per alcuni casi, quello ottimale variava spesso a seconda delle risorse disponibili, del modello utilizzato e del compito specifico.

Diversi LLM hanno i loro punti di forza e di debolezza, il che significa che potrebbero rispondere in modo diverso agli stessi prompt. Inoltre, numerose versioni dello stesso modello possono avere performance variabili, creando ulteriore complessità.

Imparare dall'Esperienza

Mentre ci impegnavamo a creare i nostri prompt, abbiamo incontrato diverse sfide e volevamo condividere queste difficoltà con altri nel campo. Invece di presentare semplicemente i nostri migliori risultati, abbiamo cercato di educare e ispirare altri che potrebbero aver bisogno di creare prompt adatti per le loro esigenze.

Abbiamo cercato di rispondere ad alcune domande importanti riguardo agli LLM e alla loro efficacia in progetti con vocabolario tecnico. Volevamo anche determinare se questi modelli potessero fornire spiegazioni ragionevoli per le loro decisioni e se tali spiegazioni potessero portare a prompt migliori.

Analizzare Datasets e Lavori Correlati

Per studiare l'efficacia degli LLM nella tracciabilità automatizzata, abbiamo utilizzato tre diversi dataset di ingegneria del software: CM1, iTrust e Dronology. Ogni dataset rappresentava domini e tipi distinti di artefatti software, inclusi elementi di linguaggio naturale e di programmazione.

Negli ultimi decenni, i ricercatori hanno esaminato diversi metodi di tracciabilità automatizzata. Tecniche classiche di elaborazione del linguaggio naturale hanno posto le basi, ma i metodi di deep learning hanno guadagnato importanza attorno al 2010. Man mano che i modelli crescevano in dimensione e complessità, specialmente con le architetture transformer, si sono presentate nuove opportunità che in precedenza sembravano fuori portata.

Tuttavia, sono state condotte poche ricerche sul potenziale specifico degli LLM nella tracciabilità automatizzata. Il nostro lavoro mirava a colmare questa lacuna indagando su come questi modelli potessero fare previsioni sui collegamenti di tracciamento tra artefatti software.

Impostazione dell'Esperimento

Per i nostri esperimenti, abbiamo prima scelto un sottoinsieme di dati più piccolo dai nostri dataset. Questo ci ha aiutato a concentrare il nostro focus e a svolgere un'analisi più approfondita, riducendo costi e tempo di esecuzione. Abbiamo calcolato varie metriche, incluso il numero di artefatti figlio legati a quelli padre, cercando di creare un insieme rappresentativo di query di tracciamento.

Prima di utilizzare modelli come Claude, abbiamo testato il text-davinci-003 di OpenAI per prevedere i collegamenti di tracciamento. Questo modello ha avuto performance comparabili, anche se alla fine abbiamo scelto Claude per la sua maggiore velocità e costi più bassi. Abbiamo anche esaminato l'idea di usare embeddings per calcolare la similarità tra artefatti, ma questo metodo non ha portato vantaggi significativi, portandoci a concentrarci invece sulle capacità generative.

Per prepararci al nostro approccio di Classificazione, abbiamo chiesto al modello riguardo ciascuna coppia di artefatti sorgente e target. Abbiamo formulato domande per ottenere risposte 'sì' o 'no' riguardo se fossero collegati.

Sviluppo del Prompt di Classificazione

Il nostro primo prompt era abbastanza generale: "È (1) collegato a (2)? Rispondi 'sì' o 'no'." Anche se questo produceva risultati, spesso mancava collegamenti reali. Nel nostro sforzo di comprendere il ragionamento del modello, abbiamo esplorato varie modifiche. Ad esempio, abbiamo scoperto che ignorare i diversi livelli di dettaglio negli artefatti poteva migliorare le previsioni.

Man mano che affinavamo i nostri prompt, scoprivamo che dichiarare chiaramente il contesto aiutava il modello a capire le relazioni tra gli artefatti. Chiarendo che entrambi gli artefatti provenivano dallo stesso sistema software, il modello migliorava la sua capacità di identificare collegamenti. Tuttavia, questo aggiustamento portava anche a molti falsi positivi, indicando che, mentre il modello sembrava trovare connessioni, spesso giudicava male quando gli artefatti non erano realmente legati.

Ulteriori aggiustamenti hanno coinvolto chiedere al modello di concentrarsi su se un artefatto potesse essere decomposto da un altro, ma anche questo approccio diventava troppo restrittivo. Alla fine, ci siamo stabiliti su un prompt che chiedeva se il secondo artefatto soddisfacesse il primo.

Istruzione e Ragionamento

Nel nostro viaggio per affinare i prompt, ci siamo resi conto che aggiungere un passaggio di ragionamento poteva migliorare i risultati. Chiedendo al modello di articolare il suo processo di pensiero prima di dare una risposta finale, abbiamo assistito a un aumento sia della precisione che del richiamo. Il modello era meglio in grado di spiegare il suo ragionamento, aiutando a migliorare il suo giudizio finale nel determinare il collegamento di tracciabilità.

Questo processo ci ha permesso di includere più informazioni in ogni prompt, fornendo infine un contesto maggiore riguardo le relazioni che stavamo cercando di stabilire.

Approccio di Classifica

Insieme alla classificazione, abbiamo esplorato l'uso di un approccio di ranking per prevedere i collegamenti di tracciamento. Il ranking consente un'espressione più sfumata di fiducia nelle previsioni, permettendo al modello di fornire un elenco prioritario di candidati.

Per condurre questo ranking, abbiamo istruito il modello a elencare artefatti correlati dal più al meno correlato a una sorgente. Tuttavia, abbiamo anche riconosciuto che l'ordine in cui gli artefatti erano presentati contava significativamente. Quando gli artefatti erano ordinati casualmente, le performance del modello scendevano a livelli quasi casuali. Ordinando in anticipo in base ai punteggi di similarità, potevamo migliorare i nostri risultati.

Mentre scoprivamo che il ranking può essere efficace, richiedeva anche una grande finestra di contesto. Pertanto, abbiamo continuato a esaminare la classificazione come alternativa praticabile.

Lezioni dalla Ricerca

I nostri risultati indicavano che l'ingegneria dei prompt gioca un ruolo cruciale nel massimizzare il potenziale degli LLM per compiti di tracciabilità. Cambiamenti minori possono portare a cambiamenti drammatici nell'output. Pertanto, il nostro approccio alla creazione di prompt necessitava di attenta riflessione e considerazione.

Un tema costante era che gli LLM potrebbero identificare le relazioni tra artefatti in modo diverso dai tracer umani. Specificando l'uso previsto dei collegamenti di tracciabilità, potevamo allineare meglio l'output del modello con i risultati desiderati.

Un'altra considerazione significativa era che richiedere ai modelli di articolare il loro ragionamento portava a performance migliorate nei compiti. Questi passaggi intermedi non solo informavano le decisioni prese dai modelli, ma potevano anche servire come strumento prezioso per chi lavora per stabilire collegamenti di tracciabilità.

Future Investigazioni

Anche se abbiamo evidenziato alcuni risultati promettenti, ci sono ancora sfide nel comprendere appieno come sfruttare efficacemente gli LLM per la tracciabilità automatizzata. Ulteriori ricerche devono esplorare dataset aggiuntivi e l'impatto di diversi metodi di ingegneria dei prompt.

Abbiamo anche riconosciuto l'importanza di testare quanto bene gli LLM si comportano su dataset completamente nuovi, separati da quelli utilizzati in questa ricerca. Esplorare la conoscenza attraverso vari tipi di progetto sarà fondamentale per ampliare la nostra comprensione.

Importanza di Prompt Efficaci

In definitiva, il successo dell'uso degli LLM per la tracciabilità automatizzata del software dipende fortemente dai prompt utilizzati. Affinando questi prompt, possiamo massimizzare l'utilità degli LLM nella tracciatura degli artefatti software.

L'obiettivo non è trovare un singolo prompt perfetto, ma sviluppare un insieme di strategie efficaci che possano essere adattate a diversi contesti e applicazioni. In questo modo, i ricercatori e gli ingegneri possono lavorare in modo più efficace nell'istituire e utilizzare i collegamenti di tracciabilità.

Questo viaggio in corso rivela le dinamiche promettenti ma complesse dell'impiego degli LLM nella tracciabilità del software. Man mano che i vincoli nella creazione dei prompt vengono compresi meglio, l'applicazione di questi strumenti in scenari pratici diventerà probabilmente più fluida ed efficiente.

Fonte originale

Titolo: Prompts Matter: Insights and Strategies for Prompt Engineering in Automated Software Traceability

Estratto: 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.

Autori: Alberto D. Rodriguez, Katherine R. Dearstyne, Jane Cleland-Huang

Ultimo aggiornamento: 2023-07-31 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2308.00229

Fonte PDF: https://arxiv.org/pdf/2308.00229

Licenza: https://creativecommons.org/licenses/by/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili