Machine Learning appliqué au code source
Details
Résumé :
Le code source est bimodal par nature: il est composé à la fois d'un flux algorithmique (destiné aussi bien aux machines qu'aux humains) et d'un flux de langage naturel qui le complémente (nom des variables, documentation, commentaires, destiné aux humains seulement). Les techniques traditionnelles de traitement du langage ont donc besoin d'être complétées par des méthodes de traitement du flux algorithmique pour pleinement exploiter le code comme donnée pour le machine learning. Cette présentation a pour but de présenter quelques méthodes spécifiques à cet aspect algorithmique. Nous commencerons par introduire le domaine de recherche qui s'intéresse à ces questions en retraçant ses plus grandes contributions ainsi que ses principaux domaines d'application. Nous aborderons ensuite plusieurs problèmes—tels que la dé-duplication de code ou encore la question de la similarité entre développeurs—pour lesquels les techniques de résolution diffèrent des méthodes classiques rencontrées en NLP, notamment dans le choix de features propres au flux algorithmique du code.
Biographie :
Waren Long est développeur chez source{d} au sein de l'équipe Machine Learning. Après avoir obtenu son diplôme d'ingénieur à l'ENSTA, il se spécialise en optimisation puis en recherche opérationnelle au CNAM (Master MPRO). Aujourd'hui, il développe des modèles ML entrainés sur du code afin d'aider les organisations à tirer profit de leur codebase.
Lecture :
- Plusieurs talks sur le sujet à la dernière FOSDEM : https://blog.sourced.tech/post/fosdem-2019-ml-on-code-room-recap/
- Dé-duplication de code : https://blog.sourced.tech/post/deduplicating_pga_with_apollo/
- Formatage de code : https://blog.sourced.tech/post/formatting-with-style/ et https://arxiv.org/abs/1904.00935
- Liste de papiers sur le Machine Learning appliqué au code :
https://github.com/src-d/awesome-machine-learning-on-source-code
