Hub documentation
Kompatibilitas Mundur dengan LFS
Kompatibilitas Mundur dengan LFS
Upload dari klien legacy / non‑Xet‑aware masih mengikuti jalur Git LFS standar, meskipun repo sudah didukung Xet. Setelah file diunggah ke LFS, proses latar belakang secara otomatis memigrasikan file tersebut ke penyimpanan Xet. Arsitektur Xet menyediakan kompatibilitas mundur untuk klien legacy yang mengunduh file dari repo yang didukung Xet dengan menawarkan jembatan Git LFS. Sementara klien yang mendukung Xet akan menerima informasi rekonstruksi file dari CAS untuk mengunduh file yang didukung Xet, klien legacy akan mendapatkan satu URL dari jembatan yang melakukan pekerjaan rekonstruksi file yang diminta dan mengembalikan URL ke sumber daya. Hal ini memungkinkan pengunduhan file melalui URL sehingga Anda dapat terus menggunakan antarmuka web Hub atau curl. Dengan adanya migrasi otomatis untuk unggahan file LFS dan klien lama yang terus mengunduh file dari repositori yang didukung Xet, maintainer dan bagian lain dari Hub dapat memperbarui pipeline mereka dengan kecepatan masing‑masing.
Penyimpanan Xet menyediakan transisi yang mulus untuk repositori Hub yang sudah ada. Anda tidak perlu mengetahui apakah backend Xet terlibat atau tidak. Repositori yang didukung Xet tetap menggunakan format file pointer Git LFS; penambahan Xet backed hash hanya ditambahkan ke antarmuka web sebagai kemudahan. Secara praktis, ini berarti repositori yang sudah ada dan repositori yang baru dibuat tidak akan terlihat berbeda jika Anda melakukan bare clone dari repositori tersebut. Setiap file besar (atau file biner) akan tetap memiliki file pointer yang sesuai dengan spesifikasi file pointer Git LFS.
Simetri ini memungkinkan klien yang tidak mendukung Xet (misalnya, versi lama dari huggingface_hub) untuk berinteraksi dengan repositori berbasis Xet tanpa kekhawatiran. Bahkan, dalam sebuah repositori, campuran file berbasis Git LFS dan Xet didukung. Backend Xet menunjukkan apakah sebuah file berada di penyimpanan Git LFS atau Xet, sehingga layanan hilir dapat meminta URL yang tepat dari S3, terlepas dari sistem penyimpanan mana yang menyimpan konten tersebut.
Penyimpanan Lama: Git LFS
Sistem penyimpanan lama di Hub, Git LFS, memanfaatkan banyak konvensi yang sama dengan repositori berbasis Xet. Backend Git LFS di Hub adalah Amazon Simple Storage Service (S3). Ketika Git LFS dipanggil, ia menyimpan isi file di S3 menggunakan hash SHA256 untuk memberi nama file guna akses di masa mendatang. Arsitektur penyimpanan ini relatif sederhana dan telah memungkinkan Hub untuk menyimpan file dari jutaan repositori model, dataset, dan spaces.
Keterbatasan utama Git LFS adalah pendekatannya yang berpusat pada file untuk deduplikasi. Setiap perubahan pada sebuah file, terlepas dari seberapa besar atau kecil perubahan tersebut, berarti seluruh file akan di-versikan - yang menimbulkan overhead signifikan dalam transfer file karena seluruh file diunggah (jika melakukan commit ke repositori) atau diunduh (jika menarik versi terbaru ke mesin Anda).
Hal ini menyebabkan pengalaman pengembang yang lebih buruk serta peningkatan penggunaan penyimpanan tambahan.
Update on GitHub