Cadence je radno okruženje u kojem fino podešavamo i evaluiramo modele iza Oasis Speecha. Ljudi i agenti za programiranje rade u njemu preko istog API-ja, svaka izmjena je verzionirana, a nijedan model ne stiže u produkciju bez prolaska kroz kapiju. Javni repozitorij, github.com/usunrise88/cadence, fork je sistema koji koristimo u produkciji, pod MIT licencom.
Ova bilješka opisuje repozitorij. Nije bilješka o mjerenjima.
| Ukratko | Šta to znači |
|---|---|
| Produkcijski fork | Javni repozitorij je fork sistema u kojem treniramo Oasis Speech |
| MIT | Licenca javnog repozitorija |
| Jedan ugovor | Jedna OpenAPI datoteka generiše server, web klijent, alate za agente i komandnu liniju |
| Treniranje, evaluacija, kapija | Model se registruje tek nakon što prođe svoju kapiju |
Zašto smo ga napravili
Prepoznavač govora se poboljšava finim podešavanjem na vrsti zvuka koju će čuti. Jednokratno to traži skriptu. Svakog mjeseca, za mnoge jezike, s timom i uz pomoć agenata za programiranje, to traži proces, a procesu treba mjesto na kojem živi. To mjesto bilježi odakle podaci potiču, koji je recept dao koji model, šta je bio evaluacijski skup i ko je odobrio pokretanje koje je koštalo dan GPU vremena.
Cadence je to mjesto. U njemu treniramo i upoređujemo Oasis Speech. Pokriva cijeli život finog podešavanja: podatke, treniranje, evaluaciju, izvoz, puštanje u rad i produkcijsku petlju koja vraća nove podatke.
Dvije ideje
Prilagođen agentima
Agent za programiranje radi u Cadenceu preko istog API-ja kao i sučelje. Njegove izmjene stižu kao nacrti pripisani sesiji agenta. Radnje koje troše novac ili mijenjaju zajednički resurs čekaju odobrenje osobe. Svaki panel u sučelju se ažurira uživo dok agent radi, pa osoba koja posmatra vidi kako se mješavina skupova podataka mijenja dok je agent uređuje.
Prvo API
Postoji jedan OpenAPI ugovor. Go server, web klijent, alati za agente (MCP) i komandna linija generišu se iz njega, pa radnja ima isto ime svugdje: mixes.edit je operacija, alat i komanda sučelja.
Cadence verzionira sve. Recepti žive u gitu. Skupovi podataka, modeli i zlatni evaluacijski skupovi su nepromjenjive verzije u registru. Svaka izmjena ima izvršioca, ključ idempotentnosti i red u reviziji.
Šta radi
Treniranje
- Radnici. GPU radnici prijavljuju šta mogu pokrenuti, preuzimaju poslove preko HTTP-a, šalju otkucaje, strujno šalju logove i metrike te objavljuju kontrolne tačke dok treniraju.
- Pipelinei. Pipelinei su YAML u git repozitoriju projekta, vezani za verzije koraka i validirani prije pokretanja. Cadence ponovo koristi rezultate prema hešu ulaza, pa se nepromijenjen korak ne izvršava dvaput.
- Pokretanja. Pokretanje je faza treniranja nad pipelineom, s kalibrisanim procjenama vremena, top-k kontrolnim tačkama, metrikama uživo te 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 s Telegrama. Budžet pri otkazu zatvara pristup i ubraja poslove u redu, pa red jeftinih poslova ne može preći granicu.
- Operacije. Pohrana sadržaja s mjeračem diska i izbacivanjem, noćne sigurnosne kopije sa sedmičnim testom vraćanja, obavijesti 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 ocjenjivanja. Provjerava svaki ulaz za treniranje na zvuk iz svakog zlatnog skupa, pa evaluacijski snimak ne može procuriti u treniranje.
- Evaluacije. Evaluacija propušta kontrolnu tačku i njenu osnovnu liniju kroz pravi streaming dekoder na svakom profilu latencije. Ocjenjuje stope grešaka, zamjene, brisanja i umetanja, ponašanje u strujanju i metrike entiteta. Ćelije se keširaju među projektima, a razlike nose uparene bootstrap intervale.
- Kapije. Kapija pretvara cijelu matricu u jednu presudu. Model koji prođe kapiju može se registrovati. Onaj koji ne prođe ostaje vani.
- Paneli. Izvještaj s grafikonima, razlika među pokretanjima, prikaz zvuka (talasni oblik, spektrogram, riječi), ručni testovi transkripcije uživo s do tri modela jedan do drugog (mikrofon, datoteka ili dio datoteke; Cadence iz njih ništa ne pohranjuje), eksperimenti i sweepovi, jezički paketi s listama pojačanja te porijeklo.
Šta slijedi
Planirano sljedeće: montiranje, unos, zamrzavanje i anotacija. Poslije njih dolaze izvoz, shadow i canary puštanje u rad, trijaža i rasporedi, koji zatvaraju petlju od produkcijskih poziva nazad do podataka za treniranje. Plan razvoja je u repozitoriju.
Gdje se uklapa
Cadence je strana treniranja u cijelom stogu. Oasis Speech je servis za prepoznavanje koji radi na modelima koje Cadence proizvodi, Polygon ocjenjuje agente koji ih koriste, a test opterećenja mjeri servere koji ih pokreću.