Az új Fireworks-tömörítő közel felére csökkenti az RL-frissítések méretét

A Fireworks bemutatta az ARCv3 tömörítőt, amely a vállalat mérései szerint közel 50 százalékkal csökkenti a megerősítéses tanulás során továbbított BF16-súlyfrissítések méretét. A veszteségmentes eljárás a Fireworks Training API-n keresztül érhető el.
- Az ARCv3 átlagosan 0,19 százalékra tömörítette az eredeti BF16-súlyméretet.
- A Fireworks mérése szerint az új verzió közel 50 százalékkal kisebb deltákat készít az ARCv2-nél.
- A rekonstrukció veszteségmentes, bitről bitre megegyezik a tanító modelljével.
- A tömörítő már alapértelmezett a Fireworks Trainer SDK rolloutjaihoz.
- Az eljárás a régiók közötti, elosztott RL-folyamatok szinkronban tartását célozza.
A modell teljes másolata helyett csak a változás utazik
A Fireworks szeptember 23-án ismertette az ARCv3-at. A tömörítő a tanítást végző gépek és a megerősítéses tanulási, vagyis RL-feladatokat futtató gépek között továbbított súlyfrissítéseket kisebb csomagokká alakítja.
A vállalat korábbi megfigyelése szerint az egymást követő ellenőrzési pontok között egy modell BF16-súlyainak körülbelül 2 százaléka változik. Emiatt minden lépésben nem szükséges a teljes, akár 1 TB-os modell-ellenőrzési pontot elküldeni minden kiépített gépnek. Elég a változás tömörített leírását továbbítani, majd a céloldalon rekonstruálni a frissített modellt.
Az ARCv3 átlagosan az eredeti BF16-súlyméret 0,19 százalékának megfelelő delta-csomagot állított elő, szemben az ARCv2 0,36 százalékos értékével. A Fireworks szerint a visszaállítás veszteségmentes, a rollout oldalon létrejövő modell bitről bitre megegyezik a tanító által előállított változattal.
A ritka változásokat külön kezeli az ARCv3
A tömörítő felépítése arra támaszkodik, hogy a megváltozó BF16-súlyok többségénél csak a mantissza módosul, miközben az előjel és a kitevő változatlan marad. A kitevőt érintő változások ritkák, az előjel megfordulása pedig még ritkább a Fireworks által vizsgált RL-folyamatokban.
Az ARCv3 elhagyja a változatlan súlyértékeket. A csak mantisszát érintő módosításoknál kizárólag a mantissza bitjeit tárolja, a ritkább kitevő- és előjelváltozásokat pedig külön, a módosított mezőket egy blokkba rendezve kódolja. A céloldalon a két adatfolyamot az előző ellenőrzési pontra alkalmazza, majd ellenőrzőösszeggel igazolja, hogy a rekonstrukció megegyezik a tanító eredményével.
A rendszer minden tenzoron több általános célú tömörítési algoritmust is párhuzamosan lefuttat, és a legkisebb kimenetet választja. Ez több processzorteljesítményt igényel, a Fireworks szerint azonban a tanítógépeken jellemzően marad szabad CPU-kapacitás, miközben a tényleges tanítást a GPU-k végzik.
Az ARCv3 megelőzte a vizsgált alternatívákat
A Fireworks 1000, éles RL-folyamatokból származó súlyfrissítési deltán hasonlította össze az ARCv3-at három másik megoldással. Mindegyik BF16-adatokkal és veszteségmentesen működött, így az összevetés kizárólag azt mérte, hány bájtra van szükség ugyanannak a frissítésnek a leírásához.
- ARCv3: az eredeti BF16-súlyméret 0,19 százaléka.
- PULSESync: 0,35 százalék.
- ARCv2: 0,36 százalék.
- Hugging Face TRL draft delta-tömörítése: 0,67 százalék.
A Fireworks mérésében az ARCv3 készítette a legkisebb csomagokat. A vállalat szerint a következő legjobb megoldáshoz képest nagyjából feleakkora deltát ért el a vizsgált BF16-tenzorokon.
A régiók közötti RL előtt is megnyithatja az utat
A Fireworks által leírt rendszerben a tanító minden szelete párhuzamosan feltölti a tömörített súlydelta rá eső részét megosztott objektumtárolóba, például S3-ba. A Fireworks API ezután értesíti a régiókat az új frissítésről, a rollout-régiók pedig letöltik a szükséges darabokat, és helyben állítják vissza a modellt. A tanító közvetlenül nem kommunikál a rollout-flottával.
A kisebb átvitelek segíthetnek abban, hogy a rollout-gépek gyorsabban kövessék az aktuális irányelvet, és a vállalat szerint praktikusabbá váljon a számítási kapacitás három vagy négy régió közötti használata egyetlen, egy helyre telepített nagy fürt helyett. Az ARCv3 a Fireworks Trainer SDK-val futtatott rolloutoknál már alapértelmezett. Saját tanítót használó csapatok a fireworks-delta-compression csomagon keresztül integrálhatják, ha a rolloutokat a Fireworks biztosítja.
Fireworks AI: Every byte counts: ARCv3 and the case for cross-region RL


