Home Nieuws Meta’s nieuwe gestructureerde aanwijzingstechniek maakt LLM’s aanzienlijk beter in codebeoordeling, waardoor de...

Meta’s nieuwe gestructureerde aanwijzingstechniek maakt LLM’s aanzienlijk beter in codebeoordeling, waardoor de nauwkeurigheid in sommige gevallen tot 93% toeneemt

2
0
Meta’s nieuwe gestructureerde aanwijzingstechniek maakt LLM’s aanzienlijk beter in codebeoordeling, waardoor de nauwkeurigheid in sommige gevallen tot 93% toeneemt

De implementatie van AI-agents voor taken op repositoryschaal, zoals bugdetectie, patchverificatie en codebeoordeling, vereist het overwinnen van aanzienlijke technische hindernissen. Een groot knelpunt: de noodzaak om voor elke repository dynamische uitvoeringssandboxen op te zetten, die duur en rekenintensief zijn.

Het gebruik van Large Language Model (LLM)-redeneringen in plaats van het uitvoeren van de code wint aan populariteit om deze overhead te omzeilen, maar leidt vaak tot niet-ondersteunde gissingen en hallucinaties.

Om het uitvoeringsvrije redeneren te verbeteren, introduceren onderzoekers van Meta “semi-formeel redeneren“, een gestructureerde aanwijzingstechniek. Deze methode vereist dat de AI-agent een logisch certificaat invult door expliciet premissen te vermelden, concrete uitvoeringspaden te volgen en formele conclusies af te leiden voordat hij een antwoord geeft.

Het gestructureerde format dwingt de agent om systematisch bewijsmateriaal te verzamelen en functieaanroepen te volgen voordat hij conclusies trekt. Dit verhoogt de nauwkeurigheid van LLM’s bij codeertaken en vermindert aanzienlijk de fouten bij het lokaliseren van fouten en het beantwoorden van codebase-vragen.

Voor ontwikkelaars die LLM’s gebruiken bij codebeoordelingstaken maakt semiformeel redeneren zeer betrouwbare, uitvoeringsvrije semantische codeanalyse mogelijk, terwijl de infrastructuurkosten van AI-coderingssystemen drastisch worden verlaagd.

Agentcode-redenering

Agentische coderedenering is het vermogen van een AI-agent om door bestanden te navigeren, afhankelijkheden te traceren en iteratief context te verzamelen om diepgaande semantische analyses uit te voeren op een codebasis zonder de code uit te voeren. In zakelijke AI-toepassingen is deze mogelijkheid essentieel voor het opschalen van automatische bugdetectie, uitgebreide codebeoordelingen en patchverificatie in complexe opslagplaatsen waar de relevante context meerdere bestanden omvat.

De industrie verwerkt momenteel uitvoeringsvrije codeverificatie via twee primaire benaderingen. De eerste betreft ongestructureerde LLM-beoordelaars die proberen de code rechtstreeks te verifiëren of door gespecialiseerde LLM’s te trainen als beloningsmodellen om testresultaten te benaderen. Het belangrijkste nadeel is dat ze afhankelijk zijn van ongestructureerd redeneren, waardoor modellen veilige uitspraken kunnen doen over codegedrag zonder expliciete rechtvaardiging. Zonder gestructureerde beperkingen is het moeilijk ervoor te zorgen dat agenten grondig redeneren in plaats van te raden op basis van oppervlakkige patronen zoals functienamen.

De tweede benadering omvat formele verificatie, waarbij code of redenering wordt vertaald naar formele wiskundige talen zoals Lean, Coq of Datalog om geautomatiseerde bewijscontrole mogelijk te maken. Hoewel rigoureus, vereisen formele methoden het definiëren van de semantiek van de programmeertaal. Dit is volkomen onpraktisch voor willekeurige bedrijfscodebases die meerdere raamwerken en talen omvatten.

Bestaande benaderingen neigen bovendien sterk gefragmenteerd en taakspecifiek te zijn, en vereisen vaak volledig afzonderlijke architecturen of gespecialiseerde training voor elk nieuw probleemdomein. Ze missen de flexibiliteit die nodig is voor brede, multifunctionele bedrijfstoepassingen.

