Filtrează articolele

AI

Migrarea platformei Hugging Face Hub de la Git LFS la Xet: O revoluție silențioasă în stocarea modelelor AI

Migrarea platformei Hugging Face Hub de la Git LFS la Xet: O revoluție silențioasă în stocarea modelelor AI
În peisajul în continuă evoluție al inteligenței artificiale, gestionarea eficientă a datelor a devenit la fel de crucială precum dezvoltarea algoritmilor înșiși. Hugging Face, platforma centrală pentru comunitatea AI globală, a realizat recent o tranziție istorică: migrarea de la Git Large File Storage (LFS) la un sistem inovator numit Xet. Această schimbare, care afectează peste un milion de utilizatori și petabytes de date, reprezintă nu doar o actualizare tehnică, ci o reimaginare completă a modului în care comunitatea open-source stochează, partajează și colaborează pe modele și seturi de date masive.

O migrare de anvergură, dar silențioasă

Astăzi, peste un milion de oameni pe Hub folosesc Xet. Din luna mai, acest sistem a devenit implicit pentru noii utilizatori și organizații, marcând un punct de cotitură în infrastructura platformei. Ceea ce face această migrare cu adevărat remarcabilă este discreția cu care a fost realizată. Cu doar câteva zeci de probleme raportate pe GitHub, fire de discuție pe forum și mesaje pe Discord, aceasta este probabil cea mai liniștită migrare de această magnitudine din istoria platformelor de dezvoltare. Dar cum a fost posibil acest lucru?

Echipa din spatele Xet a venit pregătită cu ani de experiență în construirea și susținerea „content addressed store” (CAS) și a clientului Rust care formează fundația sistemului. Fără aceste componente esențiale, Git LFS ar fi rămas probabil viitorul platformei. Totuși, adevărații eroi nesunători ai acestei migrări sunt punțile de compatibilitate și procesele de migrare în fundal. Împreună, aceste componente au permis o migrare agresivă a petabytes de date în doar câteva zile, fără a afecta funcționarea Hub-ului sau activitatea comunității. Acestea oferă liniștea necesară pentru a accelera și mai mult dezvoltarea în săptămânile și lunile următoare.

Punți și compatibilitate retroactivă: Prioritizarea utilizatorului

În primele zile de planificare a migrării la Xet, echipa a luat câteva decizii de design esențiale, conduse de angajamentul față de comunitate. Cea mai importantă dintre acestea a fost refuzul de a forța utilizatorii și echipele să își altereze imediat fluxul de lucru sau să descarce un client nou pentru a interacționa cu depozitele activate cu Xet. Această decizie, aparent simplă, a avut implicații profunde asupra arhitecturii sistemului.

În practică, acest lucru înseamnă că dacă un utilizator are un client conștient de Xet (cum ar fi hf-xet sau integrarea Xet cu huggingface_hub), încărcările și descărcările trec prin întregul stivă Xet. Clientul fie împarte fișierele în bucăți (chunks) folosind „content defined chunking” în timpul încărcării, fie solicită informații de reconstrucție a fișierului la descărcare. La încărcare, bucățile sunt trimise către CAS și stocate în S3. În timpul descărcărilor, CAS furnizează intervalele de bucăți pe care clientul trebuie să le solicite din S3 pentru a reconstrui fișierul local.

Totuși, pentru versiunile mai vechi ale huggingface_hub sau huggingface.js, care nu suportă transferuri de fișiere bazate pe bucăți, utilizatorii pot încă descărca și încărca în depozitele Xet, dar datele iau o rută diferită. Când un fișier susținut de Xet este solicitat de pe Hub prin endpoint-ul de rezoluție, „Git LFS Bridge” construiește și returnează un singur URL presemnat, mimând protocolul LFS. Această punte face apoi munca de reconstrucție a fișierului din conținutul stocat în S3 și îl returnează solicitantului. Acest mecanism ingenios asigură că nimeni nu este lăsat în urmă, indiferent de uneltele pe care le folosește.

Scalarea migrărilor: Testarea limitelor sistemului

În aprilie, echipa a testat limitele acestui sistem contactând utilizatorul „bartowski”, un membru proeminent al comunității, pentru a testa Xet. Cu aproape 500 TB distribuiți în 2.000 de depozite, migrarea lui bartowski a scos la iveală câteva puncte slabe ale sistemului, descriindu-se ca un „monstru cu trei capete”: probleme de concurență în xet-core, limitări de procesare a cererilor în CAS și specificații insuficiente ale nodurilor de lucru. Rezolvarea acestor probleme a însemnat atingerea fiecărui strat al infrastructurii – de la patch-uri în xet-core până la redimensionarea CAS și consolidarea specificațiilor nodurilor de lucru.

Aceleași lecții au alimentat migrarea celor mai mari utilizatori de stocare de pe Hub, precum RichardErkhov (1,7 PB și 25.000 de depozite) și mradermacher (6,1 PB și 42.000 de depozite). Prinput-ul CAS a crescut cu un ordin de mărime între primele și cele mai recente migrări la scară largă, demonstrând capacitatea sistemului de a învăța și de a se adapta rapid sub presiune.

Zero fricțiune, transferuri mai rapide

Când a început înlocuirea LFS, echipa a avut două obiective principale: să permită echipelor să își păstreze fluxurile de lucru existente și să tranziționeze organic la Xet, susținută de o infrastructură care urmărește obiectivul pe termen lung al unui sistem de stocare unificat. În loc să aștepte ca toate căile de încărcare să devină conștiente de Xet sau să forțeze o tăietură bruscă, echipa a ales să migreze Hub-ul la Xet imediat, cu un impact minim asupra utilizatorilor.

Procesul de „migrare în fundal” este cel care face posibilă această tranziție lină. De fiecare dată când un fișier trebuie să fie migrat de la LFS la Xet, un webhook este declanșat, împingând evenimentul către o coadă distribuită unde este procesat de un orchestrator. Acest orchestrator gestionează migrarea eficientă, asigurând sincronizarea a peste 500.000 de depozite cu stocarea Xet fără nicio întrerupere.

Xet pentru toți: Viitorul stocării AI

După o fază de testare cu utilizatori avansați în ianuarie și februarie, Xet a devenit implicit pentru noii utilizatori. Acum, echipa aduce Xet pentru toți, suportând unii dintre cei mai mari creatori de pe Hub, precum Meta Llama, Google, OpenAI și Qwen, în timp ce comunitatea continuă să lucreze neîntrerupt.

Odată cu actualizarea la cea mai recentă versiune a huggingface_hub, utilizatorii deblochează transferuri mai rapide imediat. Sistemul oferă deduplicare globală la nivel de conținut, ceea ce înseamnă că, deși cota de stocare raportată se bazează pe dimensiunea logică a fiecărui obiect nou, transferurile sunt mai rapide deoarece există mai puțin de trimis și primit. Această eficiență permite și întărește angajamentul de a oferi stocare publică gratuită comunității open source.

În încheiere, echipa Hugging Face anunță următorul pas major: open-sourcing-ul protocolului Xet și al întregii stive de infrastructură. Viitorul stocării și mutării datelor care se scalează pentru sarcinile de lucru AI este pe Hub, iar obiectivul este să î aducă la îndemâna tuturor. Această migrare nu este doar o schimbare tehnică, ci o demonstrație a modului în care infrastructura modernă poate evolua fără a lăsa pe nimeni în urmă.

Acest site folosește cookie-uri pentru a-ți oferi o experiență de navigare cât mai plăcută. Continuarea navigării implică acceptarea acestora.