X
Clever-Commit
Thierry Thaureaux / mercredi 5 juin 2019 / Thèmes: Dossier, Dev

Clever-Commit

Identifier les bugs et régressions du code grâce à l’IA

Ubisoft, l’éditeur français mais néanmoins géant du jeu vidéo, et Mozilla, éditeur de Firefox, ont signé en février dernier un partenariat pour l’utilisation conjointe et l’amélioration commune de Clever-Commit, l’assistant au développement d’Ubisoft.

Ubisoft La Forge : le laboratoire des savants fous de l’Intelligence artificielle.

La Forge, le labo d’Ubisoft

Clever-Commit a été développé dans le lab La Forge d’Ubisoft Montréal. Cet outil contribue déjà au développement d’importants titres AAA de l’éditeur français en aidant les développeurs à détecter et corriger les bugs. Rappelons que les titres AAA représentent des jeux dont le développement est long et surtout complexe. Ils représentent les produits phares de l’éditeur.

Clever-Commit utilise à cette fin des techniques de machine learning en vue d’identifier d’éventuels bugs et régressions futurs. Il se base pour cela sur les erreurs précédemment rencontrées et s’appuie sur du Deep Learning pour suggérer des corrections aux développeurs. Mozilla, grâce à ce partenariat, va pouvoir l’implémenter dans le processus de développement de votre navigateur préféré, ou non, Firefox. La fondation va travailler à son amélioration pour les langages C++, Javascript et Rust, un langage récemment créé par Mozilla. Clever-Commit analyse le code de chaque contribution (livraison de code par un développeur) au référentiel central (dépôt de code) dans le but de détecter des bugs ou des régressions présents et surtout à venir. C’est Yves Jacquier, le directeur d’Ubisoft La Forge, qui a fait l’annonce de cette collaboration lors du D.I.C.E. Summit 2019.

Ubisoft La Forge a initié ce projet avec l’Université Concordia. La Forge est en quelque sorte un laboratoire de prototypage, un cabinet d’études R & D au sein d’Ubisoft Montréal. En résumé, Clever-Commit est une technologie d’Intelligence artificielle développée dans le but d’aider les programmeurs à évaluer si une modification du code peut provoquer de nouveaux bugs ne serait-ce que par « effet de bord ».

 

Prédiction des bugs avec Clever-Commit

Clever-Commit s’appelle ainsi simplement parce qu’il est capable, grâce à l’IA, d’identifier les bugs lors du « commit », la phase au cours de laquelle un développeur publie son code pour l’ensemble de l’équipe. Il est « intelligent » au moment du commit. L’assistant propose aussi des corrections ou améliorations du code. C’est l’étude du code des développements passés qui apprend à l’IA à mieux identifier les bugs – encore le Deep Learning. Et, de fil en aiguille, de bug en bug plutôt, l’outil apprend et se perfectionne. Chez Ubisoft et les autres éditeurs de jeux complexes, à coder, pas forcément à jouer, heureusement, la conception de jeux vidéo requiert un grand nombre de développeurs. L’objectif est, bien évidemment, de gagner du temps dans ce processus complexe et d’améliorer la qualité des logiciels. Cet assistant sera désormais utilisé par les développeurs de Firefox. « Mozilla va commencer par utiliser l’outil à l’étape de la révision du code. Si les résultats sont jugés satisfaisants, il sera employé à d’autres étapes du processus de développement, plus particulièrement lors de l’automatisation », dixit Mozilla. Clever-Commit avait été présenté l’an dernier en tant que prototype du nom de Commit-Assistant. Tout d’abord testé avec des données amassées lors du développement de jeux vidéo, le prototype avait ensuite été transféré au Groupe Technologique d’Ubisoft, qui a eu pour mission de l’adapter pour divers types de projets.

Microsoft Risk Detection, l’IA corrective de Microsoft, est essentiellement basée sur la technique du fuzzing.

Nettoyer le code grâce à l’Intelligence artificielle

Clever-Commit utilise l’IA – plus précisément le Machine Learning – pour analyser les bugs passés et détecter des morceaux de code susceptibles de produire les mêmes types d’erreurs. Il s’appuie par ailleurs sur des techniques d’apprentissage profond – le Deep Learning – en vue de suggérer de possibles résolutions des problèmes aux développeurs. Selon Ubisoft, le gain de temps serait de 20 à 70 %, selon les projets, sur la durée globale du développement. Cela inclue donc logiquement la conception, le testing et le débogage.

