← Derniers articles
💻 computer science

Control Models for In-IDE Code Completion

Cet article présente et évalue des modèles de contrôle, plus précisément des classifieurs d'apprentissage automatique (ML), afin d'optimiser la complétion de code pilotée par des LLM dans les IDE JetBrains en déclenchant l'inférence et en filtrant les suggestions, démontrant une efficacité et une qualité accrues grâce à une analyse hors ligne et une étude A/B en production.

Auteurs originaux : Aral de Moor, Yana Hrynevich, Hleb Badzeika, Vladyslav Furda, Marko Kojic, Artem Savelev, Kostadin Cvejoski, Darya Rovdo, Ekaterina Garanina

Publié 2026-01-29
📖 4 min de lecture☕ Lecture pause café

Auteurs originaux : Aral de Moor, Yana Hrynevich, Hleb Badzeika, Vladyslav Furda, Marko Kojic, Artem Savelev, Kostadin Cvejoski, Darya Rovdo, Ekaterina Garanina

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Imaginez que vous êtes un chef (le développeur) travaillant dans une cuisine très occupée (l'IDE). Vous avez un sous-chef super intelligent (l'IA) qui n'arrête pas de vous crier des idées de recettes et des suggestions d'ingrédients pendant que vous coupez les légumes.

Parfois, le sous-chef est brillant et vous fait gagner du temps. Mais souvent, le sous-chef est un peu trop enthousiaste :

  • Il suggère un dessert alors que vous préparez une soupe (mauvais timing).
  • Il suggère un ingrédient que vous avez déjà (redondance).
  • Il suggère quelque chose qui a un goût terrible (mauvais code).

Ce bavardage constant est distrayant. Cela brise votre « flow », gaspille l'énergie de la cuisine (puissance de calcul) et vous donne l'impression d'être agacé plutôt qu'aidé.

Le Problème :
L'équipe JetBrains (les auteurs de cet article) a remarqué que leur IA générait des suggestions que les développeurs ignoraient ou rejetaient environ 70 % du temps. Ils gaspillaient beaucoup d'argent et d'énergie pour des suggestions dont personne ne voulait.

La Solution : Les « Modèles de Contrôle » (Le Videur Intelligent)
Au lieu de simplement rendre l'IA plus douée pour deviner des recettes, l'équipe a construit une nouvelle couche d'intelligence appelée Modèles de Contrôle. Voyez cela comme un videur intelligent se tenant à la porte entre l'IA et le chef.

Ce videur a deux missions :

  1. Le Déclencheur (Le signal « Attendez ») : Avant même que l'IA ne commence à cuisiner une suggestion, le videur vérifie l'humeur du chef. Le chef tape-t-il vite ? Est-il au milieu d'une phrase ? Si le timing est mauvais, le videur dit : « Non, ne dérangez pas l'IA pour l'instant ».
  2. Le Filtre (La « Poubelle ») : Si l'IA doit quand même préparer une suggestion, le videur la goûte d'abord. Si elle semble bizarre ou ne correspond pas au plat actuel, le videur la jette à la poubelle avant que le chef ne la voie.

Comment ils ont testé l'approche
L'équipe a mené des expériences en utilisant des données réelles provenant de milliers de développeurs utilisant les logiciels JetBrains (comme IntelliJ IDEA). Ils ont testé deux types de videurs :

  • Le Videur « Boosting » : Un modèle rapide et léger qui observe des statistiques simples (comme la vitesse de frappe et la position du curseur). C'est comme un videur qui jette juste un coup d'œil à votre carte d'identité et décide rapidement.
  • Le Videur « Transformer » : Un modèle lourd et complexe qui lit le code réel et comprend le contexte profond. C'est comme un videur qui lit l'intégralité du livre de recettes avant de vous laisser entrer.

Les Résultats

  • Économie d'argent : En utilisant le videur « Boosting », ils ont stoppé environ 20 % des requêtes d'IA inutiles. Cela économise beaucoup de puissance de calcul (coûts d'inférence).
  • Meilleure Qualité : Parce que les mauvaises suggestions ont été filtrées, les suggestions qui parvenaient réellement aux développeurs étaient bien meilleures. Les développeurs les acceptaient plus souvent et les rejeaient moins souvent.
  • Le Compromis : Curieusement, bien qu'ils aient filtré beaucoup de mauvaises idées, le nombre total de mots tapés par les développeurs n'a pas beaucoup diminué. C'est parce que lorsqu'ils ne sont pas distraits par de mauvaises suggestions, les développeurs tapent en réalité plus de code eux-mêmes, créant ainsi de nouvelles opportunités pour l'IA.

Le Piège (Pourquoi ne pas utiliser le videur sophistiqué ?)
Le videur « Transformer » (celui qui lit le code) était en fait très bon pour filtrer, mais il était trop lent et nécessitait trop de puissance de calcul pour fonctionner sur les ordinateurs portables de tout le monde. Il posait également des problèmes de confidentialité car il devait lire le code réel pour prendre des décisions. L'équipe a donc décidé de s'en tenir au videur « Boosting », plus rapide et plus léger, pour le moment.

La Vision Globale
L'article conclut que pour rendre l'IA utile dans le codage, nous ne pouvons pas seulement rendre l'IA plus intelligente pour écrire du code. Nous devons aussi construire des garde-fous intelligents qui décident quand et comment montrer ce code. Cela garantit que l'IA aide le flux de travail du développeur au lieu de l'interrompre.

En bref : Ils ont construit un filtre intelligent qui empêche l'IA d'ennuyer les développeurs avec de mauvaises idées, économisant ainsi de l'argent et rendant l'expérience de codage plus fluide.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →