IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Avec les suggestions basées sur l'IA, l'auteur du code devient de plus en plus un réviseur :
Progrès de l'assistance à l'ingénierie logicielle basée sur l'IA chez Google et projections pour l'avenir

Le , par Jade Emy

267PARTAGES

4  0 
Présentation des progrès de l'assistance basée sur l'IA pour l'ingénierie logicielle dans l'outillage interne de Google et ses projections pour l'avenir.

En 2019, un ingénieur logiciel - chez Google ou ailleurs - aura entendu parler des progrès de l'apprentissage automatique et de la façon dont l'apprentissage profond est devenu remarquablement efficace dans des domaines tels que la vision par ordinateur ou la traduction des langues. Cependant, la plupart d'entre eux n'auraient pas imaginé, et encore moins expérimenté, la manière dont l'apprentissage automatique pourrait bénéficier à leur travail.

Cinq ans plus tard, en 2024, les ingénieurs en informatique font preuve d'un enthousiasme généralisé quant à la manière dont l'IA les aide à écrire du code. Et un grand nombre d'entre eux ont utilisé l'autocomplétion basée sur l'apprentissage automatique, que ce soit à l'aide d'outils internes aux grandes entreprises, par exemple la complétion de code interne de Google, ou par le biais de produits disponibles dans le commerce.

Google présente ses dernières améliorations basées sur l'IA dans le contexte de la transformation continue des outils de développement logiciel internes de Google, et discute des changements prévus dans les cinq années à venir. Ils présentent également leur méthodologie sur la façon de construire des produits d'IA qui apportent de la valeur au développement de logiciels professionnels.

Ses équipes sont responsables des environnements de développement logiciel dans lesquels les ingénieurs de Google passent la majeure partie de leur temps, y compris la boucle interne (par exemple, l'IDE, la révision du code, la recherche de code), ainsi que les surfaces de la boucle externe (par exemple, la gestion des bogues, la planification). Google montre que les améliorations apportées à ces surfaces peuvent avoir un impact direct sur la productivité et la satisfaction des développeurs, deux paramètres qu'ils suivent de près.


Le défi

Un défi permanent dans ce domaine est que la technologie de l'IA évolue rapidement et qu'il est difficile de prévoir quelles idées explorer en premier. Il existe souvent un écart important entre les démonstrations techniquement réalisables et la production réussie. Google aborde le déploiement des idées vers les produits en suivant trois lignes directrices :

  1. Établir des priorités en fonction de la faisabilité technique et de l'impact : Travailler sur des idées dont la faisabilité technique a déjà été établie et dont on attend un impact élevé (mesurable) sur les flux de travail des ingénieurs.
  2. Apprendre rapidement pour améliorer l'interface utilisateur et la qualité du modèle : Concentrez-vous sur l'itération rapide et l'extraction des leçons apprises, tout en préservant la productivité et la satisfaction des développeurs. L'expérience utilisateur est tout aussi importante que la qualité du modèle.
  3. Mesurer l'efficacité : l'objectif étant d'accroître la productivité et la satisfaction, Google veut surveiller ces paramètres de manière approfondie.


Application des LLM au développement de logiciels

Avec l'avènement des architectures de transformateurs, Google a commencé à explorer la manière d'appliquer les LLM au développement de logiciels. La complétion de code en ligne basée sur les LLM est l'application la plus populaire de l'IA appliquée au développement logiciel : c'est une application naturelle de la technologie LLM d'utiliser le code lui-même comme données d'entraînement.

L'interface utilisateur semble naturelle pour les développeurs puisque la complétion automatique au niveau des mots est une fonctionnalité essentielle des IDE depuis de nombreuses années. Il est également possible d'utiliser une mesure approximative de l'impact, par exemple le pourcentage de nouveaux caractères écrits par l'IA. Pour ces raisons et d'autres encore, il était logique que cette application des LLM soit la première à être déployée.

Google a déployé des efforts pour améliorer l'expérience de l'utilisateur grâce à la complétion de code. Actuellement, ils ont constaté une croissance rapide et continue similaire à d'autres contextes d'entreprise, avec un taux d'acceptation par les ingénieurs logiciels de 37% aidant à la complétion de 50% des caractères de code. En d'autres termes, le même nombre de caractères du code sont désormais complétés avec l'aide de l'IA que ceux tapés manuellement par les développeurs. Bien que les développeurs doivent encore passer du temps à examiner les suggestions, ils ont plus de temps pour se concentrer sur la conception du code.


Les principales améliorations proviennent à la fois des modèles (des modèles plus grands avec des capacités de codage améliorées, des heuristiques pour construire le contexte fourni au modèle, ainsi que l'ajustement des modèles sur les journaux d'utilisation contenant les acceptations, les rejets et les corrections) et de l'expérience utilisateur. Ce cycle est essentiel pour apprendre à partir d'un comportement pratique, plutôt que de formulations synthétiques.

Google utilise les journaux étendus et de haute qualité des activités internes d'ingénierie logicielle à travers de multiples outils, conservés pendant de nombreuses années. Ces données, par exemple, permettent de représenter des modifications de code très fines, des résultats de construction, des modifications...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !