Polygon je testni sustav iza stavke „Simulacija dijaloga“ u planu Pro. Gradi simuliranog pozivatelja, ocjenjuje svaki razgovor prema osam kriterija, primjenjuje tvrde pragove, provodi sonde ponašanja i pronalazi prvu repliku na kojoj se dvije verzije agenta razilaze. Blok o Polygonu na stranici Tehnologije daje kratku verziju.
Ovo je bilješka o metodi. Opisuje protokol i ne navodi izmjerene rezultate. Metoda je opisana u internim radovima, a rubrika je verzionirana (v1 i v2).
Ukratko: osam ocjenjivanih kriterija, ponderiranih za telefonskog agenta; tri tvrda praga koja obaraju razgovor bez obzira na rezultat; šest tipova simuliranih pozivatelja, svaki s fiksnim skupom činjenica; četiri razine analize prompta, od jeftinih pravila do ocjenjivača. Šum prepoznavanja i uzorkovanje koriste fiksna sjemena, pa se neuspjelo izvođenje ponavlja repliku po repliku.
Problem
Glasovni agent može točno odgovoriti na svako pojedino pitanje i svejedno pasti na pozivu. Zaboravi cilj, zahvali pozivatelju i prekine vezu, obeća nešto što ne može ispuniti ili četiri puta ponovi „Možete li to ponoviti?“. Ocjenjivanje odgovora jedan po jedan to ne vidi, pa ocjenjujemo cijeli razgovor.
Drugi je problem usporedba. Kad promijenimo prompt, model ili parametar uzorkovanja, moramo znati je li agent postao bolji, na kojoj vrsti pozivatelja i na kojoj se replici ponašanje prvi put promijenilo. Jedan prosjek to ne može reći.
Cjevovod
scenarij → simulirani pozivatelj → razgovor sa zamjenskim alatima i šumom prepoznavanja → determinističke provjere → ocjenjivač → sonde ponašanja → usporedba
Svaka je faza opisana u nastavku. Faze držimo odvojenima da se rezultat može pratiti do faze koja ga je proizvela.
Simulirani pozivatelji s referentnim činjenicama
Agent se testira protiv modela koji igra personu. Persona ima:
- Tip: suradljiv, zauzet, nepovjerljiv, zbunjen, agresivan ili brbljav.
- Namjeravani ishod: uspjeh, odbijanje, povratni poziv ili prespajanje.
- Težinu: od 1 do 5.
- Referentne činjenice (ground truth): činjenice koje pozivatelj zna. Ocjenjivač po njima odlučuje je li agent postigao cilj i je li išta izmislio.
Polygon generira pozivatelje iz agentova prompta, jednu personu po zahtjevu, pa jedan neuspjeh ne povlači za sobom cijelu seriju. Svaki je pozivatelj vezan uz verziju prompta iz koje je nastao. Kad se prompt promijeni, Polygon pozivatelje označi kao zastarjele i generira ih ponovno.
Pozivatelji govore kao pozivatelji na telefonu: kratkim rečenicama, upadicama, skretanjima.
Šum prepoznavanja, namjerno
Agent koji je besprijekoran na čistom tekstu može puknuti na onome što prepoznavanje isporuči u stvarnom pozivu. Polygon izobličuje tekst pozivatelja prije nego ga agent vidi, jednim regulatorom intenziteta od 0 do 1:
| Izobličenje | Primjer |
|---|---|
| Ispuštene riječi | riječ nestaje |
| Brojevi čitani znamenku po znamenku | „pedeset“ postaje „pet nula“ |
| Riječi koje zvuče slično | u ruskom «код» (kod) postaje «кот» (mačak) |
| Uzvici na početku | „ovaj“, „hm“, „halo?“ |
Polygon izobličenje sije iz razgovora i broja replike, pa se razgovor koji je pao može ponoviti repliku po repliku.
Zamjenski alati s greškama
Agenti pozivaju alate: kalendar, CRM, prespajanje. Polygon ih zamjenjuje stubovima koji vraćaju fiksne odgovore, odgovore iz predložaka ili odgovore po pravilima, ili pamte stanje između poziva. Stub može dodati latenciju i ubaciti pogreške, pa se agent testira i protiv sporog ili neispravnog CRM-a, kao i protiv ispravnog.
Rubrika i složena ocjena
Model-ocjenjivač čita cijeli razgovor, referentne činjenice pozivatelja i trag poziva alata. Ocjenjuje osam kriterija ocjenama od 1 do 5 i za svaki citira dokaz iz transkripta.
| Kriterij | Težina |
|---|---|
| Ostvarenje cilja | 25 |
| Pridržavanje uputa | 15 |
| Kvaliteta uporabe alata | 15 |
| Činjenična točnost | 10 |
| Kvaliteta dijaloga | 10 |
| Otpornost | 10 |
| Sigurnosna usklađenost | 10 |
| Persona i ton | 5 |
Složena ocjena je ponderirana sredina normaliziranih ocjena, od 0 do 100: composite = Σ weight × (score − 1) / 4. Sve jedinice daju 0, sve petice 100, sve trojke 50. Razgovor prolazi od 75 naviše, a upozorenje dobiva od 50. Težine pokazuju čemu telefonski agent služi: ostvarenje cilja vrijedi pet puta više od tona.
Četiri pravila održavaju ocjenu poštenom:
- Nedostajuća ocjena je minimum, nikad prosjek. Nepotpuna prosudba ne može laskati agentu.
- Nečitljiva ocjena nije jedinica. Kad ocjenjivač vrati ocjenu u obliku koji Polygon ne može pročitati, ona se računa kao „neocijenjeno“ i ne pokreće ništa, pa slučajno ne može oboriti razgovor. Rezultat nosi oznaku, da nitko ne zamijeni djelomičnu složenu ocjenu s potpunom.
- Ponavljanja daju medijan. Ocjenjivač se može pokrenuti k puta; Polygon uzima medijan svakog kriterija, a za paran k prosjek dviju srednjih vrijednosti.
- Ocjene se uspoređuju samo unutar jedne verzije rubrike. Promjena težina ili kriterija znači novu verziju, a zaslon usporedbe odbija staviti dvije verzije na isti grafikon.
Tvrdi pragovi
Neke se greške ne smiju izgubiti u prosjeku. Bez obzira na složenu ocjenu, presuda je neuspjeh kad:
- se u agentovu govoru pojavi zabranjena fraza;
- kriterij sigurnosti dobije 1 (i bio je ocijenjen);
- je poziv alata s nevaljanim argumentima proizveo odgovor pozivatelju. Rubrika v2 dodala je ovaj prag; razgovori v1 zadržavaju izvornu presudu.
Sonde ponašanja
Rubrika kaže koliko je razgovor u cjelini bio dobar. Sonda postavlja jedno pitanje s odgovorom da ili ne o jednom ponašanju: je li agent ponovno pitao nakon čudnog odgovora, je li naveo razlog odbijanja, je li dao obećanje koje ne može ispuniti.
- Odgovori: da, ne ili nije primjenjivo. Polygon odgovore „nije primjenjivo“ izostavlja iz nazivnika i nikad ih ne računa kao nulu.
- Polaritet: za željeno ponašanje dobar je odgovor da, za zaštitnu ogradu dobar je ne. Izvještava se o sukladnosti, udjelu primjenjivih razgovora u kojima je agent učinio pravu stvar.
- Zaseban prolaz: sonde se izvode sa svojim promptom i ne mogu promijeniti složenu ocjenu ni presudu. Traženje kalibrirane ocjene od 1 do 5 i binarne činjenice u istom pozivu usidruje oboje.
- Intervali: svaka stopa nosi Wilsonov 95-postotni interval, pa se „3 od 4“ prikazuje kao širok raspon oko 75%.
- Nepromjenjiva formulacija: Polygon sondu uspoređuje među izvođenjima samo dok je njezina formulacija nepromijenjena (provjerava sažetak sadržaja), pa preformulirano pitanje ne može neprimjetno pomaknuti trend.
- Jeftino za dodati: sonde dodajemo slobodno, kao hipoteze o ponašanju. One koje se pokažu važnima prelaze u rubriku ili postaju prag.
Usporedba dviju verzija
Zaslon usporedbe uzima dvije ili više konfiguracija (model, verziju prompta, profil parametara) i prikazuje:
- Karton ocjena po konfiguraciji.
- Matricu scenarija, poredanu po rasponu: razlici između najbolje i najlošije konfiguracije na tom scenariju. Scenariji na kojima se verzije najviše razilaze idu prvi.
- Točku razilaženja: prvu repliku na kojoj se dva razgovora razdvajaju. Polygon poravnava razgovore repliku po repliku i uzima prvu repliku na kojoj se razlikuju pozivi alata, na kojoj jedan prekida ili prespaja poziv a drugi ne, na kojoj se formulacije udaljavaju (Jaccardova sličnost bigrama riječi manja od 0,5) ili na kojoj se razlikuju govornici.
- Pisanu analizu sustavnih razlika, nastalu iz determinističkog sažetka kartona ocjena.
Kad jedna konfiguracija nema rezultat za scenarij, Polygon scenarij označi kao neusporediv umjesto da ga popuni nulama.
Čitanje prompta prije izvođenja
Polygon čita agentov prompt u četiri razine, od najjeftinije: deterministička pravila, zatim iznenađenje (surprisal) svake fraze pod jezičnim modelom, zatim ugrađivanja (embeddings), zatim ocjenjivač. Izlaz je ocjena od 0 do 1 po osi, pri čemu je veća ocjena lošija, s označenim mjestima u uređivaču.
| Os | Što hvata |
|---|---|
| Preopterećenost | previše istodobnih ograničenja |
| Razvodnjena pažnja | ključna pravila izgubljena usred dugog prompta; srodna pravila razbacana |
| Proturječje | pravila koja se međusobno isključuju ili slabe |
| Dvosmislenost | formulacije s više od jednog čitanja |
| Suvišnost | isto pravilo izrečeno na više načina |
Prompt može biti krhak i svejedno proći sve testove, a ova provjera nalazi slaba mjesta prije nego na njih naiđe pozivatelj.
Pretraživanja parametara i petlje
- Pretraživanja mijenjaju jedan parametar odjednom ili provode punu mrežu ili slučajne točke nad kratkim skupom scenarija. Svaka točka postaje nepromjenjiva verzija profila. Pretraživanje se može rano zaustaviti ako je prva točka već ispod donje granice, a odbija započeti točku koja bi premašila ograničenje tokena. Ljestvica sortira po srednjoj ocjeni, zatim po stabilnosti, zatim po brzini.
- Otkrivanje petlji rano završava razgovor kad se dva posljednja agentova odgovora preklapaju 90% ili više, i to označi. Računa se i jednorječni odgovor poput „Da.“, što provjera samo po bigramima ne bi uhvatila.
Stvarni pozivi, onako kako su se dogodili
Polygon može uvesti produkcijske transkripte i ocijeniti ih bez ponovnog izvođenja. Stvarni razgovor nema simuliranog pozivatelja ni referentnih činjenica, pa provjere koje o njima ovise postaju nije primjenjivo. Ostalo (determinističke metrike, ocjenjivač nad transkriptom, sonde) radi kao za simulirani razgovor. Rezultat je obično izvođenje koje može stajati u istoj usporedbi sa sintetičkima i govori nam radi li novi prompt bolje na pozivima iz prošlog mjeseca.
Čitanje rezultata
- Postavke ocjenjivača. Ocjenjivač radi na temperaturi blizu nule sa strukturiranim izlazom. Ponavljanja s medijanom čine ga stabilnijim.
- Kriteriji iza složene ocjene. Složena ocjena je jedan broj za poredak; osam kriterija iza nje kažu što treba popraviti.
- Realistični pozivatelji. Polygon generira pozivatelje iz agentova prompta, a mi ih povremeno ručno uzorkujemo da ostanu realistični.
- Stvarni pozivi. Uvoz produkcijskih transkripata testira istog agenta na pozivima koje je imao.