Hoe semi-formeel redeneren werkt

Om de kloof tussen ongestructureerd giswerk en al te rigide wiskundige bewijzen te overbruggen, stellen de Meta-onderzoekers een gestructureerde prompting-methodologie voor die zij ‘semi-formeel redeneren’ noemen. Deze aanpak voorziet LLM-agenten van taakspecifieke, gestructureerde redeneersjablonen.

Voorbeeld van een sjabloon voor semi-formeel redeneren (bron: arXiv)

Deze sjablonen fungeren als verplichte logische certificaten. Om een ​​taak te voltooien, moet de agent expliciet premissen vermelden, uitvoeringspaden voor specifieke tests traceren en een formele conclusie trekken die uitsluitend op verifieerbaar bewijsmateriaal is gebaseerd.

De sjabloon dwingt de agent om bewijsmateriaal uit de codebase te verzamelen voordat hij een oordeel velt. De agent moet functieaanroepen en datastromen stap voor stap volgen in plaats van hun gedrag te raden op basis van naamgevingsconventies op oppervlakteniveau. Deze systematische verzameling van bewijsmateriaal helpt de agent om te gaan met randgevallen, zoals verwarrende functienamen, en te voorkomen dat er niet-ondersteunde beweringen worden gedaan.

Semiformeel redeneren in actie

De onderzoekers evalueerden semiformeel redeneren over drie software-engineeringtaken: patch-equivalentieverificatie om te bepalen of twee patches identieke testresultaten opleveren zonder ze uit te voeren, buglokalisatie om de exacte coderegels te lokaliseren die een bug veroorzaken, en het beantwoorden van codevragen om het genuanceerde semantische begrip van complexe codebases te testen. De gebruikte experimenten Sluit Opus-4.5 en Sonnet-4.5-modellen die fungeren als autonome verificateurs.

Het team vergeleek hun gestructureerde semi-formele aanpak met verschillende uitgangspunten, waaronder standaardredenering, waarbij een agentmodel een minimale prompt krijgt en zijn denken vrijelijk mag uitleggen in ongestructureerde natuurlijke taal. Ze vergeleken ook met traditionele algoritmen voor tekstgelijkenis, zoals difflib.

semi-formeel redeneren

Semi-formeel redeneren laat een significante verbetering zien ten opzichte van standaard redeneren (bron: arXiv)

Bij patch-equivalentie verbeterde semi-formeel redeneren de nauwkeurigheid van uitdagende, samengestelde voorbeelden van 78% met behulp van standaardredeneringen tot 88%. Bij het evalueren van door agenten gegenereerde patches uit de echte wereld met beschikbare testspecificaties behaalde het Opus-4.5-model met behulp van semi-formele redenering een verificatienauwkeurigheid van 93%, waarmee het zowel de ongestructureerde single-shot-basislijn met 86% als de difflib-basislijn met 73% overtrof. Andere taken lieten over de hele linie vergelijkbare winsten zien.

Het artikel benadrukt de waarde van semi-formeel redeneren aan de hand van voorbeelden uit de praktijk. In één geval evalueert de agent twee patches in de Python Django-repository die proberen een bug op te lossen met een jaarnotatie van twee cijfers voor jaren vóór 1000 CE. Een patch gebruikt een aangepaste format()-functie in de bibliotheek die de standaardfunctie die in Python wordt gebruikt, overschrijft.

Standaard redeneermodellen kijken naar deze patches, gaan ervan uit dat format() verwijst naar de standaard ingebouwde functie van Python, berekenen dat beide benaderingen dezelfde stringuitvoer zullen produceren, en verklaren ten onrechte dat de patches gelijkwaardig zijn.

semi-formeel redeneren Django voorbeeld

Voorbeeld van semi-formeel redeneren versus standaardredeneren (bron: arXiv)

Met semi-formeel redeneren traceert de agent het uitvoeringspad en controleert de methodedefinities. Door de gestructureerde sjabloon te volgen, ontdekt de agent dat binnen een van de bestanden van de bibliotheek de naam format() feitelijk wordt overschreven door een door de gebruiker gedefinieerde functie op moduleniveau. De agent bewijst formeel dat gegeven de attributen van de invoer die aan de code wordt doorgegeven, deze patch het systeem zal laten crashen, terwijl de andere zal slagen.