D’après le responsable de la gestion des lancements et de la qualité de Firefox, Sylvestre Ledru, « en intégrant CleverCommit au flux de développement, nous améliorerons le processus de programmation de Firefox en repérant les tendances en matière de bogues et en identifiant plus tôt les correctifs antérieurs, à une étape où corriger un bogue coûte beaucoup moins cher qu’après la parution ».

Cela devrait avoir pour conséquence de réduire le temps et les ressources consacrés à la correction des bugs du navigateur et d’offrir des releases bien plus stables. Ubisoft compte par le biais de ce partenariat signé avec Mozilla – qui, soit dit en passant, ne comporte à priori aucune dimension financière – accélérer l’amélioration de son assistant en supportant notamment de nouveaux langages de programmation.

Ubisoft pourra aussi profiter des données issues de la programmation de Firefox et de l’expérience de ses développeurs pour enrichir CleverCommit. En l’état actuel des choses, c’est un outil interne à Ubisoft et il n’est pas disponible en Open source. L’accord conclu ne concerne que Mozilla.

Contribution de Mozilla

À partir de maintenant, Mozilla va également contribuer au développement de l’outil. « Travailler avec Mozilla sur Clever-Commit va nous permettre de prendre en charge d’autres langages de programmation et d’améliorer les performances générales de l’outil », a déclaré Mathieu Nayrolles, architecte technique, data scientist et membre du Groupe Technologique d’Ubisoft Montréal. Spécialiste du Web, Mathieu Nayrolles va fournir son expertise dans les langages de programmation C++, Rust et Javascript. Son expérience en matière d’analyse de code C++ et de systèmes de suivi des bugs est loin d’être négligeable pour l’avancement du projet. Alors que CleverCommit contribue déjà au processus de développement d’importants titres d’Ubisoft, l’éditeur est en train de l’intégrer pour d’autres marques. Mozilla va pour sa part intégrer Clever-Commit au flux de développement de Firefox. L’éditeur devrait commencer par l’utiliser à l’étape de la révision du code. Si les résultats s’avèrent concluants, il sera implémenté à d’autres étapes du processus de programmation, sans doute en priorité dans les phases d’automatisation (génération automatisée de portions de code). 

L’idée poursuivie est d’analyser le code de Firefox au moment des commit (contribution/soumission de nouveau code dans le dépôt du projet). Clever-Commit utilise une base évolutive de signatures de bugs qu’il analyse grâce à des algorithmes de Machine learning. Lorsqu’il détecte du code suspect, il alerte automatiquement la ou les personnes concernées en proposant d’éventuelles corrections. 60 % des bugs et régressions seraient ainsi identifiés en amont comparativement au process de développement classique utilisé auparavant. Actuellement, le système ferait remonter 30 % de faux positifs, mais cela devrait évoluer progressivement à la baisse au fur et à mesure que la base de signatures de bugs s’enrichit, et que l’outil se forme de ses erreurs passées. 

Clever-Commit ne s’arrête pas à la détection. Il va plus loin en suggérant des correctifs pour remplacer le code défaillant ou dangereux. La charge d’un développeur serait ainsi réduite d’au moins 20 %, temps qui peut alors être employé pour de la conception au lieu du débogage fastidieux. Et, au final, l’expérience des utilisateurs que nous sommes tous s’en verra améliorée avec un navigateur internet offrant une meilleure finition.

La genèse

Yves Jacquier, responsable de La Forge, la fameuse division R&D d’Ubisoft à Montréal, a déclaré « Je pense que comme beaucoup de bonnes idées, on se demande : comment se fait-il que nous n’y ayons pas penser avant ? » Son département travaille en partenariat avec des universités locales, dont McGill et Concordia – avec laquelle a été initié Clever-Commit. La Forge travaille sur des projets visant à faire progresser le domaine de l’Intelligence artificielle dans son ensemble et non pas seulement dans l’industrie des jeux vidéo. La Forge a fourni au « Commit Assistant » une dizaine d’années de code à travers la bibliothèque de logiciels d’Ubisoft, ce qui n’est pas rien. Cela lui a permis de déterminer quelles erreurs ont été historiquement rencontrées, de référencer les corrections un des aspects les plus coûteux en termes de ressources de développement et parmi les plus laborieux de la conception de jeux. L’éditeur de jeux affirme que l’élimination des bugs au cours de la phase de développement nécessite des ressources très importantes et peut parfois absorber jusqu’à 70 % du coût de développement d’un projet. Nous ne le contredirons certainement pas sur ce point – ni sur les autres d’ailleurs : la phase de débogage de grands projets complexes peut parfois être si coûteuse et si longue que certaines sociétés ne seront pas toujours en mesure de la gérer et pourra même conduire à leur disparition faute de moyens financiers suffisants. Clever-Commit s’attaque donc à un sujet très sensible et problématique dans le monde du développement d’applications.

La pyramide d’Abraham Maslow, idolâtrée des écoles de management, mais à prendre « avec beaucoup de modération » (source Wikipédia).

Les débuts de l’IA dans le processus de développement

Néanmoins, le fait de décharger le processus d’élimination de bugs à une Intelligence artificielle, même en partie, n’est pas exempt de problème. Yves Jacquier le souligne : « Vous avez besoin d’une très grosse quantité de données, mais aussi d’une énorme puissance de calcul pour traiter les données et toutes les méthodes mathématiques. Cela permet à l’IA de faire cette prédiction avec suffisamment de précision pour que le développeur fasse confiance à la recommandation. » Ce procédé ne peut donc pas, c’est clair, être utilisé pour des projets de moyenne envergure. Seuls les grands projets comme ceux cités peuvent se le permettre. Et même pour ceux-là, il est trop tôt pour évaluer les bénéfices réels de l’utilisation de Clever-Commit. Il va falloir sans doute un peu de recul pour voir comment cela affecte la création de jeux. Le facteur humain doit lui aussi être pris en considération. Les développeurs vont devoir désormais collaborer avec l’Intelligence artificielle. Cela ne sera peut-être pas si évident. « La partie la plus importante, en termes de gestion du changement, est juste de s’assurer que vous prenez les gens à bord pour leur montrer que vous êtes totalement transparent vis-à-vis de ce que vous faites avec l’IA – ce qu’il peut faire, la façon dont vous obtenez les données », fait encore remarquer Yves Jacquier. « Le fait que lorsque vous montrez à un programmeur des statistiques qui disent “ Eh, apparemment vous avez fait une erreur ! ”, vous voulez qu’il se rende compte que c’est un outil pour l’aider et aller plus vite, pas pour le remplacer. »

Fuzzing avec Microsoft Security Risk Detection

Microsoft Security Risk Detection est lui aussi un outil pour les développeurs. C’est une IA basée dans le Cloud capable d’analyser le code source d’un projet à la recherche d’éventuelles failles de sécurité. Sur ce point Security Risk Detection semble loin d’égaler Clever-Commit, mais l’annonce faite par Ubisoft et Mozilla va peut-être réveiller l’éditeur de Seattle ? Sinon, c’est toujours la même histoire : une vulnérabilité repérée avant la livraison du logiciel vaut toujours mieux qu’une vulnérabilité détectée tardivement et corrigée via un patch que les utilisateurs n’appliqueront pas tous ou du moins pas aussitôt. Microsoft Security Risk Detection se présente principalement sous la forme d’un outil de fuzzing automatisé et boosté à l’Intelligence artificielle, entièrement dans le Cloud. Rappelons que le fuzzing est une technique de détection des vulnérabilités consistant à évaluer les réactions du logiciel en lui envoyant des qui ont été appliquées et de prédire quand un développeur pourrait écrire du code avec des bugs similaires. «Il s’agit avant tout de comparer les lignes de code que nous avons créées dans le passé, les bugs qui y ont été créés et ceux qui ont été corrigés et d’ainsi trouver un moyen de créer des liens entre eux pour fournir une super-IA prédictive et corrective pour les programmeurs », explique encore Yves Jacquier. Ubisoft fomente l’espoir que le « Commit Assistant » réduira données plus ou moins aléatoires afin de tester son comportement dans des cas inhabituels. C’est, grosso-modo, le sacro-saint principe d’automatisation des tests, mais avec une IA derrière cette fois. La tâche était jusque-là l’apanage d’experts en testing qui se chargeaient d’établir des protocoles de test en écrivant pour cela du code spécifique, aidés tout de même par certains outils (Rational Rose, la famille XUnit, etc). Microsoft veut donc automatiser ce processus grâce à l’Intelligence artificielle, ce qui ne semble pas être une mauvaise idée. 

Security Risk Detection se présente sous la forme d’un portail, sur lequel les développeurs peuvent uploader le fichier binaire de l’application qu’ils souhaitent tester. La plate-forme proposera plusieurs tests à la disposition de l’utilisateur afin de l’aider à identifier les différents bugs et crashs pouvant survenir. L’application SRD produit ensuite des rapports détaillés afin d’identifier et de corriger les failles détectées et offre de plus notamment la possibilité d’accéder aux paramètres ayant permis de provoquer un bug afin de pouvoir le reproduire en local. Ceci est plus qu’intéressant en matière de testing : connaître le scénario précis d’utilisation d’une application ayant provoqué un bug. Microsoft a déclaré que ce nouveau service intègre des outils de fuzzing testés et utilisés dans le développement interne de produits Microsoft depuis plusieurs années. Bon, cet argument est-il vraiment rassurant ? Là, il nous faudra un peu de temps (et de bonnes expériences…) pour nous prononcer. Ce ne sont pas les sorties un peu trop rapides de kb et sous versions Windows actuelles qui nous rassureront sur ce point. Microsoft propose également son programme pour les développeurs d’applications pour les systèmes Linux.

