Simple Science

La science de pointe expliquée simplement

# Informatique# Génie logiciel# Apprentissage automatique

Nouvel outil réduit les coûts dans la réparation automatique de programmes

Un nouvel outil réduit les dépenses dans la correction automatique des bugs tout en gardant son efficacité.

― 6 min lire


Outil de correction deOutil de correction debugs économiquela correction des bugs.des jetons et améliore l'efficacité deLe nouvel outil APR réduit les coûts
Table des matières

La réparation automatisée de programmes (APR) est une méthode de développement logiciel qui vise à corriger les Bugs automatiquement, rendant ainsi la maintenance des logiciels plus facile et moins chère. Récemment, les grands modèles de langage (LLM) ont montré des résultats prometteurs dans ce domaine. Cependant, utiliser ces modèles peut coûter cher, car les entreprises facturent souvent les utilisateurs en fonction du nombre de tokens utilisés. En gros, les tokens sont des morceaux de texte que le modèle traite.

Pour résoudre ce problème, un nouvel outil APR a été développé pour réduire le coût des réparations en utilisant moins de tokens tout en générant efficacement des patchs pour corriger les bugs. Cet outil fonctionne en deux étapes principales : d'abord, il crée un Patch probable pour le bug, puis il génère des patchs supplémentaires à partir de ce premier. L'objectif principal est d'optimiser la manière dont l'information est donnée au LLM afin de minimiser l'utilisation des tokens.

Pourquoi le coût des tokens compte

Les dépenses liées à l'utilisation des LLM proviennent du fonctionnement de ces modèles. Quand un utilisateur entre une invite, le modèle divise le texte en tokens. Chaque token traité contribue au coût total. Par exemple, si un modèle facture un montant spécifique par millier de tokens, utiliser plus de tokens entraîne des frais plus élevés. Donc, si un outil de réparation de programme automatique peut réduire le nombre de tokens nécessaires pour générer une correction de bug tout en restant efficace, il peut offrir des économies significatives aux utilisateurs.

Comment l'outil fonctionne

Le nouvel outil APR suit une approche systématique pour minimiser les Coûts. Il utilise trois méthodes principales pour garantir l'efficacité :

  1. Invite d'initiation : Cette invite prépare le terrain pour le processus de réparation en demandant au modèle des patchs potentiels. Elle inclut des exemples et des informations détaillées sur le bug.

  2. Invite d'amélioration : Si la première tentative ne donne pas un bon patch, l'outil affine les invites pour améliorer les chances de générer un patch plausible.

  3. Invite de multiplication : Une fois qu'un patch raisonnable est trouvé, cette étape vise à créer des patchs plus diversifiés à partir du premier, assurant une meilleure chance de trouver une solution correcte et efficace.

Ces étapes sont conçues pour permettre au modèle de travailler avec moins de tokens tout en restant informatif, minimisant ainsi les coûts.

Mesurer l'efficacité

Pour évaluer l'efficacité de cet outil, il a été testé sur un ensemble de données de bugs appelé Defects4J. Les expériences ont révélé que le nouvel outil était capable de générer des patchs plausibles pour un pourcentage significatif des bugs examinés. De plus, il a réussi à produire des patchs corrects pour beaucoup de ces bugs. Comparé à d'autres outils APR, la capacité de cet outil à réparer des bugs a montré une amélioration considérable.

En termes simples, l'outil a non seulement réussi à corriger de nombreux bugs efficacement, mais l'a également fait en utilisant moins de tokens, ce qui est l'objectif principal de cette recherche.

Résultats des expériences

Dans les expériences réalisées, l'outil a montré qu'il pouvait réduire les coûts en tokens de manière significative tout en maintenant un taux élevé de réparations de bugs réussies. Par exemple, en comparant les bugs réparés par cet outil et un outil concurrent, on a trouvé que le nouvel outil n'utilisait qu'une fraction des tokens. Cela signifie que les utilisateurs paieraient beaucoup moins en utilisant cet outil APR par rapport à d'autres sur le marché.

