Consultez nos dernières offres similaires
Contenu de l'offre APPRENTISSAGE - Data Scientist (F/H) chez Forum Emploi-Formation-Alternance: Talents Handicap
Imaginez demain ...
Au sein du département « R&D Information System », vous rejoignez l’équipe R&D Data Science qui est en charge de la spécification, du développement, de la mise en production et de la maintenance d’un système décisionnel permettant d’aider l’équipe DevOps dans la supervision et l’optimisation de notre chaine de production : Intégration continue et Déploiement continu.
Dans l’approche DevOps, l’équipe prend en charge les parties Continuous Monitoring and Learning soit :
Le développement des robots de collection et d’agrégation de données massives issues de nos chaînes de développement, d’opérations et de production.
La conception, le développement et le test des algorithmes innovants : Descriptive analytics, Predictive analytics, Discovery analytics and Perspective analytics.
La présentation des résultats sous forme de Dashboard pour nos équipes DevOps.
Pendant la phase de validation de nos logiciels, l’analyse statique du code source permet de révéler des erreurs de programmation ou de conception, et de faciliter la maintenance du code.
Vos futurs défis ...
L’objectif de cet apprentissage est d’exploiter les données relatives à ces analyses statistiques du code source (pattern d’erreur/ pattern de correction) afin d’introduire des algorithmes de Deep Learning robustes capables d’aider les développeurs dans la correction de ces erreurs.
Les approches de correction automatique de code ou Automatic Program Repair (inshort, APR) tentent de proposer automatiquement des corrections aux erreurs de code, et ce avec peu, voire sans intervention humaine. Les travaux de recherche classiques sur la correction automatique de code ont majoritairement porté sur des techniques basées sur des règles statiques prédéfinies par les experts ou sur des connaissances spécifiques à un langage de programmation (Syntactic and Semantic Analysis) [1].
L’apport de ces travaux se limite souvent à des corrections d’erreurs très simples souvent apportées sur une seule ligne. Plus récemment, quelques progrès ont été réalisés, notamment avec l’utilisation des algorithmes de Deep Learning et Code Embedding [2] pour proposer des approches génériques capables de traiter différents langages de programmation sans avoir besoin de règles spécifiques par langage [3][4][5].
Bien que ces approches aient réusi à mieux formaliser le problème, les performances et les résultats sont loin d'être optimaux ce qui ouvre un grand champ de recherche dans ce domaine.
Dans ce contexte, vous aurez pour mission la réalisation des objectifs suivants :
Etudier l'état de l'art sur la correction automatique de code (utilisant des approches Deep Learning / DevOps)
Mettre en place des pipelines pour la collecte de données massives.
Explorer, analyser et prétraiter les données (i.e. changement de représentation utilisant des arbres syntaxiques abstraits, approches d'apprentissage non supervivé)
Formaliser le problème et proposer une nouvelle approche fondée sur des concepts mathématiques
Développer des modèles d'apprentissage automatique capables de proposer des corrections
Evaluer, comparer et caractériser les modèles par des tests effectuées sur les données réelles de production
Intégrer les modèles dans nos chaines de DevOps de production
Communiquer et présenter les résultats de façon innovante pour les autres équipes.
Vous travaillerez en collaboration étroite avec un Research Data Scientist, un stagiaire, les autres équipes du département pour l'aspect collecte de données et plus particulièrement les équipes : SI, BI, développeurs, et architectes.
Références :
[1] M. Asad, K. K. Ganguly and K. Sakib, "Impact Analysis of Syntactic and Semantic Similarities on Patch Prioritization in Automated Program Repair," 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), Cleveland, OH, USA, 2019
[2] Uri Alon, Meital Zilberstein, Omer Levy, and Eran Yahav. Code2vec: Learning distributed representations of code. Proc. ACM Program. Lang., 3(POPL): 40:1–40:29, 2019.
[3] Zimin Chen, Steve Kommrusch, Michele Tufano, Louis-Noël Pouchet, Denys Poshyvanyk, and Martin Monperrus. Sequencer: Sequence-to-sequence learning for end-to-end program repair. IEEE Transaction on Software Engineering, 2019.
[4] Andrew Scott, Johannes Bader, and Satish Chandra. Getafix: Learning to fix bugs automatically. CoRR, abs/1902.06111, 2019.
[5] Gupta, Rahul, Soham Pal, A. Kanade and S. Shevade. DeepFix: Fixing Common C Language Errors by Deep Learning. AAAI, 2017.
Vos atouts pour réussir ...
Etudiant.e préparant un diplôme de niveau BAC+4 à BAC+5, Ecole d'ingénieurs ou Master Universitaire, en recherche de contrat d’apprentissage pour une durée minimum de 12 mois.
Compétences techniques souhaitées :
Bonne base académique ou une première expérience souhaitable Data Science, Machine Learning, Big Data, Statistiques.
Maîtrise de la programmation OO : Python et Pyspark- Maîtrise des librairies dédiées au développement d’algorithmes de Machine Learning et de Deep Learning (scikit-learn, keras, tenserflow, pytorch, …)
Connaissance des plateformes et outils Big Data : Hadoop, NiFi, Spark, Yarn, Oozie, CouchBase…
Maîtrise des outils Git et Gitlab
La maîtrise d’outils de visualisation est un grand plus : Bootstrap, D3.js, ...
Bon niveau d’anglais à l’écrit et à l’oral
Qualités professionnelles souhaitées :
Passionné(e) par le monde des datas, vous êtes organisé(-e) et rigoureux(-se), dynamique et proactif(-ve)
Vous êtes reconnu(e) pour votre esprit d'analyse et de synthèse.
Vous avez une forte capacité de travail en équipe et vous êtes force de proposition.