Positionnement de l’IA d’un point de vue global par rapport au Machine Learning et au Deep learning. Et imbrication des uns avec les autres (source Wikipédia).


Résoudre des problèmes du monde réel grâce à l’IA dans les jeux

Ubisoft travaille également sur d’autres applications d’IA que la prédiction de bugs. L’amélioration considérable de l’IA dans les jeux pourrait aider à résoudre certains problèmes du monde réel. Un programmeur en IA chez Ubisoft, Olivier Delalleau pour ne pas le citer, a parlé de la conduite autonome dans le jeu Watch Dogs 2. Prenant en exemple une voiture non-pilotée par un joueur et circulant dans un San Francisco virtuel, Delalleau a expliqué comment, au départ, il était difficile pour l’IA d’apprendre à bien négocier les virages : « Les voitures en question n’ont pas freiné dans les virages parce qu’elles ne considéraient pas que c’était une bonne solution. C’est assez difficile pour une IA d’apprendre à freiner, parce qu’elle ne considère pas d’emblée que cela représente la meilleure solution la plupart du temps. Vous devez l’aider à comprendre cela.». Delalleau a utilisé pour ce faire l’apprentissage par renforcement, une forme d’apprentissage automatique où on « guide » l’IA pour l’aider à apprendre cette compétence. Ubisoft lui a fourni des milliers d’exemples de freinage pour que le système apprenne qu’il pouvait atteindre ses objectifs plus efficacement en suivant ces règles de pilotage. Le résultat a été concluant : les voitures pilotées par l’IA ont commencé à prendre les virages plus lentement. Cela a rendu la représentation de San Francisco plus réaliste dans le jeu et a réduit les accidents aléatoires. Cette technique peut être employée pour les vraies voitures autonomes, après un premier testing virtuel sans risque pour les piétons et les passagers.


Les applications de l’IA dans les jeux

L’IA a devant elle de nombreux domaines d’application dans les jeux vidéo. Les personnages non-joueurs (PNJ), par exemple, ont un comportement souvent limité justement parce qu’ils suivent des algorithmes « primaires », séquentiels, n’étant pas gérés par une vraie IA. Ubisoft a implémenté dans son jeu Far Cry 5 une version virtualisée de la hiérarchie des besoins de Maslow, la célèbre théorie psychologique des facteurs de motivation du comportement humain. Cela apporte aux acteurs du jeu des motivations pour leur comportement, modelées sur les strates d’auto-préservation de la pyramide de Maslow. Lorsqu’un joueur dans Far Cry 5 rencontre un personnage non-joueur, deux facteurs sont pris en compte : la confiance et la morale. Si vous sortez votre arme face à quelqu’un que vous n’avez jamais rencontré auparavant, ce personnage réagira avec méfiance et crainte et il vous demandera de baisser votre arme. Si le PNJ, grâce à l’analyse de l’IA, reconnaît une menace persistante de votre part, il lancera alors une attaque à votre encontre pour se protéger, comme dans la vraie vie – par exemple aux États-Unis. Idem pour les animaux qui pourront avoir un comportement variable en fonction de celui du joueur. Ces « petites choses » ajoutent de la profondeur au réalisme au monde virtuel concerné, ce qui est loin d’être négligeable. L’Intelligence artificielle est clairement l’un des points forts du mode « solo » des jeux.

Print
1320

x
Rechercher dans les dossiers
Les derniers dossiers...
Réduire
Actuellement à la Une...
Le groupe de recherche OpenAI, dont Elon Musk est un des investisseurs, signe un important partenariat avec Microsoft qui gagne ainsi un client d’envergure pour son Cloud Azure.

Le lecteur multimédia est affligé d’une vulnérabilité critique de type débordement de la mémoire tampon. La troisième découverte en deux mois chez VLC. Un correctif est en cours de développement.

La marque à la pomme a finalement trouvé en avril dernier un accord avec Qualcomm mettant fin à leurs litiges. Intel venait en effet d’annoncer qu’il ne produirait plus de modems 5G, obligeant probablement Apple à trouver un compromis avec son rival. Ce qui n’empêche pas Cupertino de songer à rapatrier les activités modems 5G du fondeur dans son giron.

