Cadence je radno okruženje u kojem fino podešavamo i ocenjujemo modele iza Oasis Speecha. Ljudi i agenti za programiranje u njemu rade preko istog API-ja, svaka izmena je verzionisana, a nijedan model ne stiže u produkciju bez prolaska kroz kapiju. Javni repozitorijum, github.com/usunrise88/cadence, jeste fork sistema koji koristimo u produkciji, pod MIT licencom.
Ova beleška opisuje repozitorijum. Nije beleška o merenjima.
| Ukratko | Šta to znači |
|---|---|
| Fork produkcije | Javni repozitorijum je fork sistema u kojem treniramo Oasis Speech |
| MIT | Licenca javnog repozitorijuma |
| Jedan ugovor | Jedna OpenAPI datoteka generiše server, veb klijent, alate za agente i komandnu liniju |
| Trening, evaluacija, kapija | Model se registruje tek pošto prođe svoju kapiju |
Zašto smo ga napravili
Prepoznavač govora se poboljšava finim podešavanjem na zvuku kakav će čuti. Jednom to traži skriptu. Svakog meseca, za mnogo jezika, s timom i uz pomoć agenata za programiranje, to traži proces, a procesu treba mesto gde živi. To mesto beleži odakle potiču podaci, koji je recept dao koji model, šta je bio skup za evaluaciju i ko je odobrio izvršavanje koje je koštalo dan GPU vremena.
Cadence je to mesto. U njemu treniramo i upoređujemo Oasis Speech. Pokriva ceo životni vek finog podešavanja: podatke, trening, evaluaciju, izvoz, puštanje u rad i produkcionu petlju koja vraća nove podatke.
Dve ideje
Agent-native
Agent za programiranje u Cadenceu radi preko istog API-ja kao i interfejs. Njegove izmene stižu kao nacrti pripisani sesiji agenta. Radnje koje troše novac ili menjaju zajednički resurs čekaju odobrenje čoveka. Svaki panel u interfejsu se ažurira uživo dok agent radi, pa osoba koja posmatra vidi kako se menja mešavina skupova podataka dok je agent uređuje.
API-first
Postoji jedan OpenAPI ugovor. Go server, veb klijent, alati za agente (MCP) i komandna linija generišu se iz njega, pa radnja ima isto ime svuda: mixes.edit je operacija, alat i naredba u interfejsu.
Cadence verzioniše sve. Recepti žive u gitu. Skupovi podataka, modeli i zlatni skupovi za evaluaciju su nepromenljive verzije u registru. Svaka izmena ima izvršioca, ključ idempotentnosti i red u evidenciji.
Šta radi
Trening
- Radnici. GPU radnici prijavljuju šta mogu da pokrenu, preuzimaju zadatke preko HTTP-a, šalju otkucaje, strimuju logove i metrike i objavljuju kontrolne tačke dok treniraju.
- Cevovodi. Cevovodi su YAML u git repozitorijumu projekta, vezani za verzije koraka i validirani pre izvršavanja. Cadence ponovo koristi rezultate prema heš vrednosti ulaza, pa se nepromenjen korak ne izvršava dvaput.
- Izvršavanja. Izvršavanje je faza treninga nad cevovodom, s kalibrisanim procenama vremena, top-k kontrolnim tačkama, metrikama uživo, pauziranjem i nastavkom.
- Budžeti. Svaki projekat i svaka sesija agenta ima GPU budžet. Radnja preko budžeta čeka odobrenje, u panelu Odobrenja ili iz Telegrama. Budžet se pri grešci zatvara i računa zadatke u redu čekanja, pa red jeftinih zadataka ne može zbirom preći ograničenje.
- Operacije. Skladište sadržaja s meračem diska i izbacivanjem, noćni bekapi sa nedeljnim testom vraćanja, obaveštenja i dnevni pregled.
Evaluacija
- Zlatni skupovi. Cadence zamrzava zlatne skupove iz skupova podataka označenih samo za evaluaciju, uz odobrenje, i vezuje svaki za normalizator ocenjivanja. Proverava svaki ulaz za trening u odnosu na zvuk svakog zlatnog skupa, pa klip za evaluaciju ne može procureti u trening.
- Evaluacije. Evaluacija propušta kontrolnu tačku i njenu osnovnu liniju kroz pravi strimujući dekoder na svakom profilu latencije. Ocenjuje stope grešaka, zamene, brisanja i umetanja, ponašanje u strimovanju i metrike entiteta. Ćelije se keširaju između projekata, a razlike nose uparene bootstrap intervale.
- Kapije. Kapija pretvara celu matricu u jednu presudu. Model koji prođe kapiju može se registrovati. Onaj koji padne ostaje napolju.
- Paneli. Izveštaj s grafikonima, razlika između izvršavanja, prikaz zvuka (talasni oblik, spektrogram, reči), ručni testovi transkripcije uživo s do tri modela jedan pored drugog (mikrofon, datoteka ili deo datoteke; Cadence iz njih ništa ne čuva), eksperimenti i pretrage parametara, jezički paketi s listama pojačanja i poreklo.
Šta je sledeće
Planirano sledeće: montiranja, unos, zamrzavanje i anotacija. Za njima dolaze izvoz, puštanje u rad u senci i kao kanarinac, trijaža i rasporedi, koji zatvaraju petlju od produkcionih poziva nazad do trening podataka. Plan razvoja je u repozitorijumu.
Gde se uklapa
Cadence je strana treninga u celom sistemu. Oasis Speech je servis za prepoznavanje koji radi na modelima koje Cadence proizvodi, Polygon ocenjuje agente koji ih koriste, a test opterećenja meri servere na kojima rade.