A Hugging Face és a SkyPilot együttműködésének köszönhetően a felhasználók a Hubról származó modelleket és adatkészleteket közvetlenül bármilyen felhőalapú feladatba csatolhatják, kilépési díjak nélkül. Egyetlen hf:// URL-lel és egy meglévő HF_TOKEN-nal a csapatok több mint 20 felhőn, Kubernetes-en vagy helyszíni klaszteren keresztül tudnak adatokat olvasni és írni.
A két vállalat közösen áthidalta a tárolás és a számítás közötti szakadékot: a modellek és adatkészletek a Hubon maradnak, míg a SkyPilot futtatja a fejlesztést, tanítást vagy következtetést azon a klaszteren, amelyik GPU-val rendelkezik. Csatolj egy Hugging Face Bucket-et vagy bármely Hub repót egy SkyPilot feladathoz egyetlen hf:// URL-lel és a már meglévő HF_TOKEN-nal, majd indítsd el ott, ahol kapacitás van. A Hugging Face nem számít fel kilépési díjat, így az adatok olvasása ezekre a GPU-kra semmibe sem kerül egyetlen felhőn sem.
Íme az újdonságok:
A Hub adataid bármely feladatban. Csatolj egy Hugging Face Bucket-et (olvasás-írás) vagy bármely modell-, adatkészlet- vagy Space repót (csak olvasható) egy SkyPilot feladathoz egyetlen hf:// URL-lel és a meglévő HF_TOKEN-oddal, MOUNT vagy COPY segítségével.
Futtasd bármely GPU-n, bármely felhőn. A SkyPilot megtalálja a számítási kapacitást több mint 20 felhőn, Kubernetes-en, Slurm-on és helyszínen, így ugyanaz a futtatás azt a fenntartott vagy igény szerinti GPU-t használja, amelyik elérhető bármely szolgáltatónál.
Nincs kilépési díj az adatok olvasásáért. A Hugging Face Storage nem számít fel kilépési vagy CDN-díjakat, így bárhová is helyezi a SkyPilot a feladatot, a modellek és adatkészletek közvetlenül ugyanabból a bucketből olvashatók, felhőnkénti másolatok és kilépési számla nélkül.
Xet-alapú deduplikáció. A Bucket-ek Xet-re épülnek, így a növekményes ellenőrzőpontok és modellváltozatok csak a megváltozott darabokat tárolják és továbbítják.
Közösen fejlesztve. A Hugging Face és a SkyPilot közösen szállította ezt, és a Hugging Face csapat upstreamelte az hf-mount FUSE javításokat, amelyek lehetővé teszik a működést nem privilegizált konténerekben.
A Hugging Face Storage mostantól első osztályú SkyPilot háttérrendszer
A SkyPilot feladatok már most is olvasnak és írnak felhőobjektum-tárolókba, mint az S3, GCS, Azure, R2 és még sok más, helyi elérési útra csatolva. A Hugging Face Storage most csatlakozik ehhez a listához store: hf néven, a hf:// séma segítségével elérhetően:
file_mounts:
# A Hugging Face Bucket, read-write, for checkpoints, logs, processed data.
/checkpoints:
source: hf://buckets/my-org/qwen-sft
store: hf
mode: MOUNT # or COPY
# A model repo, mounted read-only.
/base-model:
source: hf://Qwen/Qwen3.5-4B
store: hf
mode: MOUNT
# A dataset repo, pinned to a revision, read-only.
/data:
source: hf://datasets/my-org/my-dataset@main
store: hf
mode: MOUNT
Ez az egyetlen hf:// séma lefedi a teljes életciklust: olvasd a modellt és az adatkészletet a repókból, írj ellenőrzőpontokat egy Bucket-be tanítás közben, tedd közzé a kész modellt vissza egy repóba, és húzd le a következtetési szerverekre, amikor kiszolgálsz. A legtöbb csapat már most is a Hubon tartja a modelljeit és adatkészleteit, így nincs szükség migrációs lépésre vagy új tárhelyfiók létrehozására.
A MOUNT a Hugging Face hf-mount FUSE háttérrendszerét használja, így egy bucket vagy repó helyi elérési útként jelenik meg a SkyPilot más FUSE csatolásai mellett, mint a gcsfuse, blobfuse2, rclone és goofys. A lekérés a fájlrendszer szintjén történik: amikor a kódod kiad egy read() hívást, az illesztőprogram csak azokat a bájtokat húzza le a Xet háttérrendszerből, amelyeket ténylegesen érintesz, így csak az adatok kerülnek át a hálózaton, amelyekhez hozzányúlsz. A hf-mount egy lemezgyorsítótárat tart fenn, így az ismételt olvasások helyben maradnak. Ez a lemezgyorsítótár az a viselkedés, amelyet a SkyPilot a többi háttérrendszerének a MOUNT_CACHED alatt biztosít, ahol egy sima MOUNT minden olvasást a bucketből streamel, anélkül, hogy bármit helyben tartana. Az hf tároló esetében a MOUNT és a MOUNT_CACHED ugyanúgy viselkedik, így bármelyik mód megtartja a gyorsítótárat.
Mivel az olvasások lusták, egy folyamat elkezdhet dolgozni egy nagy fájlon, mielőtt a teljes fájl letöltődött volna, ahelyett, hogy előbb egy teljes másolatra várna. Ez szinte azonnal elfoglalja a GPU-t, és a beérkező adatokon tanít, ahelyett, hogy tétlenül várna, amíg egy adatkészlet vagy ellenőrzőpont letöltődik. Ez leginkább az első epochban térül meg, amikor még semmi nincs gyorsítótárazva. A COPY a másik utat választja, és előre letölt a huggingface_hub-on keresztül, különleges követelmények nélkül.
A hitelesítés a már meglévő token. Állítsd be a HF_TOKEN-t a környezetedben, és add át a futtatásnak a --secret HF_TOKEN segítségével; a SkyPilot ezt használja a csatoláshoz, függetlenül attól, hogy a feladat melyik felhőn landol. Egyetlen token működik, akár AWS-en, GCP-n, Azure-on, Nebius-on, Lambda-n vagy a saját Kubernetes klasztereden landol a feladat, így nincs szükség felhőnkénti bucket kulcsok kezelésére.
Nincs kilépés: a tárolás nem diktálja, hol futtatsz
A GPU kapacitás ma már ritkán származik egyetlen helyről. Ahhoz, hogy elegendő H100 és H200 legyen, a csapatok egyszerre több szolgáltatónál tartanak fenntartott és lekötött kapacitást – egy blokk egy hiperskálázónál, egy klaszter egy neocloudon, esetleg egy helyszíni rack –, és ott futtatnak, ahol van allokációjuk. A SkyPilot erre épült: egyetlen feladatspecifikáció, ütemezve több mint 20 felhőn, Kubernetes-en és helyszínen, arra a fenntartott klaszterre landolva, amelyik szabad.
Az objektumtárolás eddig akadályt jelentett. Az objektumtárolók regionálisak és felhőnkéntiek, így egy másik szolgáltató adatközpontjában lévő GPU vagy következtetési szerver etetése azt jelenti, hogy vagy minden szolgáltató bucketében tartasz egy másolatot az adataidról, vagy fizetsz az áthúzásért. A legtöbb felhő kilépési díjat számít fel, körülbelül 0,09 USD/GB-ot az AWS-ről, amint az adatok elhagyják a hálózatukat, és gyakran a régión belül is egy felhőn belül. Egy alapmodell letöltése minden következtetési csomópontra, vagy egy adatkészlet több epochon keresztüli iterálása egy másik felhőn lévő klaszterről, jelentős számlát eredményez a már lefoglalt GPU-k tetején. A csapatok végül minden futtatást ahhoz a szolgáltatóhoz kötnek, amelyik az adatokat tárolja, és a többi kapacitásukat kihasználatlanul hagyják.
A Hugging Face Storage ezt a költséget ott veszi le az asztalról, ahol fáj: az olvasási oldalon. Mivel nincsenek kilépési vagy CDN-díjak, és a tárolás 12-18 USD/TB/hó, szemben az AWS S3 körülbelül 23 USD/TB plusz kilépési díjával, ugyanaz a bucket elérhető minden ilyen klaszterből, és az olvasás ingyenes, függetlenül attól, hogy hol futnak a GPU-k. A visszaírás továbbra is a számítási felhő szokásos kilépési díjába kerül, ugyanúgy, mint bármely felhőn kívüli tárolóba, de a legtöbb AI-munka esetében az olvasások dominálnak: egy adatkészlet streamelése több epochon keresztül, vagy modellsúlyok letöltése minden új tanítási vagy következtetési csomópontra. Tehát nem kötöd többé minden futtatást ahhoz a szolgáltatóhoz, amelyik az adatok másolatát tárolja.
Egy gyors benchmark
Néhány benchmark szám összegyűjtéséhez futtattunk egy kis finomhangolást: Qwen/Qwen3.5-4B a HuggingFaceH4/Multilingual-Thinking adatkészleten a TRL SFTTrainer-ével, a modellt csak olvashatóan csatolva a Hub repójából, és minden ellenőrzőpontot egy Hugging Face Bucket-be írva. Ugyanaz a SkyPilot YAML futott AWS-en, GCP-n és Lambda-n, csak a --infra változott. A SkyPilot minden feladatot oda helyezett, ahol GPU-k voltak szabadon, és mindhárom ugyanazt a bucket-et olvasta és írta.
# qwen-sft.yaml. Launch anywhere: sky launch qwen-sft.yaml --infra aws|gcp|...
resources:
accelerators: H100:1 # or whatever the cloud has
file_mounts:
/base-model:
source: hf://Qwen/Qwen3.5-4B # read-only, lazy-mounted from the Hub
store: hf
mode: MOUNT
/checkpoints:
source: hf://buckets/my-org/qwen-sft # read-write Bucket
store: hf
mode: MOUNT
run: |
python train.py --model /base-model --output_dir /checkpoints
Amit mértünk:
A modell ingyenesen betöltődött minden felhőn. A lusta olvasások csak azt húzzák le, amihez a from_pretrained hozzányúl, így körülbelül 30 másodperc alatt készen állt a tanításra, akár 500 MB/s sebességgel. Mivel a Hugging Face nem számít fel kilépési díjat, ez a letöltés semmibe sem került; ha a modell az S3-ban lett volna, minden olvasás egy másik felhőn lévő GPU-ra kilépési díjat számolt volna fel, körülbelül 0,09 USD/GB-ot az AWS-en.
Az ellenőrzőpontok közvetlenül a bucket-be streamelődtek akár 170 MB/s sebességgel, egyenként 8,43 GB súllyal, és a GPU példány után is megmaradtak.
Felhőnként az ellenőrzőpontok a következő sebességgel íródtak a bucket-be:
CloudGPUCheckpoint writeAWS (us-east-2)L40S~168 MB/sGCP (us-central1)L4~123 MB/sLambda (us-west-3)H100~112 MB/s
Xet-alapú tárolás: deduplikáció ellenőrzőpontokhoz és modellváltozatokhoz
A Hugging Face Bucket-ek Xet-re épülnek, amely tartalom által meghatározott darabolást használ a fájlok körülbelül 64 KB-os darabokra bontásához, és minden egyedi darabot egyszer tárol. Mivel a határok a tartalmat követik, egy szerkesztés csak az általa érintett darabokat változtatja meg, a többit pedig már tároltként ismeri fel. Ez több helyen is megtérül:
Növekményes és adapter ellenőrzőpontok. Amikor rétegeket fagyasztasz le, adaptereket tanítasz, vagy egyébként a legtöbb súlyt érintetlenül hagyod a mentések között, csak a megváltozott darabok töltenek fel a teljes ellenőrzőpont helyett.
Modellváltozatok, amelyek egy alapot osztanak meg. A finomhangolt és kvantált változatok, amelyek ugyanabból az alapmodellből indulnak, a legtöbb darabot megosztják a lemezen, így egy új változat tárolása csak az eltérő darabokba kerül.
Gyorsabb ellenőrzőpontok. Mivel a feltöltő csak új darabokat küld, az ellenőrzőpontok írása sokkal gyorsabb lehet, mint a teljes fájl újraírása.
Az integráció mostantól elérhető. A kezdéshez lásd a SkyPilot dokumentációját a Hugging Face Storage-ról. A csapat azon dolgozik, hogy az hf-mount FUSE nélkül is működjön, így a FUSE támogatás nélküli rendszerek felhasználói is élvezhetik a lusta olvasások előnyeit.



