CodeWhisperer vs GitHub Copilot : cap sur les codebases internes

CodeWhisperer GitHub Copilot codebases internes

AWS promet une édition Enterprise de CodeWhisperer permettant la connexion de dépôts internes. GitHub travaille aussi sur le sujet.

À quand un assistant de codage capable de contextualiser ses recommandations en fonction d’une codebase interne ? AWS vient d’émettre une forme de déclaration d’intention à ce sujet : l’édition Enterprise de CodeWhisperer inclura une telle fonctionnalité.

Le groupe américain ne répond pas à la question du « quand ». Pour le moment, il invite les utilisateurs intéressés à se signaler en prévision du lancement d’une phase expérimentale.

Des tests ont déjà été conduits dans certaines entreprises. AWS en mentionne une : Persistent Systems, groupe indien de services et conseil en informatique. Les développeurs utilisant CodeWhisperer ont, en moyenne, bouclé leurs tâches « 28 % plus vite » grâce à cette nouvelle option, nous affirme-t-on.

À ce stade, on nous en dit peu sur le socle technique. La promesse, dans les grandes lignes : connectez les ressources internes que vous souhaitez, planifiez des tâches pour créer les personnalisations, puis gérez-les et distribuez-les aux devs à partir de la console AWS.

GitHub expérimente aussi pour Copilot

GitHub travaille également sur ce volet, dans le cadre d’un projet dénommé Copilot View.

Le défi est identifié : trouver un équilibre entre pertinence (quelles ressources sont pertinentes vis-à-vis de la tâche en cours ?) et performance (comment ne pas ajouter trop de latence ?).

La réponse, elle, n’est pas fixée. GitHub laisse plusieurs pistes ouvertes. En particulier entre l’approche REALM et celle de kNN-LM. La première consiste, sur le principe du RAG, à intégrer les informations pertinentes dans les requêtes faites à Copilot. La seconde ne fait intervenir ces informations que par après, pour influencer la probabilité de générer tel ou tel résultat.

Le recours à un index vectoriel ne fait en revanche pas de doute. GitHub a identifié plusieurs bibliothèques qu’il juge performantes pour la recherche par la méthode des plus proches voisins. Nommément, SPANN, FAISS et ScaNN.

Pour ce qui est de la vectorisation même, GitHub n’a pas encore tranché entre le recours à un modèle externe ou à l’intégration de capacités d’embedding dans Copilot. Il hésite sur d’autres points comme la localisation de l’index (côté serveur ou client ?).

À consulter en complément :

Bases de données : la bataille de la recherche vectorielle
Ce que les devs utilisent… et ce qu’ils plébiscitent
GitHub Copilot produit-il du code sécurisé ?
Bard, ChatGPT et leurs limites de raisonnement

Illustration ©