MTP-RDMA klasteris
Tensorinis 27B per du Mac'us Thunderbolt RDMA — ~70 → 90–100 tok/s.
Dev-storyIššūkis
Norėjome greito vietinio LLM savo kodavimo agentui (Pi) be debesies API, bet 27B modelis viename Mac dekoduoja tik ~60–73 tok/s.
Ką darėme
Sukūrėme savo nativų MTP (multi-token prediction) rantaimą ir paleidome MLX tensorinį lygiagretumą su paskirstytu šablonu per du Mac'us Thunderbolt RDMA linija: abu rankai vykdo tą pačią generavimo kilpą, o rank 0 aptarnauja OpenAI suderinamą API; Swift meniu juostos programa ir valdymo demonas patys atranda mazgus ir paleidžia porą prisijungus.
Rezultatas
Pora dekoduoja ~85–100 tok/s (mediana ~95 greitai / ~86 giliai) prieš ~60–73 solo, ir tai vietoje maitina mūsų Pi kodavimo agentą su TTFT ~0,5 s.
Dev-story straipsnis
Kaip buvo kuriamas projektas: MTP-RDMA klasteris
Su savo kodavimo agentu Pi dirbame visą dieną ir nenorėjome, kad jo protas būtų nuomojamas debesies API. Bet 27B modelis viename Mac dekoduoja tik ~60-73 tok/s: tinka, bet nėra greita. Įdomiausias klausimas — ar du eiliniai Mac, sujungti laidu, gali elgtis kaip vienas didesnis kompiuteris.
Skyriai
05
Moduliai
05
Stackas
MLX + Thunderbolt RDMA
Kodėl projektas atsirado
Norėjome greito vietinio LLM savo kodavimo agentui (Pi) be debesies API, bet 27B modelis viename Mac dekoduoja tik ~60–73 tok/s.
Su savo kodavimo agentu Pi dirbame visą dieną ir nenorėjome, kad jo protas būtų nuomojamas debesies API. Bet 27B modelis viename Mac dekoduoja tik ~60-73 tok/s: tinka, bet nėra greita. Įdomiausias klausimas — ar du eiliniai Mac, sujungti laidu, gali elgtis kaip vienas didesnis kompiuteris.
Ką sukūrėme
Sukūrėme savo nativų MTP (multi-token prediction) rantaimą ir paleidome MLX tensorinį lygiagretumą su paskirstytu šablonu per du Mac'us Thunderbolt RDMA linija: abu rankai vykdo tą pačią generavimo kilpą, o rank 0 aptarnauja OpenAI suderinamą API; Swift meniu juostos programa ir valdymo demonas patys atranda mazgus ir paleidžia porą prisijungus.
Sujungėme du Mac Thunderbolt laidu su RDMA ir išskaidėme 27B modelį per abu su MLX tensoriniu lygiagretumu. Abu rankai vykdo lygiai tą pačią generavimo kilpą, o rank 0 atveria OpenAI suderinamą API, su kuriuo kalba Pi. Swift meniu juostos programa ir mažas valdymo demonas patys atranda abu mazgus ir paleidžia porą prisijungus; jei vienas Mac atsakinėja solo, paspaudus Start Pair jis įsilieja į porą ir saugiai grąžina valdymą sustojus.
Pagrindiniai moduliai ir vartotojo kelias
Pora prieš solo išspręsta matavimu, ne nuojauta: solo ~60-73 tok/s, pora ~85-100 (mediana ~95 be mąstymo, ~86 su mąstymu). Laimi topologija — tas pats modelis, išskaidytas per du boksus — o ne didesnis modelis.
Įrenginių matrica, nusprendžianti, kuris Thunderbolt sietuvas su kuriuo kalba, išvedama iš gyvo sietuvo paleidžiant, tad niekas apie konkretų Mac neįrašyta kietai, o nauja mašina atkuria išmatuotą aplinką.
Patį serverio 27B suderinome ilgu A/B: mąstymo mažinimo etapas nukirto ~24-31% samprotavimo tokenų be išmatuojamo kokybės kritimo, o greitas ir protingas profiliai abu tarnauja iš vienos įkeltos svorių kopijos, tad profilio keitimas nekainuoja perkrovimo.
Sąmoningai neperrašėme rantaimo kita kalba: išmatavome, kad Python dalis dekode tik ~1-3%, o licencijos auditas parodė, kad perrašymas neduoda ir teisinės naudos. Du viliojantys tupikai, atmesti įrodymais, ne prielaida.
Šiluma pasirodė svarbi po ilgos apkrovos, tad ventiliatoriai atkuriami per demono lizdą, o ne programą žudančią CLI, o pataisytas skaičiavimo sluoksnis A/B palygintas su standartiniu ir paliktas, nes ~10-14% greitesnis.
Architektūra ir technologiniai sprendimai
Sukurta su MLX, Thunderbolt RDMA, Python.
Swift meniu juostos programa ir valdymo demonas (native Login Item, mazgų aptikimas, be SSH prode) valdo MLX tensorinį lygiagretumą per Thunderbolt RDMA; rank 0 tarnauja OpenAI suderinamą API, tarnavimas daugiamodalis (tekstas ir vaizdas), o hermetiniai mazgo savitestai ir greičio pariteto pakartojimai veikia kaip regresijos sargai su privačiu Python ir Swift CI.
Rezultatas ir pamokos
Pora dekoduoja ~85–100 tok/s (mediana ~95 greitai / ~86 giliai) prieš ~60–73 solo, ir tai vietoje maitina mūsų Pi kodavimo agentą su TTFT ~0,5 s.
Privatus, įrenginyje veikiantis 27B, dekoduojantis ~95 tok/s ir maitinantis mūsų Pi agentą su TTFT ~0,5s — be debesies, be mokesčio už tokeną, ir pora, kuri pati startuoja prisijungus. Esmė pasitvirtino: du Mac ant stalo, sujungti vienu laidu, jaučiasi kaip vienas greitesnis kompiuteris.
Susiję straipsniai
Toliau skaityti
Susijusios projektų istorijos
Šie projektai turi artimų technologinių arba produkto sprendimų, todėl padeda matyti, kaip tas pats principas veikia kitame kontekste.
Dev-storyCMS
Dinaminis CMS ant webedge-db — turinio tipai, medija, rolės ir vieša skaitymo API, maitinanti mūsų svetaines ir straipsnius.
Reaktyvi duomenų platforma
Reaktyvi duomenų platforma
Mūsų reaktyvus BaaS ant native SpacetimeDB — ~200k realaus laiko pristatymų/s, p95<20ms.
Dev-storyKalendoriaus rezervacijų platforma
Rezervacijos ant Vue 3 — laisvi laikai, užsakymai, laiškai ir Meet vaizdo nuorodos.
Turite panašią idėją?
Aptarti projektą