Code Fingerprints: Disentangled Attribution of LLM-Generated Code

Cet article propose le DCAN, un réseau d'apprentissage par contraste capable d'attribuer du code généré par des modèles de langage spécifiques en séparant les informations sémantiques des signatures stylistiques, et valide cette approche grâce à un nouveau benchmark à grande échelle couvrant quatre LLMs et quatre langages de programmation.

Jiaxun Guo, Ziyuan Yang, Mengyu Sun, Hui Wang, Jingfeng Lu, Yi Zhang

Publié 2026-03-05
📖 5 min de lecture🧠 Analyse approfondie

Each language version is independently generated for its own context, not a direct translation.

Voici une explication simple et imagée de l'article, comme si on en discutait autour d'un café.

🕵️‍♂️ Le Problème : Qui a écrit ce code ?

Imaginez que vous trouvez une lettre manuscrite. Si vous êtes un expert en écriture, vous pouvez peut-être dire : "Tiens, c'est l'écriture de Paul, il a toujours ces petits 't' barrés d'une manière particulière."

Aujourd'hui, les intelligences artificielles (comme ChatGPT, Claude, DeepSeek, etc.) écrivent du code informatique. Le problème, c'est que si deux IA doivent résoudre le même problème mathématique (par exemple, trier une liste de nombres), elles vont souvent trouver la même solution logique. C'est comme si Paul et Marie écrivaient tous les deux la même phrase : "Il fait beau aujourd'hui".

Mais, tout comme les humains, chaque IA a sa propre "patte" ou son "style".

  • L'une utilise des noms de variables très longs et descriptifs.
  • L'autre aime les phrases courtes et directes.
  • L'une met des commentaires (des notes explicatives) partout, l'autre n'en met pas.
  • L'une préfère utiliser des parenthèses d'une certaine manière, l'autre non.

Jusqu'à présent, il était très difficile de distinguer quelle IA avait écrit quel bout de code, car les chercheurs se concentraient surtout sur la différence entre "code humain" et "code machine". Mais maintenant, il faut savoir quelle machine a fait le travail.

🧩 La Solution : Le "Dé-mélangeur" (DCAN)

Les auteurs de cet article (une équipe de l'Université du Sichuan) ont créé un outil génial appelé DCAN. Pour comprendre comment ça marche, utilisons une analogie culinaire.

Imaginez que vous avez un gâteau.

  1. L'ingrédient principal (Le Gâteau) : C'est la recette de base. Peu importe qui la cuisine, un gâteau au chocolat doit avoir du chocolat, de la farine et des œufs. C'est la logique du code (ce que le code doit faire). C'est ce que tous les modèles partagent.
  2. La touche du Chef (Le Style) : C'est la façon dont le chef a mélangé les œufs, la forme du gâteau, ou la façon dont il a décoré le dessus. C'est le style de l'IA (la façon dont elle écrit).

Le problème, c'est que dans le code, le "gâteau" (la logique) est si gros qu'il cache la "touche du chef" (le style).

DCAN est comme un super-chef qui sait séparer les ingrédients :

  • Il prend le code.
  • Il dit : "Attends, cette partie c'est juste la recette de base (logique), je la mets de côté."
  • Il dit : "Et cette autre partie, c'est la signature unique de l'artiste (le style), je la garde !"

En isolant cette "touche du chef", l'outil peut dire avec une grande précision : "Ah oui, ce gâteau a été fait par le Chef Claude, pas par le Chef ChatGPT !"

📚 Ce qu'ils ont fait pour prouver leur théorie

Pour s'assurer que leur méthode fonctionnait vraiment, ils n'ont pas juste deviné. Ils ont construit une énorme bibliothèque de preuves :

  1. Le Grand Concours : Ils ont demandé à 4 IA célèbres (DeepSeek, Claude, Qwen, ChatGPT) de résoudre 2 800 problèmes différents (des exercices de logique et de programmation).
  2. Les 4 Langues : Ils ont fait ça en 4 langues de programmation différentes (Python, Java, C, Go).
  3. Les 2 Modes : Ils ont demandé aux IA de coder de deux façons :
    • Mode "Sec" : Juste le code, sans explications.
    • Mode "Pédagogue" : Le code avec des commentaires explicatifs (comme un prof qui explique sa démarche).

Au total, ils ont créé 91 804 exemples de code. C'est énorme ! C'est la première fois qu'un tel jeu de données existe pour ce type de recherche.

🎯 Les Résultats : Ça marche !

Les résultats sont impressionnants :

  • Précision : Leur outil arrive à identifier l'IA responsable dans 98% des cas quand il y a des commentaires, et 93% des cas même sans commentaires. C'est bien mieux que les anciennes méthodes.
  • Le secret des commentaires : Ils ont découvert que les commentaires (les notes écrites par l'IA) sont comme une empreinte digitale très forte. La façon dont une IA explique son code est souvent plus unique que la façon dont elle écrit le code lui-même.
  • La difficulté aide : Curieusement, plus le problème est difficile, plus l'IA a de "liberté" pour choisir sa propre méthode, et plus il est facile de l'identifier ! Sur les problèmes faciles, tout le monde fait la même chose, donc c'est dur de distinguer.

💡 Pourquoi est-ce important ?

C'est un peu comme la police scientifique pour le code informatique.

  • Sécurité : Si un virus est créé par une IA, on peut savoir laquelle l'a fait pour bloquer ses futures créations.
  • Responsabilité : Si un code contient une erreur grave, on peut savoir quelle IA l'a généré pour améliorer ce modèle.
  • Propriété intellectuelle : On peut vérifier si un code a été généré par une IA payante ou gratuite, ce qui est important pour les entreprises.

En résumé

Les chercheurs ont inventé un "dé-mélangeur" magique qui sépare la logique (ce qui est pareil pour tout le monde) du style (ce qui est unique à chaque IA). Grâce à une base de données géante, ils ont prouvé que chaque IA a une signature invisible dans son écriture, un peu comme une empreinte digitale, et que leur outil peut la lire avec une précision incroyable.

C'est une avancée majeure pour comprendre et contrôler l'ère des intelligences artificielles qui écrivent du code.