Læring af virkelige erfaringer
Eftertræning af en Perplexity Computer-model til at imitere succesfulde adfærdstyper, reducere behovet for brugerrettelser og undgå værktøjsfejl.
Hvordan brugere interagerer med vores produkter i den virkelige verden, er en værdifuld kilde til modeltræning. Dataene er rigelige, afspejler den faktiske fordeling af brugeropgaver og indfanger brugerkorrektioner og værktøjsfejl, som syntetiske miljøer kan overse.
En almindelig måde at lære af data fra den virkelige verden på er rejection sampling fine-tuning: bedøm hver sessions udfald, beholde de succesfulde og træn modellen til at imitere dem. Men et succesfuldt udfald betyder ikke, at hvert trin var korrekt, så at imitere hele trajektorien risikerer at forstærke dårlige mellemliggende adfærdsmønstre ud over de gode. At kassere mislykkede sessioner mister også kritisk evidens om, hvor modellen kommer til kort.
Vi kombinerer fintuning af afvisningssampling med tip-vejledt selv-distillation for at lære af både vellykkede og mislykkede sessioner. Et tip er en kort korrigerende instruktion baseret på information, som modellen allerede havde, da den begik fejlen. Nyttige trin fra vellykkede sessioner forbliver imitationmål, mens baserede tip gør undgåelige fejl til rettelsesmål.
Brugerkorrektioner og værktøjsfejl tilføjer overvågning om, hvad der gik galt undervejs, ud over om opgaven i sidste ende lykkedes. Vi anvender dette trin efter forstærkende læring i syntetiske miljøer for at hjælpe med at lukke kløften mellem disse miljøer og brug i den virkelige verden.
Ved live brug reducerede et senere post-trænet GLM-5.2-kontrolpunkt fejl i værktøjskalder med 21,2 % i forhold til et tidligere trænet kontrolpunkt. For GLM-5.3 reducerede post-træning fejl i værktøjskalder med 33,0 % og den gennemsnitlige estimerede sandsynlighed for middel til høj utilfredshed hos brugeren med 17,2 % i forhold til standardmodellen.
Fra syntetiske til virkelige data
Syntetiske opgaver giver os mulighed for at skabe kontrollerede problemer med udfald, der er nemme at verificere, men de er typisk begrænset til en enkelt prompt og kan kun dække de scenarier, vi udtrykkeligt designer.
I kontrast bringer brugere i sessioner i den virkelige verden forskellige instruktioner, kontekst og værktøjskombinationer ind i sessioner, der udfolder sig over flere interaktionsomgange. Sådan brug i den virkelige verden giver naturligt to værdifulde signaler om fejl: brugerkorrektioner afslører, hvor agenten mislykkedes med at levere det, de ønskede, og værktøjsfejl viser, hvor dens handlinger brød sammen i virkelige miljøer. Vores samplingspipeline respekterer brugernes privatliv og træningsvalg ved at udelukke sessioner med personhenførbare oplysninger (PII) og fra brugere, der har fravagt.
Data fra den virkelige verden giver os derfor fejltilfælde, som et syntetisk miljø måske ikke afslører, og leveres ofte med fejlen allerede indlejret der, hvor den opstod.
Imiter de gode trin, ret de dårlige
Når man træner på data fra den virkelige verden, vælger standard rejection sampling fine-tuning (RFT) succesfulde sessioner baseret på deres endelige udfald uden udtrykkeligt at bruge bruger- og værktøjsfeedback til at skelne gode mellemliggende handlinger fra dårlige. En agent kan komme sig over et dårligt værktøjsopkald eller rette en fejl efter brugerfeedback og stadig levere det rigtige output til sidst.
At kassere mislykkede sessioner begrænser også sample-effektiviteten. En session, der aldrig når et godt resultat, kan stadig afsløre en tydelig, undgåelig fejl som nyttige træningssignaler.
Vi adresserer disse begrænsninger ved at adskille to beslutninger: hvilke sessioner der indeholder adfærd, der er værd at imitere, og hvilke omgange der indeholder fejl, der er værd at rette. Datapipelinen træffer disse beslutninger separat og tildeler derefter modelomgange en af tre behandlinger:
- Imiter: ikke-fejl-omgange i succesfulde sessioner modtager almindeligt Cross-Entropy (CE) tab, hvilket øger sandsynligheden for registrerede tokens.
- Korrekt: i både succesfulde og ufrugtbare sessioner modtager fejolomgange med et gyldigt tip et Kullback–Leibler (KL) divergenstab, hvilket flytter modellen mod de forudsigelser for næste token, den foretager, når den ser tippet.
- Behold som kontekst: omgange i ufrugtbare sessioner, der mangler et valideret tip, og markerede dårlige omgange uden et valideret tip i en af sessionstypperne, fungerer som kontekst, men modtager ikke nogen af tabene.
Som et resultat kan succesfulde sessioner levere både imiterings- og korrektionsmål, mens ufrugtbare sessioner kun leverer korrektionsmål. Alle resterende omgange, herunder system-, bruger- og værktøjsoutput, forbliver som kontekst.
Imiteringsdelen bruger standard RFT. Den korrigerende del bruger On-Policy Self-Distillation (OPSD): den samme model fungerer som lærer og elev, hvor læreren får privilegeret information. Her er den privilegerede information et kort tip, der forklarer en undgåelig fejl. Vi træner eleven til at matche lærerens forudsigelser for næste token uden at få tippet overrakt.
Begge dele betyder noget. Kun-korrektion-træning kan afsløre en genvej: lærer og elev kan blive enige ved at ignorere kontekst i stedet for at lære korrektionen. CE-leddet forankrer træningen til nyttig adfærd og hjælper med at modvirke enighed, der kommer fra at ignorere kontekst.
Den eftertrænede elev bliver derefter en modelmulighed i Computer. Nye sessioner fra live-brug passerer gennem de samme egnetheds- og privatlivsfiltre, før de går ind i endnu en runde af træningspipelinen.
Et eksempel: én session kan lære begge lektier
Dernæst gennemgår vi et konkret eksempel, der indeholder både imitation og korrektion.
Overvej en eventuel succesfuld session, hvor brugeren beder om en sammenligning af asyncio-ændringer i Python 3.13 ved hjælp af officiel dokumentation. Vores værktøjsdokumentation angiver, at search.web returnerer en liste over træffere, hver med et url-felt.
Modellen kører først en gyldig søgning efter én version som en del af indsamling af evidens til sammenligning, hvilket er en god adfærd at imitere.
Dog behandler det næste kodeeksekveringsopkald forkert denne liste som en ordbog. Kodetøjet returnerer TypeError: list indices must be integers or slices, not str. Da returtypen blev dokumenteret før opkaldet, er det en fejl, modellen burde have kunnet undgå. Et tip med det rigtige opkald kan genereres for at rette denne handling.
Hvordan træningen virker
Træningspipelinen har fire trin: vælg sessioner og bedøm deres udfald, identificer fejl og opret tip ud fra brugerfeedback og værktøjsfejl, generer forudsigelser for næste token fra både læreren og eleven, og træn modellen med et kombineret CE- og KL-tab.
Vælg sessioner, og bedøm derefter udfaldet
Prøveudtagnings-pipelinen trækker fra en træningsberettiget delmængde af virkelige Computer-sessioner, der serviceres af GLM 5.2. Fravalg af træning og pipelinens PII-relaterede udelukkelser anvendes, før eksempler til denne arbejdsproces vælges.
Den indledende screeningsproces vælger kandidater vurderet til 4 eller 5 på en fem-punkts skala for opgavesværhedsgrad af en LLM-dommer og opdeler dem i 2 grupper:
- Brugerfeedback-gruppen indeholder sessioner med en ægte brugeropfølgning eller et flag for medium-til-høj utilfredshed. Vi finder disse opfølgninger med høj hensigt særligt nyttige til læring: brugere prøver aktivt at fuldføre en opgave, og deres korrektioner fastslår nøjagtigt, hvad modellen overså.
- Gruppen med værktøjsfejl indeholder sessioner med mislykkede opkald markeret af regelbaserede kontroller, eksklusive genkendte infrastrukturfejl og afvist godkendelse.
To LLM-dommere vurderer derefter det endelige resultat i forhold til brugerens anmodning; begge dommere skal vende tilbage med en positiv dom for at mærke sessionen som "succesfuld". For tilfælde, der leverer artefakter, kan udfaldstrinnet rekonstruere og inspistere leveringen og falde tilbage på sine tekstbaserede bedømmelser, hvis det trin mislykkes. Sessioner, der klassificeres som ufuldstændige, såsom arbejde, der venter på brugeren, udelukkes.
Dette trin identificerer mulige kilder til læringssignaler; dog kan ikke enhver fejl tilskrives modellen, da nogle opstår som følge af tvetydige instruktioner eller infrastrukturfejl. Senere annotering bestemmer, hvilke kandidatfejl der faktisk er undgåelige og egnede til træning.
Find fejlene fra brugerfeedback
Overvej en eksempelsession i brugerfeedback-gruppen, hvor brugeren spørger: "How do I find my w3 on paychex". Modellen behandler "w3" som en skrivefejl for W-2, søger efter W-2-instruktioner og forklarer, hvordan man finder den formular. Brugerens opfølgning, "I meant the W-3 transmittal form," identificerer fejlen, selvom sessionen i sidste ende lykkes.
Klagen hjælper med at finde fejlen, men rodårsagen er den tidligere beslutning om at fortolke "w3" som W-2. Den oprindelige forespørgsel gør fejlen undgåelig: modellen kunne have bevaret W-3 eller bedt om afklaring. Det viser sig, at den sidste assistentrumgang før klagen kun er rodårsagen i omkring halvdelen af tilfældene.
Vores annoteringspipeline karterer årsag og virkning systematisk inden for hver brugerfeedback-session. Annotatoren screener først for et overset krav eller en hensigt understøttet af tidligere kontekst. Tre LLM-dommere identificerer derefter de ansvarlige omgange og kræver, at mindst to er enige om en given omgang. Nogle ganger etablerer en tidligere udtalelse udtrykkeligt kravet. I andre tilfælde gør ingen enkelt prioriteret udtalelse det, men flere dele af den foregående samtale gør i fællesskab den tilsigtede adfærd udledningsbar. Dette design lader dem forbinde en klage med en tidligere rodfejl i stedet for udelukkende at tilskrive den det sidste svar.
Før pipelinen accepterer et tip, kontrollerer den også, at dens korrigerende påstande følger af oplysninger, der var tilgængelige før den markerede omgang. Disse kontroller har til formål at reducere efterklogskabsbias, hvor en ny præference afsløret i klagen behandles som noget, modellen allerede burde have vidst.
I dette eksempel forteller tippet modellen, at den skal søge efter W-3-indberetningsformularen på Paychex i stedet for W-2, eller spørge, hvilken formular brugeren mener, hvis anmodningen er tvetydig. Korrektionen er rettet mod den tidligere fortolkning og søgebeslutning, ikke kun det endelige svar. Den oprindelige omgang forbliver uændret; annoteringen tilføjer is_bad_turn: true og et ikke-tomt tip.
Find fejlene fra værktøjsfejl
Overvej endnu en session i værktøjsfejl-gruppen med et søgeopkald, hvor agenten søger med recency_filter: "year", men værktøjet afviser det, fordi de tilladte værdier er "day", "week" eller "month". Dette er en tydelig skemakrænkelser.
Værktøjsfejl-stien bruger deterministiske regler for kendte fejl og modelbedømmelse for tvetydige tilfælde. En fejlmeddelelse alene er heller ikke nok til at give modellen skylden; en bedømt korrektion skal pege på noget, modellen kunne have vidst fra værktøjsskemaet, systeminstruktionerne eller den tidligere samtale.
Her navngiver tippet det mislykkede opkald, inkluderer valideringsfejlen og instruerer modellen i at bruge en tilladt værdi eller udelade feltet, hvis det er valgfrit.
To fremadrettede gennemgange (Two forward passes)
Når en tur er markeret, kører træneren det samme checkpoint to gange: én gang som lærer og én gang som elev. Læreren ser tippet; eleven gør det ikke.
Begge gennemgange bruger lærerstyring (teacher forcing), hvor vi fodrer modellen med den registrerede session i stedet for at lade den vælge nye tokens. Den fremadrettede gennemgang producerer stadig en fuld fordeling af næste token ved hvert trin, men den betinges altid af det faste præfiks fra optagelsen og ikke af udrulningstokens.
For søge-eksemplet tildeler den samme model en meget højere sandsynlighed til "month" og mindre til "year", når den får tippet. Træning bruger dette fordelingsskift som et blødt mål.
Lærerens forudsigelser er afkoblede eller stop-gradient: de leverer et mål, men modtager ikke en opdatering gennem lærergennemgangen. Efter elevens gennemgang opdaterer ét optimeringstrin den delte model.
Tabmålet (The loss function)
CE-tabet (The CE loss)
CE-tab behandler de registrerede tokens, der er valgt til imitation, som ground-truth-mål og straffer modellen for at tildele dem lave sandsynligheder. Dette skaber et hårdt imiteringsmål.
Ved tokenposition , lad være elevens sandsynlighed for token i det fulde vokabularium . Det registrerede næste token i svaret eller værktøjsopkaldet er , den one-hot-målfordeling er .
Krydsentropi (Cross-entropy) måler, hvor godt eleven forudsiger det registrerede token. Med et one-hot-mål reduceres det til den negative log-sandsynlighed tildelt .
CE-masken er , hvor tokenet skal imiteres, og ellers. Summering over de valgte positioner giver imiterings-tabet.
KL-tab (KL loss)
KL-tab (KL loss) bruger i stedet lærerens fulde sandsynlighedsfordeling for næste token som et blødt korrektionsmål. Lærerens kontekst inkluderer det aktuelle tip og eventuelle tidligere tip, der er bevaret i det pågældende træningssegment; elevens kontekst er altid tip-fri.
KL-masken er , hvor tokenet skal korrigeres, og ellers; CE- og KL-maskerne overlapper ikke. På disse positioner straffer fremadrettet KL uenighed mellem lærer og elev på tværs af hele vokabulariet:
Kombineret tab (Combined loss)
Begge led deler én nævner i stedet for at blive normaliseret separat. Denne nævner tæller det samlede antal tokens, der er valgt til imitation på tværs af den globale træningsbatch. Vægten styrer bidraget fra korrigerende træning i forhold til imitation.
Denne delte normalisering passer til vores træningsinfrastrukturs grænseflade med én nævner og gendanner standard SFT-tabet, når , hvilket forenkler baseline-sammenligninger. Fordi CE-tokens er meget mere udbredte end KL-tokens, undgår brugen af en delt nævner også at give individuelle KL-tokens uforholdsmæssigt store vægte i batches med få markerede tokens.
Anvendt på de tidligere eksempler modtager de omgange, der indeholder W-3/W-2-sammenblandingen og det ugyldige søgeopkald, KL. Andet umarkeret assistentindhold i en succesfuld session modtager stadig CE. Andet assistentindhold i en ufrugtbar session bevares som kontekst, men modtager hverken CE eller KL.
Hvad evalueringerne viser
Vores evalueringer besvarer to separate spørgsmål. For det første: Hjælper et tip faktisk modellen med at rette en fejl, når tippet er til stede? For det andet: Hjælper træning modellen med at undgå den fejl senere, uden tippet? Den første tester, om tip giver nyttige træningssignaler. Den anden tester, om modellen lærer af dem.
Tip kan styre modellen væk fra fejlene
Vi tester det første spørgsmål, før træningen kører, for at sikre, at tip faktisk kan styre modellen væk fra fejlene.
Brugerfeedback
Vi genskabte markerede brugerfeedback-omgange med og uden et tip ved hjælp af den samme GLM-5.2-basismodel ved temperatur nul. En blind dommer ser den senere klage, men hverken tippet eller hvilken tilstand der producerede svaret.
I W-3-eksemplet flytter tippet sandsynligheden for næste token mod "3" og væk fra "2" efter præfikset "W-".
På et større hold-out-sample på 40 omgange understøttet af udtrykkeligt angivet tidligere evidens stiger andelen, der bedømmes som rettet eller på sporet, fra 40,0 % uden et tip til 75,0 % med et. På yderligere 40 omgange understøttet af udledt hensigt stiger den fra 32,5 % til 80,0 %.
Værktøjsfejl
I eksemplet med søgeværktøjsfejl flytter et tip faktisk sandsynlighedsmasse fra year-tokenet til month-tokenet.
På et større hold-out-sample på 985 omgange genskaber vi hver omgang fire gange med og uden et tip ved hjælp af den samme basismodel. En blind dommer evaluerer, om hver genskabelse undgår den oprindelige fejl. Tip øger undgåelse af fejl fra 75,1 % til 93,7 %, en parret stigning på 18,6 procentpoint, og øger andelen, der foretager den korrigerede handling, fra 60,6 % til 82.3 %. Gevinster er størst ved fejl, som gentagen sampling alene har svært ved at rette.
Værktøjspålidelighed og brugertilbagemeldinger efter træning
Vi tester derefter, om den trænede model laver færre fejl uden at modtage hints. Vi evaluerer standardmodellen og forskellige post-trænede checkpoints på offline benchmark-opgaver og i live usersessioner og ser efter færre værktøjsfejl og mindre brugermisnøje.
Offline evaluering
Den offline evaluering bruger BrowseComp, Finch, WideSearch, DRACO, DSQA, SpreadsheetBench, HLE, et repræsentativt Computer-opgavesæt og kontrollerer for færdighedsindlæsning, dokumentgennemgang og indbyggede kilder. Vi måler andelen af værktøjsopkald, hvis resultater udtrykkeligt er markeret som fejl på tværs af evalueringstrajektorierne.
I disse evalueringer var den registrerede værktøjsfejlrate 2,79 % for standard GLM 5.2, 1,35 % for kun-RFT-checkpointet og 0,87 % for et RFT-plus-OPSD-checkpoint. Disse checkpoints blev trænet på forskellige data, så dette er ikke en matchet-data-ablering af OPSD. Opgaveniveauets benchmarkresultater var blandede, så færre værktøjsfejl alene oversættes ikke nødvendigvis til en bred forbedring af opgavesucces.
Onelinevaluering: GLM-5.2
For GLM-5.2 kørte vi to separate A/B-tests med omkring 100.000 brugere i hver betingelse. I den første havde et tidligt RFT-plus-OPSD-checkpoint en lidt lavere rater for værktøjsfejl end standard GLM-5.2, 2,82 % mod 2,94 %, men forskellen var ikke statistisk signifikant.
I den senere test sammenlignede vi to RFT-plus-OPSD-checkpoints: et tidligere (checkpoint et) og et senere (checkpoint to). Værktøjsopkaldsfejl faldt fra 2,24 % til 1,77 % af opkald med en registreret status. Dette var en statistisk signifikant 21,2 % relativ reduktion. Vi sammenlignede ikke direkte checkpoint to med standard GLM 5.2 online.
Brugertilbagemeldingernes resultater var mindre entydige. I det andet GLM-5.2-eksperiment var den gennemsnitlige sandsynlighed for stærk utilfredshed (middel eller høj) 2,58 % for checkpoint et og 2,54 % for checkpoint to, uden statistisk signifikant forskel.
Onlinetest: GLM-5.3
For GLM-5.3 sammenlignede vi et post-trænet kontrolpunkt direkte med standard-GLM-5.3. Fejl i værktøjskalder faldt fra 3,56 % til 2,38 % af kald med en registreret status, hvilket er en relativ reduktion på 33,04 %. MID+-raten, som er den gennemsnitlige estimerede sandsynlighed for middel eller høj utilfredshed, faldt fra 4,12 % til 3,41 %, hvilket er en relativ reduktion på 17,2 %. Begge reduktioner var statistisk signifikante.
Konklusion
Den centrale idé er at lære på beslutningsniveauet, ikke bare sessionen.
Et succesfuldt udfald kan skjule fejl, og en ufrugtbar session kan stadig afsløre, hvordan man kan forbedre sig. Vi bevarer nyttig adfærd fra succesfulde sessioner som et anker, bruger klager og værktøjsfejl til at identificere undgåelige fejl og træner modellen mod de forudsigelser, den foretager, når disse fejl og korrektioner gøres eksplicitte. Succes giver adfærd at bevare; fejl giver retning for forbedring.
Brug i den virkelige verden gør denne tilgang særligt nyttig. Virkelige brugere bringer mål, begrænsninger og arbejdsgange, der er svære at forudse i et syntetisk miljø. Deres korrektioner afslører krav, som modellen overså, mens værktøjsfejl blotlægger huller mellem det, modellen forsøgte, og det, miljøet tillader. Disse signaler supplerer udfaldsbaseret træning: i stedet for kun at spørge, om en opgave lykkedes, kan vi spørge, hvor modellen gik galt, og hvilke oplysninger der kunne have hjulpet den til at træffe en bedre beslutning.
Grænserne er lige så vigtige. Dommere kan tage fejl, og det at rette en tur garanterer ikke, at hele opgaven lykkes. Målet er ikke blot en agent, der kommer sig efter en rettelse. Det er en agent, der har brug for rettelser sjældnere.
Citering
@online{perplexity2026LearningFromRealWorldExperience,
author = {{Perplexity} and Senzeyu Zhang and Chuan Wang and Hang Wu and Hao Zhang and Yuan Liang and Yunfan Zhong and Phi Hoang and Claire Beamer and Jeremy Yang and Andrew Wilson and Denis Yarats},
title = {{Learning from real-world experience}},
date = {2026-09-21},
url = {https://www.perplexity.ai/hub/blog/learning-from-real-world-experience}
}