Home Nieuws Meta’s nieuwe gestructureerde aanwijzingstechniek maakt LLM’s aanzienlijk beter in het beoordelen van...

Meta’s nieuwe gestructureerde aanwijzingstechniek maakt LLM’s aanzienlijk beter in het beoordelen van code, waardoor de nauwkeurigheid in sommige gevallen tot 93% wordt verhoogd

3
0
Meta’s nieuwe gestructureerde aanwijzingstechniek maakt LLM’s aanzienlijk beter in het beoordelen van code, waardoor de nauwkeurigheid in sommige gevallen tot 93% wordt verhoogd

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

Het gebruik van grote taalmodellen (LLM) in plaats van het uitvoeren van de code wordt steeds populairder 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 functieoproepen 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 vragen in de codebase.

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

Agentische code 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 codebase zonder de code uit te voeren. In zakelijke AI-toepassingen is deze mogelijkheid essentieel voor het opschalen van geautomatiseerde bugdetectie, uitgebreide codebeoordelingen en patchverificatie in complexe opslagplaatsen waar de relevante context meerdere bestanden omvat.

De industrie pakt momenteel uitvoeringsvrije codeverificatie aan 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 grootste nadeel is hun afhankelijkheid van ongestructureerd redeneren, waardoor modellen zelfverzekerde 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 rigoureuze, formele methoden vereisen dat de semantiek van de programmeertaal wordt gedefinieerd. 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 geheel 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 raden 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.

Voorbeeldsjabloon van 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 bewijs uit de codebase te verzamelen voordat hij een oordeel velt. De agent moet functieaanroepen en gegevensstromen daadwerkelijk 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 bij het afhandelen van randgevallen, zoals het verwarren van functienamen, en het voorkomen van ongefundeerde beweringen.

Semi-formeel redeneren in actie

De onderzoekers evalueerden semi-formeel redeneren over drie software-engineeringtaken: patch-equivalentieverificatie om te bepalen of twee patches identieke testresultaten opleveren zonder ze uit te voeren, foutlokalisatie 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. Bij de experimenten werd gebruik gemaakt van de Sluit Opus-4.5 en Sonnet-4.5-modellen die fungeren als autonome verificatiemiddelen.

Het team vergeleek hun gestructureerde semi-formele aanpak met verschillende uitgangspunten, waaronder standaardredenering, waarbij een agentisch model 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 real-world, door agenten gegenereerde patches met beschikbare testspecificaties, behaalde het Opus-4.5-model met behulp van semi-formele redenering een verificatienauwkeurigheid van 93%, waarmee het beter presteerde dan zowel de ongestructureerde single-shot basislijn met 86% als de difflib-basislijn met 73%. 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. Eén patch gebruikt een aangepaste format()-functie binnen de bibliotheek die de standaardfunctie die in Python wordt gebruikt, overschrijft.

Standaard redeneringsmodellen kijken naar deze patches, gaan ervan uit dat format() verwijst naar de standaard ingebouwde functie van Python, berekenen dat beide benaderingen dezelfde stringuitvoer zullen opleveren, en declareren de patches ten onrechte als gelijkwaardig.

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 overschaduwd door een aangepaste 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 zinvolle semantische code-analyses kunnen uitvoeren zonder uitvoering, waardoor de verificatiekosten in RL-trainingspijplijnen mogelijk kunnen worden verlaagd door dure sandbox-uitvoering te vermijden.”

Voorbehoud en afwegingen

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

De techniek verbetert ook niet universeel de prestaties, vooral niet als een model al zeer bedreven is in een specifieke taak. Toen onderzoekers het Sonnet-4.5-model evalueerden op basis van een benchmark voor het beantwoorden van codevragen, bereikte standaard ongestructureerd redeneren 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 uiterst zelfverzekerde foute antwoorden opleveren. Omdat de agent gedwongen wordt uitgebreide, formele bewijsketens op te bouwen, kan hij overdreven zelfverzekerd worden als zijn onderzoek diepgaand maar onvolledig is. In één Python-evaluatie traceerde de agent nauwgezet vijf verschillende functies om een ​​geldig randgeval te ontdekken, maar hij miste volledig dat een stroomafwaarts stuk code dat 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 analyseren 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, er soms niet in slagen concrete uitvoeringstrajecten volledig te traceren.

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

Wat ontwikkelaars zouden moeten wegnemen

Deze techniek kan out-of-the-box worden gebruikt en vereist geen modeltraining of speciale verpakking. Het is gratis voor code-uitvoering, wat betekent dat u geen extra tools aan uw LLM-omgeving hoeft toe te voegen. U betaalt meer rekenkracht voor de inferentietijd, zodat u een grotere nauwkeurigheid krijgt 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 aanzetten met taakspecifieke redeneersjablonen die generaliseren over talen en raamwerken.”

De onderzoekers hebben de promptsjablonen beschikbaar gesteld, zodat ze eenvoudig in uw applicaties kunnen worden geïmplementeerd. Hoewel er veel discussie is over het feit 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