[EXCLUSIF] Depuis ses débuts, la plateforme collaborative est en butte à une critique récurrente : ses clients web et desktop sont gourmands, très gourmands. Or Slack annonce aujourd’hui résoudre ce problème et déploie une mise à jour améliorant les performances de ses applications. 


Pendant un quart de siècle, il a pris avec lui des informations classifiées provenant d’agences gouvernementales américaines. Pour avoir volé plus de 50 To de données, Harold Martin est condamné à 9 ans de prison. Mais la preuve d’un partage ou d’une vente de ces informations n’a jamais pu être apportée.

La fondation autour du projet Cloud Foundry va déployer une nouvelle version du programme de formation et de certification et sera dévoilé lors de l’édition européenne de la conférence de la fondation.

L’éditeur de solutions de protection des données a profité de l’événement partenaire de Microsoft, Inspire, pour annoncer le renforcement de sa solution avec de nouvelles fonctionnalités qui sécurisent les données des solutions SaaS de Microsoft.

Si le gendarme des données personnelles laisse un an aux éditeurs pour s’adapter aux futures règles régissant le dépôt de cookies, les nouvelles règles conformes RGPD fraîchement publiées au JORF donnent un aperçu du futur régime applicable et matière à prendre de l’avance.


Les verticaux, si chers au gouvernement et à l’Arcep, commencent à manifester de l’intérêt pour obtenir des bandes de fréquences. Mais point de 5G ici, EDF et Aéroports de Paris sont candidats sur la bande 2,6 Ghz, destinés à la 4G, dont le guichet d’attribution a été ouvert en mai dernier.

Fin de partie pour les navettes autonomes circulant sur l’Esplanade de la Défense. Trop complexe, trop couteux, trop inadapté, le service expérimenté depuis 2017 est finalement arrêté.

Toutes les News

LIVRES BLANCS
Les entreprises et les organismes publics se focalisent aujourd’hui sur la transformation numérique. En conséquence, les DevOps et l’agilité sont au premier plan des discussions autour des stratégies informatiques. Pour offrir ces deux avantages, les entreprises travaillent de plus en plus avec les fournisseurs de services de cloud public et développent désormais des clouds sur site à partir d’une infrastructure qui répond à trois exigences de base:
1. Agilité sans friction des ressources physiques
2. Systèmes de contrôle optimisant l'utilisation des ressources physiques et offrant un retour sur investissement maximal
3. Intégration des divers composants de l'infrastructure pour un provisionnement et une gestion des ressources automatisés.


Pour fonctionner, votre entreprise doit pouvoir compter sur une solution de sauvegarde efficace, essentielle dans un monde marqué par une croissance exponentielle des données. Vous devez à la fois accélérer vos sauvegardes et pouvoir y accéder plus rapidement pour satisfaire les exigences actuelles de continuité d’activité, disponibilité, protection des données et conformité réglementaire. Dans cette ère de croissance effrénée, les cibles sur bande hors site et autres approches traditionnelles sont simplement dépassées.


L’Intelligence Artificielle promet de révolutionner la perception de la cybersécurité au coeur des entreprises, mais pas uniquement. Ce changement de paradigme engage, en effet, une redéfinition complète des règles du jeu pour les DSI et les RSSI, ainsi que l’ensemble des acteurs de la sécurité.


Lorsque l'on déploie des postes de travail, ils ont généralement tous la même configuration matérielle et logicielle (avec certaines spécificités selon les services). Mais on ne peut pas toujours tout prévoir et il arrive par exemple que de nouveaux programmes doivent être installés ou n’aient pas été prévus. L’accumulation de logiciels « lourds » est susceptible de provoquer des lenteurs significatives sur un PC allant jusqu’à l’extinction nette de l’application. Ce livre blanc explique comment optimiser les performances au travers de 5 conseils rapides à mettre en place.


Ce guide est conçu pour aider les entreprises à évaluer les solutions de sécurité des terminaux. Il peut être utilisé par les membres de l'équipe de réponse aux incidents et des opérations de sécurité travaillant avec des outils de sécurité des points finaux sur une base quotidienne. Il peut également être utilisé par les responsables informatiques, les professionnels de la sécurité, les responsables de la conformité et d’autres personnes pour évaluer leurs performances. les capacités de l’entreprise en matière de cybersécurité, identifier les lacunes dans la sécurité des terminaux et sélectionner les bons produits pour combler ces lacunes.


Tous les Livres Blancs