Cadence je radno okruženje u kojem fino podešavamo i ocjenjujemo modele iza Oasis Speech. Ljudi i agenti za programiranje u njemu rade preko istog API-ja, svaka izmjena je verzionisana, a nijedan model ne stiže u proizvodnju a da ne prođe kapiju. Javni repozitorijum, github.com/usunrise88/cadence, je fork sistema koji koristimo u proizvodnji, pod MIT licencom.
Ova bilješka opisuje repozitorijum. To nije bilješka o mjerenju.
| Ukratko | Šta znači |
|---|---|
| Proizvodni fork | Javni repozitorijum je fork sistema u kojem treniramo Oasis Speech |
| MIT | Licenca javnog repozitorijuma |
| Jedan ugovor | Jedan OpenAPI fajl generiše server, web klijent, alate za agente i komandnu liniju |
| Treniranje, evaluacija, kapija | Model se registruje tek kad 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 mjeseca, za mnogo jezika, sa timom i uz pomoć agenata za programiranje, traži proces, a procesu treba mjesto na kojem živi. To mjesto bilježi odakle su podaci stigli, koji je recept napravio koji model, šta je bio evaluacioni skup i ko je odobrio pokretanje koje je koštalo dan GPU vremena.
Cadence je to mjesto. U njemu treniramo i poredimo Oasis Speech. Pokriva cijeli život jednog finog podešavanja: podatke, treniranje, evaluaciju, izvoz, uvođenje i proizvodnu petlju koja vraća nove podatke.
Dvije ideje
Prilagođen agentima
Agent za programiranje radi u Cadence-u preko istog API-ja kao i interfejs. Njegove izmjene stižu kao nacrti pripisani sesiji agenta. Radnje koje troše novac ili mijenjaju zajednički resurs čekaju odobrenje čovjeka. Svaki panel u interfejsu se osvježava 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 isti naziv svuda: mixes.edit je operacija, alat i komanda interfejsa.
Cadence verzioniše sve. Recepti žive u gitu. Skupovi podataka, modeli i zlatni evaluacioni 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 da pokrenu, preuzimaju poslove preko HTTP-a, šalju otkucaje, strujno šalju zapise i metrike i objavljuju kontrolne tačke dok treniraju.
- Cjevovodi. Cjevovodi su YAML u git repozitorijumu projekta, vezani za verzije koraka i provjereni prije pokretanja. Cadence ponovo koristi rezultate po hešu ulaza, pa se nepromijenjen korak ne izvršava dvaput.
- Pokretanja. Pokretanje je faza treniranja nad cjevovodom, sa kalibrisanim procjenama vremena, najboljih k kontrolnih tačaka, 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 preko Telegrama. Budžet u slučaju greške odbija radnju i u račun uključuje posao u redu čekanja, pa red jeftinih poslova ne može preći granicu.
- Operacije. Skladište sadržaja sa mjeračem diska i izbacivanjem, noćne rezervne kopije sa sedmičnim testom vraćanja, obavještenja i dnevni pregled.
Evaluacija
- Zlatni skupovi. Cadence zamrzava zlatne skupove iz skupova podataka označenih samo za evaluaciju, uz odobrenje, i svaki vezuje za normalizator ocjenjivanja. Provjerava svaki ulaz za treniranje u odnosu na zvuk svakog zlatnog skupa, pa evaluacioni klip ne može procuriti u treniranje.
- Evaluacije. Evaluacija propušta kontrolnu tačku i njenu osnovnu liniju kroz pravi dekoder za strujanje na svakom profilu kašnjenja. Ocjenjuje stope grešaka, zamjene, brisanja i umetanja, ponašanje pri 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 svoju kapiju može se registrovati. Onaj koji padne ostaje vani.
- Paneli. Izvještaj sa grafikonima, razlika između pokretanja, prikaz zvuka (talasni oblik, spektrogram, riječi), ručni testovi transkripcije uživo sa do tri modela jedan pored drugog (mikrofon, fajl ili isječak fajla; Cadence iz njih ništa ne čuva), eksperimenti i pretrage parametara, jezički paketi sa listama pojačavanja i porijeklo.
Šta slijedi
Planirano sljedeće: montiranje, unos, zamrzavanje i anotacija. Poslije njih dolaze izvoz, uvođenje u sjenci i kanarsko uvođenje, trijaža i rasporedi, što zatvara petlju od proizvodnih poziva nazad do podataka za treniranje. Plan razvoja je u repozitorijumu.
Gdje se uklapa
Cadence je strana treniranja u cijelom sistemu. 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 na kojima rade.