Cet aspect est particulièrement important pour les entreprises cherchant à automatiser leurs processus de maintenance logicielle. Avec les bugs logiciels étant une partie inévitable du codage, minimiser les coûts associés à leur correction est essentiel.

Détails des fonctionnalités

Demande efficace

La méthode de demande est cruciale dans l'approche de cet outil. Les demandes sont structurées pour garantir qu'elles fournissent un maximum d'information avec un minimum d'utilisation de tokens. Cet équilibre permet au modèle de travailler efficacement sans encourir des coûts supplémentaires à cause de tokens inutiles.

Techniques de demande

  1. Concision : L'outil est conçu pour poser des questions qui vont droit au but, permettant au modèle de traiter la demande sans mots en trop.

  2. Approche itérative : Si le modèle ne réussit pas du premier coup, l'outil réutilise les réponses précédentes pour guider le modèle vers une meilleure solution lors des tentatives suivantes.

  3. Maximisation de la diversité : En créant une variété de patchs, l'outil augmente ses chances de trouver un qui fonctionne et qui est aussi efficace.

Résultats des tests

L'efficacité de l'outil a été testée sur un benchmark largement accepté de bugs réels. Les résultats étaient prometteurs, avec l'outil corrigeant un plus grand nombre de bugs par rapport aux solutions existantes tout en économisant une quantité significative en coûts de tokens.

L'impact de la réduction des coûts

Cette focalisation sur la réduction des coûts bénéficie grandement aux utilisateurs, en particulier aux organisations qui dépendent fortement des logiciels. En réduisant les dépenses associées à la réparation automatisée, les entreprises peuvent consacrer des ressources à d'autres domaines de développement ou d'amélioration de leur logiciel.

Considérations environnementales

De plus, utiliser moins de tokens réduit non seulement les coûts opérationnels mais a aussi un impact positif sur l'environnement. Les LLM consomment des ressources énergétiques importantes, et réduire le nombre de tokens contribue à une empreinte carbone plus faible pour les pratiques de développement logiciel, en faisant un choix écolo.

Conclusion

L'introduction de cet outil APR économe en tokens représente un pas en avant dans les stratégies de maintenance logicielle. En réduisant efficacement les coûts liés à la correction automatique des bugs tout en maintenant des niveaux élevés de précision, il fournit une solution pratique pour les entreprises. Cela est particulièrement important dans un monde qui valorise de plus en plus l'efficacité et la durabilité.

En résumé, l'outil montre qu'il est possible d'innover dans le domaine de la réparation automatisée de programmes, entraînant à la fois des bénéfices économiques et des avancées dans les pratiques d'ingénierie logicielle. En se concentrant sur la minimisation de l'utilisation des tokens tout en maximisant l'efficacité, il établit une nouvelle norme pour les futurs développements d'outils APR.

Source originale

Titre: CigaR: Cost-efficient Program Repair with LLMs

Résumé: Large language models (LLM) have proven to be effective at automated program repair (APR). However, using LLMs can be costly, with companies invoicing users by the number of tokens. In this paper, we propose CigaR, the first LLM-based APR tool that focuses on minimizing the repair cost. CigaR works in two major steps: generating a first plausible patch and multiplying plausible patches. CigaR optimizes the prompts and the prompt setting to maximize the information given to LLMs using the smallest possible number of tokens. Our experiments on 429 bugs from the widely used Defects4J and HumanEval-Java datasets shows that CigaR reduces the token cost by 73%. On average, CigaR spends 127k tokens per bug while the baseline uses 467k tokens per bug. On the subset of bugs that are fixed by both, CigaR spends 20k per bug while the baseline uses 608k tokens, a cost saving of 96%. Our extensive experiments show that CigaR is a cost-effective LLM-based program repair tool that uses a low number of tokens to automatically generate patches.

Auteurs: Dávid Hidvégi, Khashayar Etemadi, Sofia Bobadilla, Martin Monperrus

Dernière mise à jour: 2024-04-18 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2402.06598

Source PDF: https://arxiv.org/pdf/2402.06598

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

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires