Patrick Daxenbichler - Fotolia

CodeWhisperer : comment AWS anticipe les problèmes de droit et de sécurité

Tout comme Copilot et FauxPilot, Amazon CodeWhisperer promet d’accélérer la production des développeurs grâce à l’IA. Or l’entraînement d’un tel système sur des données publiques peut poser des problèmes de droit d’auteur et de sécurité. AWS prétend avoir pris les mesures nécessaires pour éviter ce genre de désagréments.

Lors de sa conférence annuelle re:invent 2022, AWS a présenté pour la deuxième fois Amazon CodeWhisperer.

Lancé en juin, cet assistant de développement propulsé par le deep learning peut effectuer des recommandations concernant un programme existant ou générer jusqu’à 30 nouvelles lignes de code à partir d’un commentaire en langage naturel.

Dans le cadre de son événement, AWS a présenté les améliorations apportées à ce service désormais accessible à tous, et ce gratuitement le temps de la préversion. D’abord, le fournisseur cloud l’a associé à AWS Builder ID. Ce service fournit un identifiant permettant aux développeurs, aux étudiants ou tout utilisateur d’obtenir un identifiant lié à leur adresse email personnelle. En principe, ils conservent un accès aux outils de développement AWS tels CodeCatalyst et CodeWhisperer même s’ils quittent leur employeur ou leur organisation.

Pour les besoins des entreprises, CodeWhisperer a été ajouté à l’AWS Management Console. De la sorte, les administrateurs cloud d’une entreprise peuvent l’activer pour tout ou partie de leur organisation.

D’un point de vue technique, l’assistant prend dorénavant en charge les langages de programmation TypeScript et C#, en sus de Python, Java et JavaScript. L’assistant peut être intégré dans plusieurs IDE populaires, dont Intellij, PyCharm, Visual Studio Code, Cloud9 ou encore WebStorm.

AWS oblige, CodeWhisperer peut aussi faire des recommandations pour programmer des applications s’appuyant sur les services Lambda, Amazon S3 et Elastic Compute (EC2).

Bien que CodeWhisperer soit toujours en préversion, auprès de SearchSotfwareQuality [propriété de Techtarget, également propriétaire du MagIT], Kashyap Kompella, analyste chez RPA2AI Research s’est dit convaincu que ce type d’assistant peut aider à augmenter la productivité des développeurs. Ces outils pourraient aussi rendre accessible la programmation à un plus grand nombre de rôles, dont des métiers « non techniques ou semi-techniques ».

Mais l’analyste pointe rapidement du doigt une difficulté pouvant freiner les ambitions d’AWS.

« CodeWhisperer devrait rencontrer les mêmes difficultés que Github CoPilot, et la question controversée de l’utilisation du code source ouvert comme données d’entraînement pour les modèles d’apprentissage automatique sous-jacents doit être résolue », avance-t-il.

En l’occurrence, les dépôts publics peuvent non seulement contenir du code open source, dont il faut généralement attribuer la source, mais aussi du code propriétaire.

GitHub CoPilot a déjà fait l’objet de plaintes collectives aux États-Unis pour cette même raison. Jusqu’à présent, OpenAI, l’entreprise qui propulse ce service, s’est référé à l’avis de l’United States Patent and Trademark Office (USPTO). L’équivalent de l’INPI en France considère qu’en vertu du « droit actuel, l’entraînement de systèmes d’IA constitue un usage loyal » des tronçons de code disponibles publiquement, même s’ils contiennent des éléments propriétaires. Cet avis consultatif ne lève pas « l’incertitude juridique sur les implications en matière de droits d’auteur » associés aux données utilisées pour entraîner les modèles. Il n’y a pas encore de loi ou de jugement rendu concernant la propriété du code utilisé pour entraîner un modèle ou celle du code généré.

En la matière, Vasanth « Vasi » Philomin, vice-président et directeur général Machine Learning & IA chez AWS, considère auprès du MagIT que lui et ses équipes ont pris les bonnes mesures pour se prémunir de ce genre de désagrément.

Amazon CodeWhisperer doit faciliter l’attribution du code source

Le responsable joue ainsi la carte de la transparence concernant la provenance des jeux de données d’entraînement de CodeWhisperer. « CodeWhisperer a été entraîné à l’aide de milliards de lignes de code en provenance de dépôt public qui mentionne explicitement les licences correspondantes », assure-t-il. « Et il a aussi été formé sur du code propriétaire interne d’Amazon ainsi que sur des bouts de code que vous pouvez obtenir sur des forums Web [de type StackOverFlow N.D.L.R] ».

« Qu’il soit généré ou modifié avec notre outil, le code appartient aux développeurs et ils le contrôlent. Nous fournissons juste un outil pour les aider. »
Vasi PhilominV-P et directeur général Machine Learning & IA, AWS

Une deuxième question se pose rapidement : à qui appartient le code généré ?

« Qu’il soit généré ou modifié avec notre outil, le code appartient aux développeurs et ils le contrôlent », répond sans hésitation Vasi Philomin. « Nous fournissons juste un outil pour les aider ». L’équipe derrière CodeWhisperer aurait imposé cette approche avant même de commencer à développer l’assistant.

Ainsi, CodeWhisperer doit principalement générer du « nouveau code ». Toutefois, « il arrive de temps en temps qu’il produise quelque chose de similaire à ce qu’il a vu ailleurs », admet Vasi Philomin.

« Quand l’assistant fait cela, nous enclenchons automatiquement une fonctionnalité embarquée appelée Reference Tracker », ajoute-t-il. Ce traqueur de références « observe » les chemins d’attribution du code source pour signaler quand il faut mentionner la licence et l’auteur qui a inspiré la création du code généré. « Ensuite, le développeur peut décider, en fonction de la politique de son entreprise ou de son éthique, s’il veut utiliser le bout de code proposé par CodeWhisperer », explique le directeur général.

Les développeurs face à leurs responsabilités

Cette attribution du code à la bonne licence ou au(x) bon(s) propriétaire(s) n’est pas automatique.

« Le Reference Tracker est un outil intégré qui permet de voir toutes les références. Il est possible de cliquer sur chacune d’entre elles et ainsi savoir quelle partie du code généré fait référence à une licence spécifique », poursuit Vasi Philomin.

C’est ensuite au développeur de commenter son travail pour assurer la bonne attribution du code source. « C’est le travail du développeur, mais nous l’aidons à identifier les sources », assure le responsable.

Autre problème majeur, les jeux d’entraînement utilisés par AWS peuvent contenir des bugs, des failles ou des vulnérabilités qu’un réseau de neurones – ici un grand modèle de langage (Large Language Model) – s’empressera de reproduire. Nettoyer à la main de tels volumes de données semble peine perdue.

« L’un des plus gros différenciateurs de CodeWhisperer tient dans notre approche de l’IA responsable », assure Vasi Philomin. « Sous le capot, nous utilisons un LLM maison, et ceux-là ne sont généralement pas responsables ».

« Nous avons la capacité de savoir quel genre de choses provoquent les failles de sécurité. Et donc le scan permet au développeur de les trouver et ensuite, vous pouvez réellement agir pour y remédier. »
Vasi PhilominV-P et directeur général Machine Learning & IA, AWS

Conscient que 40 % du code généré par d’autres outils similaires contient des failles, AWS a intégré un scan de vulnérabilités dans CodeWhisperer. « Une fois que vous avez accepté le code, que vous l’avez modifié ou que vous avez écrit votre propre code, vous pouvez simplement cliquer sur le bouton “scan for security flaw” ».

« Nous avons la capacité de savoir quel genre de choses provoquent les failles de sécurité. Et donc le scan permet au développeur de trouver les failles de sécurité et ensuite, vous pouvez réellement agir pour y remédier », vante Vasi Philomin.

« Lorsque nous trouvons des bugs et d’autres choses, nous faisons une correction d’erreur. C’est un processus où nous en parlons avec tous les développeurs d’Amazon pour que les erreurs soient bien comprises », relate le responsable. « Nous avons récolté beaucoup de données de ce genre au cours des nombreuses années où nous avons écrit du code, et nous avons donc incorporé tout cela dans notre modèle de machine learning. Le scan applique ces règles et vous indique vos failles de sécurité potentielles ».

Enfin, AWS filtrerait les éléments toxiques, les iniquités ou encore les biais contre « certains groupes ». « Nous ne montrons même pas les options quand nous sentons que quelque chose est potentiellement biaisé ou toxique », avance le directeur général Machine Learning & IA chez AWS.

En clair, CodeWhisperer doit rester un assistant. Beaucoup d’éléments de responsabilité reposent encore sur les épaules du développeur. Reste à savoir si l’ensemble de ces garde-fous suffiront à éviter les problèmes éthiques, de droit et de sécurité. Les outils tels Copilot, FauxPilot, ChatGPT ou encore CodeWhisperer – bien que surprenants – demeurent immatures.

Pour approfondir sur Outils de développement

Close