Cet article fait partie de notre guide: Les annonces clés d’AWS re:Invent 2023

Génération de code : MongoDB choisit Amazon CodeWhisperer

Considérant que les assistants de génération de code ne proposent pas des performances suffisantes pour les développeurs habitués à sa base de données, MongoDB s’associe à AWS pour parfaire Amazon CodeWhisperer.

L’éditeur profite de son événement parisien MongoDB.local Paris pour annoncer un partenariat avec AWS. Cette fois-ci, il n’est pas réellement question de cloud, mais d’assistance à la création de code et d’application s’appuyant sur MongoDB.

Pour rappel, AWS a entraîné l’assistant CodeWhisperer à l’aide de données propriétaires et de portions de code open source disponible depuis les dépôts Git accessible depuis le Web.

CodeWhisperer peut être connecté aux IDE VS Code, Intellij IDEA, PyCharm, AWS Cloud9 et à la console AWS Lamda. Il prend en charge les langages de programmation Java, Python, JavaScript, TypeScript et C#.

Selon MongoDB, certains de ses clients utilisaient déjà le concurrent de GitHub Copilot en corrélation avec sa base de données ou sa plateforme Atlas.

Pour autant, les résultats et les suggestions pouvaient être meilleurs aux yeux de l’éditeur.

« Nous travaillons avec AWS pour entraîner le modèle sous-jacent de CodeWhisperer avec des librairies et des échantillons de code MongoDB », affirme Frédéric Favelin, responsable mondial des partenariats cloud et des solutions architects chez MongoDB. « Nous voulons aider les développeurs à supprimer les frictions qui peuvent se produire lorsqu’ils font appel à un outil d’assistance au code ».

Accélérer le développement d’applications reposant sur MongoDB

La collaboration entre les deux acteurs doit permettre aux développeurs de rédiger plus rapidement des agrégations de données, de simplifier les opérations de la base de données et d’accélérer « la migration d’applications » en lien avec MongoDB. CodeWhisperer serait désormais à même de suggérer des portions de code plus pertinentes pour les applications écrites en C#, Java, Go, JavaScript et en Python.

Gratuit pour les développeurs individuels et disponible à partir de 19 dollars par utilisateur par mois pour les entreprises, l’assistant s’installe comme une extension d’un IDE et réclame un identifiant AWS Builder.

Plus précisément, il s’agit d’assister l’écriture de requêtes spécifiques, l’interrogation de la base de données, la mise à jour de champs à partir d’éléments en langage naturel précisés dans les commentaires du code. L’objectif est d’accélérer la réalisation des tâches les plus simples et répétitives.

« Un avantage de CodeWhisperer est qu’il propose des résolutions pour des vulnérabilités difficiles à trouver », note Frédéric Favelin. Tout comme il possède un système de suivi des références. Si le code suggéré ou généré existe déjà, il en indiquera la source, d’après AWS.

MongoDB a assisté les équipes responsables du développement de CodeWhisperer pour fournir des règles, des « bonnes pratiques » liées au développement de ces applications.

« C’est un processus en plusieurs étapes. Nous avons également participé au fine-tuning des modèles afin que les résultats soient à la hauteur. Cela ne s’arrête pas là. Nous adoptons une approche d’apprentissage continu dans le but d’améliorer les performances du modèle et d’apporter de nouvelles fonctionnalités », assure Frédéric Favelin.

Un effort plus conséquent qu’il n’y paraît

L’annonce pose plusieurs interrogations. Pourquoi MongoDB ne développe-t-il pas son propre assistant ? Pourquoi a-t-il choisi CodeWhisperer plutôt qu’un autre outil ?

Selon Frédéric Favelin, c’est une question d’expertise. « Nous avons fourni des éléments réellement spécifiques aux équipes de CodeWhisperer », renchérit le responsable.

« Comme nous nous appuyons sur le modèle de fondation de CodeWhisperer, l’entraînement est long. Cela ne se fait pas en quinze jours », poursuit-il.

Alors pourquoi AWS ? Pourquoi ne pas s’associer au leader du marché, GitHub, dont l’offre Copilot Business a déjà attiré 37 000 organisations ?

« Nous avons une relation durable avec AWS depuis 2016. C’est quelque chose de naturel. C’est un engagement gagnant-gagnant », considère Frédéric Favelin.

Et au vu du travail que cela réclame, MongoDB ne risque pas d’effectuer exactement le même partenariat de sitôt avec GitHub et Microsoft, selon le responsable.

« Si demain nous voulons travailler avec un autre fournisseur d’un assistant de génération de code, cela demande que l’équipe MongoDB participe à l’entraînement d’un LLM possiblement très différent. Chaque modèle apporte ses propres spécificités », déclare Frédéric Favelin.

 Microsoft et GitHub proposeraient de fine-tuner un modèle existant, et non de le réentraîner, selon lui. « Microsoft s’appuie énormément sur OpenAI et les modèles GPT. Ceux-là exploitent des données disponibles depuis le projet CommonCrawl », indique-t-il.

Pour rappel, CommonCrawl est un projet visant à sauvegarder des archives de données en provenance du Web, dont les dépôts de code public et la documentation accessibles publiquement. Ces snapshots sont populaires pour former des modèles d’IA générative. Du fait de ses origines open source, MongoDB bénéficie d’un large soutien communautaire, ce qui sous-entend que de larges portions de code concernant le SGBD NoSQL sont disponibles sur le Web. Or un tel entraînement, « demande d’exploiter des téraoctets de données inconnues du modèle sous-jacent et le coût de cette tâche n’a rien d’anodin », renseigne Frédéric Favelin.

 MongoDB est l’un des premiers à effectuer une alliance de la sorte. Pour l’heure, les autres éditeurs de bases de données se sont focalisés sur l’apport d’un assistant pour simplifier l’orchestration de leur DBaaS ou pour mieux rédiger des requêtes.

Il faut dire que MongoDB se présente comme le fournisseur d’une « developer data platform », un SGBD multimodèle qui doit éviter « d’utiliser six à sept bases de données pour une seule application ». Ainsi, l’éditeur préfère se concentrer sur sa plateforme MongoDB Atlas. Il propose Vector Search, un service de recherche vectorielle qui permet à ses clients de s’appuyer sur MongoDB pour stocker des représentations vectorielles de leurs données, envoyées en guise de contexte à de grands modèles de langage. « L’assistance à la création de code et l’exploitation de l’IA générative dans des applications sont deux axes qui se développent en parallèle », affirme Frédéric Favelin.

L’éditeur a également profité de MongoDB.local Paris afin d’annoncer une offre verticalisée pour le retail. Il souhaite, entre autres, aider ses clients à améliorer l’expérience des consommateurs grâce à l’IA. Outre la génération de contenu, MongoDB mentionne l’optimisation de la supply chain et, plus particulièrement, des livraisons.

Pour approfondir sur Outils de développement

Close