Új Storage Buckets a Hugging Face Hubon: gyorsabb és hatékonyabb adattárolás
A mesterséges intelligencia fejlesztése során egyre nagyobb kihívást jelent a folyamatosan változó, ideiglenes adatok kezelése. A Hugging Face legújabb fejlesztése, a Storage Buckets, pontosan erre kínál praktikus megoldást. Ez az új, S3-szerű objektumtároló rendszer lehetővé teszi, hogy a gépi tanulási munkafolyamatok közben keletkező checkpointok, optimalizátor állapotok vagy akár naplófájlok gyorsan és egyszerűen, verziókezelés nélkül legyenek tárolhatók és kezelhetők a Hubon.
Miért volt szükség a Storage Buckets bevezetésére?
A hagyományos verziókezelő rendszerek, mint a Git, hamar korlátokba ütköznek, ha nagy mennyiségű, folyamatosan változó adatot kell kezelni. Gondoljunk csak egy több gépből álló tanító klaszterre, ahol a checkpointok és optimalizátor állapotok rendszeresen frissülnek, vagy egy adatfeldolgozó pipeline-ra, amely iteratív módon dolgozza fel a nyers adatokat. Ezekben az esetekben a legfontosabb, hogy a tárolás gyors legyen, a fájlok könnyen felülírhatók és szinkronizálhatók, valamint a régi, már nem szükséges adatok egyszerűen törölhetők legyenek.
A Storage Buckets pontosan ezt a dinamikus, változó igényt szolgálja ki. Egy Bucket nem verziózott, így nem kell minden változtatást külön rögzíteni, de mégis elérhető a Hub összes megszokott jogosultsági rendszere, így a tároló lehet privát vagy nyilvános is, és programozottan is kezelhető egyedi azonosítóval.
Xet: a hatékony háttértechnológia
A Storage Buckets egyik legnagyobb újítása, hogy a háttérben a Hugging Face saját fejlesztésű, chunk-alapú tárolórendszere, a Xet működik. Ez a megoldás nem egyszerűen fájltömböket kezel, hanem az adatokat kisebb darabokra, ún. chunkokra bontja, és az ismétlődő részeket csak egyszer tárolja el – ez a deduplikáció.
Ez a megközelítés különösen előnyös a gépi tanulás világában, ahol például egy feldolgozott adatállomány nagyon hasonló a nyers adathoz, vagy egymás után készülő checkpointok között csak kisebb eltérések vannak. Így jelentősen csökken az adatátvitelhez szükséges sávszélesség, gyorsabb lesz a feltöltés és takarékosabb a tárhelyhasználat. Vállalati ügyfelek számára ez közvetlen költségmegtakarítást is jelent, hiszen a számlázás a deduplikált tárolóterület alapján történik.
Gyors és rugalmas adatkezelés a Hubon
A Storage Buckets nemcsak tárolóként funkcionál, hanem úgy épül be a Hugging Face Hubba, hogy az adatok globálisan elérhetők legyenek. Ugyanakkor a nagy teljesítményű, több régióban futó klaszterek esetében fontos, hogy az adatokat a számítási erőforrások földrajzi közelségében tároljuk. Erre szolgál a pre-warming funkció, amely előre „melegíti” az adatokat, vagyis a szükséges régióba másolja azokat, hogy a feldolgozás gyorsabb legyen és ne kelljen minden olvasáskor távoli adatközpontból várni.
A Hugging Face már az AWS-sel és a Google Cloud Platformmal működik együtt, a támogatott felhőszolgáltatók köre pedig folyamatosan bővül.
Kezdő lépések és integrációk
A Storage Buckets használata rendkívül egyszerű. A Hugging Face CLI segítségével néhány perc alatt létrehozhatunk egy Bucketet, ahová például a helyi checkpoint könyvtárunkat szinkronizálhatjuk. A szinkronizálás előtt egy úgynevezett dry-run opcióval megtekinthetjük a tervezett műveleteket, így elkerülhetőek a hibák. Az elkészült adattárolót természetesen a Hub webes felületén is böngészhetjük.
Programozók számára a huggingface_hub Python könyvtár biztosít API-hozzáférést, amivel teljesen automatizálható a Bucketek kezelése: létrehozás, szinkronizálás, listázás. Emellett JavaScript környezetben is elérhető a támogatás, így webalkalmazásokból vagy Node.js alapú szolgáltatásokból is könnyen használható ez az új tárolási lehetőség.
Rugalmas fájlrendszer-integráció és jövőbeli tervek
A Bucketek elérhetők az fsspec kompatibilis HfFileSystemen keresztül, így bármely olyan Python könyvtár, amely támogatja az fsspec-et (például pandas, Polars vagy Dask), közvetlenül tud velük dolgozni hf:// elérési útvonalakon keresztül, extra beállítások nélkül. Ez nagyban megkönnyíti a meglévő adatmunkafolyamatokba való beillesztést.
Fontos megjegyezni, hogy a Bucketek a „munkaszintet” képviselik, ahol az adatok még folyamatosan változnak. Amint egy eredmény stabil, azt érdemes áthelyezni egy verziózott modell- vagy adatrepozitoriumba, amelyeket a Hugging Face Hub hagyományosan kezel. A fejlesztési térkép szerint hamarosan megjelenik a funkció, amely közvetlenül át tudja mozgatni az adatokat a Bucketek és a verziózott tárak között, így még gördülékenyebb lesz a munkafolyamat a fejlesztéstől a publikálásig.
Ha többet szeretnél megtudni az új Storage Buckets részleteiről, érdemes elolvasni az erről szóló hivatalos bejegyzést, ahol további példákat és használati tippeket találhatsz.