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
1806

x
Rechercher dans les dossiers
Les derniers dossiers...
Réduire
Actuellement à la Une...
La branche sanitaire et chauffage du géant de la construction opère sa transformation. Un plan stratégique qui exige l’examen par la direction de près de 80 projets. Afin d’optimiser les réunions du Codir et traiter ces chantiers de manière plus efficace, l’entreprise a recours à Klaxoon. Cela a changé son approche de la réunion. Article paru dans L'Informaticien n°178.

Bercy piraté ? Non. Seulement les boîtes mails de quelques administrés, utilisées pour réinitialiser les mots de passe des victimes sur leur espace personnel impots.gouv.fr. 2000 comptes sont ainsi concernés mais la DGFIP explique en avoir bloqué l’accès et notifié les utilisateurs.

Facebook déploie progressivement une nouvelle fonctionnalité du réseau social. Celle-ci entend donner aux utilisateurs une visibilité encore inédite et un contrôle sur les informations que les sites tiers transmettent à Facebook.

On pensait que le guichet THD Radio fermé depuis le 30 juin, mais l’Arcep a annoncé fin juillet sa prolongation jusqu’en septembre 2020, afin que les collectivités et autres porteurs de projets puissent déposer une demande de fréquences.

Dispersées sur plus d’une dizaine de sites à travers le monde, les équipes de Mailjet ne pourraient accomplir leurs tâches sans Slack, Google Docs ou encore Zoom. Mais l’utilisation de ces outils en interne a un effet de bord : l’ajout d’une dimension collaborative aux propres produits de l’entreprise. Article paru dans L'Informaticien n°178.

Pour servir ses clients ayant recours à Java sans avoir à dépendre d’Oracle, Microsoft rachète, pour un montant non divulgué, l’entreprise britannique jClarity, principale contributrice à AdoptOpenJDK.

Bill Stasior, après sept années à diriger les équipes développant l’assistant virtuel d’Apple, passe sous le pavillon quadricolore de Microsoft. S’il continuera de travailler dans l’intelligence artificielle, il ne devrait pas être chargé de Cortana. 

Après la décision de la Cnil d'accorder un an de répit aux éditeurs quant aux modalités du recueil du consentement des internautes aux dépôts de traceurs, la Quadrature et Caliopen avaient attaqué le gendarme des données personnelles devant le Conseil d’État. Un recours rejeté faute d’urgence : l’audience sur le fond a été fixée au 30 novembre.

Un service doit répondre à un problème spécifique. Sa conception n’est pas pour autant chose facile. Le métier de Nekoé consiste à assister les entreprises, administrations et collectivités dans cette démarche. Pour ce faire, elle s’appuie sur la suite d’outils d’Evolt afin de mettre en commun les expertises, les compétences ainsi que les idées des clients et des consultants. Article paru dans L'Informaticien n°178.

La marque à la pomme se voit accusée de violation de contrat et de publicité mensongère selon plusieurs plaignants, qui reprochent à Apple de ne pas être transparent quant aux conditions d’utilisation d’iCloud, notamment le stockage des données confié à des tierces parties.

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