Op basis van hun experimenten suggereren de onderzoekers dat “LLM-agenten betekenisvolle semantische code-analyses kunnen uitvoeren zonder uitvoering, waardoor de verificatiekosten in RL-trainingspijplijnen mogelijk worden verlaagd door dure sandbox-uitvoering te vermijden.”

Reserveringen en afwegingen

Hoewel semi-formeel redeneren aanzienlijke verbeteringen in de betrouwbaarheid biedt, moeten bedrijfsontwikkelaars een aantal praktische kanttekeningen in overweging nemen voordat ze het adopteren. Er is een duidelijke afweging tussen berekening en latentie. Semi-formeel redeneren vereist meerdere API-aanroepen en tokens. Bij patch-equivalentie-evaluaties vereiste semi-formeel redeneren ongeveer 2,8 keer zoveel uitvoeringsstappen als standaard ongestructureerd redeneren.

De techniek verbetert ook niet universeel de prestaties, vooral niet als een model al zeer bekwaam is in een specifieke taak. Toen onderzoekers het Sonnet-4.5-model evalueerden op basis van een benchmark voor het beantwoorden van codeervragen, bereikte standaard ongestructureerde redenering al een hoge nauwkeurigheid van ongeveer 85%. Het toepassen van het semi-formele model in dit scenario leverde geen extra winst op.

Bovendien kan gestructureerd redeneren zeer zeker foute antwoorden opleveren. Omdat de agent gedwongen wordt om uitgebreide, formele bewijsketens op te bouwen, kan hij overmoedig worden als zijn onderzoek diepgaand maar onvolledig is. Bij een Python-evaluatie volgde de agent nauwgezet vijf verschillende functies om een ​​geldig randgeval te ontdekken, maar hij miste volledig dat een stroomafwaarts stuk code het exacte scenario al veilig afhandelde. Omdat het een sterke bewijsketen had opgebouwd, kwam het met extreem veel vertrouwen tot een onjuiste conclusie.

De afhankelijkheid van het systeem van concreet bewijsmateriaal vervalt ook wanneer het de grenzen van een codebase bereikt. Bij het parseren van bibliotheken van derden waar de onderliggende broncode niet beschikbaar is, zal de agent nog steeds zijn toevlucht nemen tot gokgedrag op basis van functienamen.

En in sommige gevallen zullen modellen, ondanks strikte, snelle instructies, de concrete uitvoeringstrajecten soms niet volledig volgen.

Hoewel semi-formeel redeneren ongestructureerd giswerk en hallucinaties drastisch vermindert, elimineert het deze uiteindelijk niet volledig.

Wat ontwikkelaars zouden moeten wegnemen

Deze techniek kan kant-en-klaar worden toegepast en vereist geen modeltraining of speciale verpakking. Het is gratis voor het uitvoeren van code, wat betekent dat u geen extra tools aan uw LLM-omgeving hoeft toe te voegen. U betaalt meer berekeningen aan het einde van de tijd om een ​​grotere nauwkeurigheid te krijgen bij codebeoordelingstaken.

De onderzoekers suggereren dat gestructureerd agentisch redeneren “een flexibel alternatief kan bieden voor klassieke statische analysehulpmiddelen: in plaats van analyselogica te coderen in gespecialiseerde algoritmen, kunnen we LLM-agenten aanmoedigen met taakspecifieke redeneersjablonen die generaliseren over talen en raamwerken.”

De onderzoekers hebben de snelle sjablonen ter beschikking gesteld, zodat deze eenvoudig in uw applicaties kunnen worden geïmplementeerd. Hoewel er veel wordt gezegd dat prompt-engineering dood is, laat deze techniek zien hoeveel prestatie je nog steeds uit goed gestructureerde prompts kunt halen.

Nieuwsbron

LAAT EEN REACTIE ACHTER

Vul alstublieft uw commentaar in!
Vul hier uw naam in