Grai · Studiu
Și de ce cifrele publicate de furnizori nu se pot compara între ele — nici măcar când poartă același nume.
Un furnizor publică „sub 300 ms". În același articol dă și măsurătoarea proprie: 0,9–1,4 secunde. Nu e o contradicție. Sunt două mărimi diferite, cu același nume.
„Sub 300 ms" măsoară inferența modelului pe hardware ideal — de la ultimul eșantion intrat în rețea până la primul ieșit. Cealaltă cifră pornește cronometrul de la server, uneori fără rețea, aproape niciodată cu tamponul de redare inclus. Niciuna nu e greșită. Doar că nu măsoară același lucru, iar diferența e mai mare decât întreaga diferență dintre furnizori.
Un laborator independent a publicat o analiză care ajunge la aceeași concluzie pe partea de recunoaștere: modelele nu devin doar mai bune, ci și optimizate pentru testele în sine. Unele sisteme cu scoruri de top reproduc transcrieri greșite din setul de referință, chiar și când audio-ul spune altceva — adică au memorat testul, nu au învățat sarcina.
Metoda lor de detecție e elegantă: taie numerele din audio și verifică dacă modelul le produce oricum. Dacă da, nu a auzit — și-a amintit.
Toate cinci sunt greșeli pe care le-am făcut noi, în propriile măsurători, și le-am prins ulterior. De aceea sunt scrise aici cu exemplu, nu ca listă abstractă.
Am publicat intern „455 ms până la răspuns". Cifra pornea cronometrul după recunoaștere. Măsurat de la ultimul sunet pe care îl scoate omul — singurul punct pe care îl simte omul — cifra reală era 1235 ms până la primul sunet și 2667 ms până la răspuns. De cinci ori mai mare.
Întrebarea care sparge orice comunicat: include decizia de sfârșit de tură? La noi, acea decizie singură e 586 ms — mai mult decât întreaga cifră pe care o publicasem.
Multe sisteme scot un „îhî" sau o punte de umplere care acoperă așteptarea. Dacă cronometrul se oprește la primul sunet, cifra măsoară cât de repede sistemul scoate un zgomot, nu cât de repede răspunde. Diferența poate depăși o secundă.
Standardul de facto pe seturile publice scrie numerele în litere înainte de comparație. Un model care aude „două mii douăzeci și șase" în loc de „2026" nu e penalizat.
La noi, diferența e măsurabilă: enunțurile cu cifre dau 30,37% normalizat și 36,94% brut — 6,6 puncte ascunse de normalizare. Pentru un agent care ia ore, prețuri și numere de telefon, aia e fix partea care contează. De aceea publicăm ambele coloane.
Două pagini de furnizor publică cifre pentru aceleași două modele terțe și nu coincid: 12,31% față de 13,0% pe unul, 33,89% față de 35,4% pe celălalt. Între două „FLEURS română" publicate există 0,7–1,5 puncte de diferență doar din partiție și normalizare.
Consecința practică: orice diferență sub două puncte între doi furnizori nu înseamnă nimic fără rularea pe același material.
Un model care primește fișierul întreg, offline, cu 1,5 miliarde de parametri, într-un centru de date, nu rezolvă aceeași problemă ca unul care scoate text parțial în timp ce omul încă vorbește, pe procesorul din birou, cu 0,6 miliarde.
Am făcut greșeala asta pe propriul nostru site: am pus cele două cifre alături fără condițiile de măsurare. Comparația ieșea împotriva noastră, și era la fel de nevalidă ca una care ar fi ieșit în favoarea noastră.
Etaloanele existente măsoară recunoașterea și, mai rar, latența. Aproape nimic din ce face un agent vocal să fie utilizabil nu are un etalon public.
Cât de des taie omul la mijlocul frazei, și cât de mult îl face să aștepte degeaba. Două erori opuse, care nu se pot optimiza simultan — deci o singură cifră nu spune nimic fără cealaltă.
Cât durează oprirea, și — mult mai important — ce rămâne în memoria modelului după. Nimeni nu publică asta.
Ce face sistemul când n-a înțeles a doua oară la rând. Un etalon de WER nu vede diferența dintre un sistem care cere reformularea și unul care inventează.
Ore, prețuri, numere de telefon, date. Sunt sub 20% din cuvinte și peste jumătate din valoarea practică a unei conversații de afaceri.
Când doi oameni vorbesc deodată, intenționat sau nu. Toate seturile publice sunt monolog.
Din etaloanele de conversație existente, niciunul nu are română. Cifrele pe care le citim despre română vin toate din seturi de recunoaștere pe enunțuri citite.
Publicăm toate măsurătorile cu eșantionul, geometria, intervalul de încredere și comanda de reproducere. Marcăm ce e măsurat de noi și ce e declarat de alții. Punem condițiile lângă fiecare cifră. Și publicăm cifrele care ne fac să arătăm rău — pentru că un etalon din care lipsesc rezultatele proaste nu e un etalon, e o broșură.
Toate măsurătorile, cu eșantion, geometrie și interval de încredere — inclusiv cele în care pierdem.