Où docteurs et entreprises se rencontrent
Menu
Connexion

Analyse et explicabilité des modèles de représentation vectorielle du code

ABG-134541 Stage master 2 / Ingénieur 6 mois Indemnité de stage
25/11/2025
Logo de
LISIC EA 4491, Université du Littoral Côte d'Opale
France Les Hauts de France France
  • Informatique
Apprentissage Profond; Explicabilité; embeddings; Code2Vec
31/01/2026

Établissement recruteur

Le LISIC est l’unité de recherche (UR 4491) de l’Université du Littoral Côte d’Opale (ULCO). Le LISIC a été créé le 1er janvier 2010. Il développe des activités de recherche dans le domaine de l'informatique et traitement de signal.

Les travaux de recherche de l’équipe OSMOSE se situent à la confluence de deux domaines : d’un côté l’intelligence artificielle, en particulier les approches d’optimisation à base d’algorithmes évolutionnaires et plus largement des heuristiques de recherche locales et de l’autre les méthodes et des outils formels et opérationnels pour la multi-modélisation, en particulier de modélisation et simulation à événements discrets.

Description

Les modèles modernes d’apprentissage automatique appliqués au code source tels que Code2Vec [1],
CodeBERT [2] ou GraphCodeBERT [3] produisent des représentations vectorielles dont la structure interne
reste difficile à interpréter. Malgré leurs performances élevées en classification de méthodes, complétion
de code ou détection de bugs, ils fonctionnent comme des ”boites noires” dont les mécanismes décisionnels
sont opaques [4].
Les travaux menés dans la thèse d’Oumiama Bel Moudden et le stage de Master 2 d’Artus Havret (encadrés
par C. Fonlupt, R. Guibadj et D. Robilliard) montrent que des modèles de représentation du code comme
Code2Vec sont fortement sensibles aux noms de variables [5]. Une grande partie de l’information que
Code2Vec exploite provient des identifiants, ce qui le conduit à privilégier des indices lexicaux plutôt que
des structures syntaxiques ou sémantiques. Cette dépendance affecte sa robustesse : l’anonymisation des
variables dégrade nettement sa performance. Ce qui est critique pour des tâches comme la détection de
malwares ou l’analyse de code non humain (Genetic Programming).
Pour garantir la fiabilité et la compréhension des modèles d’apprentissage profond appliqués au code, il
est essentiel d’identifier les concepts de programmation qu’ils mobilisent réellement dans leurs prédictions
: motifs syntaxiques, structures de contrôle, patterns sémantiques, dépendances, types, exceptions, etc.
La méthode TCAV (Testing with Concept Activation Vectors), introduite par [6], propose une approche
post-hoc d’interprétation permettant de quantifier l’influence de concepts définis par l’utilisateur sur les
sorties d’un réseau de neurones. Principalement utilisée en vision, nous souhaitons l’adapter au modèle
d’apprentissage appliqués au code afin d’exploiter ses structures conceptuelles explicites.

L’objectif du ce stage est d’appliquer la méthode TCAV aux modèles d’embeddings de code, afin d’identifier
quels concepts de programmation influencent réellement leurs décisions. Le/la stagiaire devra :
• Définir un ensemble de concepts interprétables appliqués au code, par exemple : présence de boucle, appel récursif ou autres propriétés extraites de l’Arbre Syntaxique Abstrait (Abstract Syntaxic Tree, AST) ou du graphe de dépendances.
• Constituer des jeux d’exemples positifs/négatifs pour chaque concept.
• Adapter TCAV aux embeddings générés par les modèles tels que de Code2Vec ou CodeBERT.
• Mesurer l’importance des différents concepts lors de la prédiction de noms de méthodes (dans le cas
de Code2Vec).
• Évaluer la stabilité et la robustesse des concepts appris (robustesse à l’anonymisation des variables
notamment).

 

References
[1]U. Alon, M. Zilberstein, O. Levy, and E. Yahav, “Code2vec: Learning distributed representations of
code,” Implementation, data and a trained model for the code2vec paper, vol. 3, no. POPL, 40:1–40:29,
Jan. 2019. doi: 10.1145/3290353.
[2]Z. Feng, D. Guo, D. Tang, N. Duan, X. Feng, M. Gong, L. Shou, B. Qin, T. Liu, D. Jiang, and M.
Zhou, “CodeBERT: A Pre-Trained Model for Programming and Natural Languages,” in Findings of
the Association for Computational Linguistics: EMNLP 2020, Online Event, 16-20 November 2020, T.
Cohn, Y. He, and Y. Liu, Eds., ser. Findings of ACL, vol. EMNLP 2020, Association for Computational
Linguistics, 2020, pp. 1536–1547. doi: 10.18653/V1/2020.FINDINGS-EMNLP.139.
[3]D. Guo, S. Ren, S. Lu, Z. Feng, D. Tang, S. Liu, L. Zhou, N. Duan, A. Svyatkovskiy, S. Fu, M. Tufano,
S. K. Deng, C. Clement, D. Drain, N. Sundaresan, J. Yin, D. Jiang, and M. Zhou, “Graphcodebert:
Pre-training code representations with data flow,” arXiv preprint arXiv:2009.08366, 2020.
[4]A. Shanmugasundaram, H. Cai, M. Fernandes, M. Monperrus, and H. Trautmann, “Deep learning
representations of programs: A systematic literature review,” ACM Computing Surveys, vol. 57, no. 12,
pp. 1–41, 2025. doi: 10.1145/3769008.
[5]O. Bel Moudden, R. Guibadj, D. Robilliard, C. Fonlupt, A. Kadrani, and R. Benmansour, “A Re-
assessment of Code2Vec,” in Modern Artificial Intelligence and Data Science 2024: Tools, Techniques
and Systems, A. Idrissi, Ed., Cham: Springer Nature Switzerland, 2024, pp. 133–140, isbn: 978-3-031-
65038-3. doi: 10.1007/978-3-031-65038-3_10.
[6]B. Kim, M. Wattenberg, J. Gilmer, C. J. Cai, J. Wexler, F. B. Viégas, and R. Sayres, “Interpretability
Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV),” in Pro-
ceedings of the 35th International Conference on Machine Learning, ICML 2018, Stockholmsmässan,
Stockholm, Sweden, July 10-15, 2018, J. G. Dy and A. Krause, Eds., ser. Proceedings of Machine
Learning Research, vol. 80, PMLR, 2018, pp. 2673–2682.

 

 

Profil

Le candidat(e) doivent disposer d’un bon niveau en programmation, en apprentissage profond, ainsi que
d’un intérêt marqué pour la recherche, la formalisation et l’expérimentation scientifique.

Prise de fonction

02/02/2026
Partager via
Postuler
Fermer

Vous avez déjà un compte ?

Nouvel utilisateur ?