Hub documentation

LFS ile Geriye Dönük Uyumluluk

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

LFS ile Geriye Dönük Uyumluluk

Eski / Xet farkındalığı olmayan istemcilerden yapılan yüklemeler, depo zaten Xet destekli olsa bile standart Git LFS yolunu izlemeye devam eder. Dosya LFS'e yüklendikten sonra, bir arka plan süreci dosyayı otomatik olarak Xet depolamasını kullanacak şekilde göçertir. Xet mimarisi, Xet destekli depolardan dosya indiren eski istemciler için geriye dönük uyumluluk sağlamak üzere bir Git LFS köprüsü sunar. Xet farkındalığı olan bir istemci, Xet destekli dosyayı indirmek için CAS'tan dosya yeniden oluşturma bilgilerini alırken, eski bir istemci köprüden, istenen dosyanın yeniden oluşturulması işini yapıp kaynağın URL'sini döndüren tek bir URL alır. Bu, Hub'ın web arayüzünü veya curl'i kullanmaya devam edebilmeniz için dosyaların bir URL üzerinden indirilmesine olanak tanır. LFS dosya yüklemelerinin otomatik olarak göçertilmesi ve eski istemcilerin Xet destekli depolardan dosya indirmeye devam etmesi sayesinde, bakımcılar ve Hub'ın geri kalanı boru hatlarını kendi hızlarında güncelleyebilir.

Xet depolama, mevcut Hub depoları için kesintisiz bir geçiş sağlar. Xet altyapısının devrede olup olmadığını bilmek gerekmez. Xet destekli depolar Git LFS işaretçi dosya biçimini kullanmaya devam eder; Xet backed hash eklemesi yalnızca bir kolaylık olarak web arayüzüne eklenir. Pratikte bu, mevcut depoların ve yeni oluşturulan depoların bare clone işlemi yapıldığında hiçbir farklılık göstermeyeceği anlamına gelir. Her büyük dosya (veya ikili dosya), Git LFS işaretçi dosya spesifikasyonuyla eşleşen bir işaretçi dosyasına sahip olmaya devam edecektir.

Bu simetri, Xet farkındalığı olmayan istemcilerin (ör. huggingface_hub'ün eski sürümleri) Xet destekli depolarla endişe duymadan etkileşim kurmasını sağlar. Gerçekte, bir depo içinde Git LFS ve Xet destekli dosyaların karışımı desteklenir. Xet arka ucu, bir dosyanın Git LFS'te mi yoksa Xet depolamasında mı olduğunu belirtir; böylece içerik hangi depolama sisteminde tutulursa tutsun, aşağı akış hizmetleri S3'ten doğru URL(ler)i talep edebilir.

Eski Depolama: Git LFS

Hub’daki eski depolama sistemi olan Git LFS, Xet destekli depolarla aynı birçok kuralı kullanır. Hub’ın Git LFS arka ucu Amazon Simple Storage Service (S3)’tür. Git LFS çağrıldığında, dosya içeriklerini gelecekteki erişim için dosyaya ad olarak SHA256 özetini kullanarak S3’te saklar. Bu depolama mimarısı nispeten basittir ve Hub’ın milyonlarca model, veri seti ve space deposunun dosyalarını saklamasına olanak tanımıştır.

Git LFS'in temel kısıtlaması, dosya odaklı yinelenen veri kaldırma (deduplication) yaklaşımıdır. Bir dosyada yapılan herhangi bir değişiklik, bu değişikliğin boyutu ne olursa olsun, dosyanın tamamının sürümlenmesine neden olur; bu da dosya aktarımlarında önemli bir yük oluşturur, çünkü dosyanın tamamı yüklenir (bir depoya commit atılıyorsa) veya indirilir (en güncel sürüm makinenize çekiliyorsa).

Bu durum, geliştirici deneyiminin kötüleşmesine ve ek depolama alanlarının artmasına yol açar.

Update on GitHub