← Nieuwste papers
💻 computer science

Control Models for In-IDE Code Completion

Dit artikel introduceert en evalueert controlemodellen, specifiek ML-classificaties, om door LLM ondersteunde code-aanvulling in JetBrains IDE's te optimaliseren door middel van het triggeren van inferentie en het filteren van suggesties, waarbij verbeterde efficiëntie en kwaliteit worden aangetoond door middel van offline analyse en een productie A/B-studie.

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

Gepubliceerd 2026-01-29
📖 4 min leestijd☕ Koffiepauze-leesvoer

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

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een chef bent (de ontwikkelaar) die werkt in een drukke keuken (de IDE). Je hebt een superintelligente sous-chef (de AI) die constant receptideeën en ingrediënten suggesties naar je roept terwijl je groenten staat te snijden.

Soms is de sous-chef briljant en bespaart hij je tijd. Maar vaak is de sous-chef net iets te enthousiast:

  • Het suggereert een dessert terwijl je soep aan het maken bent (slecht getimed).
  • Het suggereert een ingrediënt dat je al hebt (overbodig).
  • Het suggereert iets dat vreselijk smaakt (slechte code).

Dit constante geschreeuw is afleidend. Het doorbreekt je "flow", verspilt de energie van de keuken (rekenkracht) en zorgt ervoor dat je je geïrriteerd voelt in plaats van geholpen.

Het Problec:
Het team van JetBrains (de auteurs van dit artikel) merkte op dat hun AI suggesties genereerde die ontwikkelaars ongeveer 70% van de tijd negeerden of afwezen. Ze verspilden veel geld en energie aan suggesties die niemand wilde hebben.

De Oplossing: "Control Models" (De Slimme Uitsmijter)
In plaats van de AI alleen maar slimmer te maken in het raden van recepten, heeft het team een nieuwe laag intelligentie gebouwd die "Control Models" wordt genoemd. Denk aan deze als een slimme uitsmijter die bij de deur staat tussen de AI en de chef.

Deze uitsmijter heeft twee taken:

  1. De Trigger (Het "Wacht"-signaal): Voordat de AI zelfs maar begint met het bereiden van een suggestie, controleert de uitsmijter de stemming van de chef. Is de chef snel aan het typen? Is de chef midden in een zin? Als het timing niet klopt, zegt de uitsmijter: "Nee, maak de AI nog niet wakker."
  2. Het Filter (De "Vuilnisbak"): Als de AI toch een suggestie bereidt, proeft de uitsmijter deze eerst. Als het er vreemd uitziet of niet bij het huidige gerecht past, gooit de uitsmijter het in de prullenbak voordat de chef het überhaupt ziet.

Hoe ze het hebben getest
Het team voerde experimenten uit met echte data van duizenden ontwikkelaars die JetBrains-software gebruiken (zoals IntelliJ IDEA). Ze testten twee soorten uitsmijters:

  • De "Boosting" Uitsmijter: Een snelle, lichtgewicht model dat naar eenvoudige statistieken kijkt (zoals typesnelheid en cursorpositie). Het is als een uitsmijter die alleen even naar je ID kijkt en snel een beslissing neemt.
  • De "Transformer" Uitsmijter: Een zwaar, complex model dat de eigenlijke code leest en diepe context begrijpt. Het is als een uitsmijter die het hele receptenboek leest voordat hij je binnenlaat.

De Resultaten

  • Geld Besparen: Door de "Boosting" uitsmijter te gebruiken, stopten ze ongeveer 20% van de onnodige AI-verzoeken. Dit bespaart veel rekenkracht (inference kosten).
  • Betere Kwaliteit: Omdat de slechte suggesties werden weggefilterd, waren de suggesties die de ontwikkelaars wel bereikten veel beter. Ontwikkelaars accepteerden ze vaker en wezen ze minder vaak af.
  • De Trade-off: Interessant genoeg daalde het totale aantal woorden dat ontwikkelaars typten niet veel. Dit komt omdat wanneer ontwikkelaars niet worden afgeleid door slechte suggesties, ze zelf juist meer code typen, wat nieuwe kansen creëert voor de AI om te helpen.

De Catch (Waarom niet de fancy uitsmijter gebruiken?)
De "Transformer" uitsmijter (degene die de code leest) was inderdaad erg goed in het filteren, maar hij was te traag en vereiste te veel rekenkracht om op ieders laptop te draaien. Het riep ook privacyzorgen op omdat hij de eigenlijke code moest lezen om beslissingen te kunnen nemen. Daarom besloot het team om voor nu vast te houden aan de snellere, lichtere "Boosting" uitsmijter.

De Grote Lijn
Het artikel concludeert dat om AI nuttig te maken bij het coderen, we de AI niet alleen slimmer moeten maken in het schrijven van code. We moeten ook slimme poortwachters bouwen die beslissen wanneer en hoe die code getoond moet worden. Dit zorgt ervoor dat de AI de flow van de ontwikkelaar ondersteunt in plaats van deze te onderbreken.

Kortom: Ze hebben een slim filter gebouwd dat de AI stopt met het lastigvallen van ontwikkelaars met slechte ideeën, wat geld bespaart en de programmeerervaring soepeler maakt.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →