Hub documentation
Xet Depolama Kullanımı
Xet Depolama Kullanımı
Python
huggingface_hub'un Xet destekli sürümüne erişmek için en son sürümü kurmanız yeterlidir:
pip install -U huggingface_hub
huggingface_hub 0.32.0 sürümünden itibaren bu işlem ayrıca hf_xet paketini de yükler. hf_xet paketi, huggingface_hub’ü Xet altyapısının Rust istemcisi olan xet-core ile entegre eder.
transformers veya datasets kütüphanelerini kullanıyorsanız, zaten huggingface_hub kullanılıyor demektir. huggingface_hub sürümü >= 0.32.0 ise, başka bir işlem yapmanıza gerek yoktur.
huggingface_hub sürümünün >= 0.30.0 ve < 0.32.0 aralığında olduğu durumlarda, hf_xet paketinin açıkça kurulması gerekir:
pip install -U hf-xet
Ve tamam! Artık hem yükleme hem de indirme işlemleri için Xet çakışma giderme avantajlarından yararlanırsınız. huggingface_hub sürümü 0.30.0’tan düşük olan ekip üyeleri, LFS köprüsü tarafından sağlanan geriye dönük uyumluluk sayesinde depoları yine de yükleyebilir ve indirebilir.
Daha ayrıntılı kullanım belgeleri için şunların huggingface_hub belgelerine başvurun:
Git
Git kullanıcıları, Git Xet eklentisini indirip kurarak Xet'in avantajlarından yararlanabilir. Kurulumdan sonra, Hub depolarını Git ile yönetmek için standart iş akışlarını kullanmanız yeterlidir - ek bir değişiklik gerekmez.
Ön koşullar
macOS veya Linux (amd64 veya aarch64) üzerinde kurulum
Terminalde aşağıdaki komutu kullanarak bir kurulum betiğiyle yükleyin (curl ve unzip gerektirir):
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/huggingface/xet-core/refs/heads/main/git_xet/install.sh | shVeya Homebrew kullanarak yükleyin:
brew install git-xet
git xet installYükleme doğrulamak için şunu çalıştırın:
git xet --versionWindows (amd64)
winget kullanarak:
winget install git-xetKurucu kullanma:
git-xet-windows-installer-x86_64.zipdosyasını indirin (buradan erişilebilir) ve arşivden çıkarın.msikurucu dosyasını çalıştırın ve yönergeleri izleyin.
Manuel kurulum:
git-xet-windows-x86_64.zipdosyasını indirin (buradan erişilebilir) ve arşivi açın.- Çıkarılan
git-xet.exedosyasını birPATHdizinine yerleştirin. - Bir terminalde
git xet installkomutunu çalıştırın.
Yükleme doğrulamak için şunu çalıştırın:
git xet --versionGit Xet Kullanımı
Platformunuza kurulduktan sonra, Git Xet'i kullanmak, Hub'ın standart Git iş akışlarını izlemekten ibarettir.
Tüm ön koşulların yüklendiğinden ve yapılandırıldığından emin olun, Hub'daki depolarla çalışmak için kurulum talimatlarını izleyin, ardından değişikliklerinizi commit edin ve Hub'a push yapın:
# Create any files you like! Then...
git add .
git commit -m "Uploading new models" # You can choose any descriptive message
git pushArka planda, büyük dosyaları doğrudan Xet depolamasına yüklemek için Xet protokolü çağrılır ve parça düzeyinde kopya azaltma gücü sayesinde yükleme hızları artırılır.
macOS veya Linux'ta kaldırma
Homebrew kullanılarak:
git xet uninstall brew uninstall git-xet
Eğer kurulum betiğini (MacOS veya Linux için) kullandıysanız, terminalinizde şunu çalıştırın:
git xet uninstall
sudo rm $(which git-xet)Windows'ta kaldırma
winget kullandıysanız:
winget uninstall git-xetKurulum aracını kullandıysanız:
- Ayarlar -> Uygulamalar -> Yüklü uygulamalar bölümüne gidin
- “Git-Xet” öğesini bulun.
- Bağlam menüsünde bulunan “Uninstall” seçeneğini seçin.
Eğer manuel olarak kurduysanız:
- Bir terminalde
git xet uninstallkomutunu çalıştırın. git-xet.exedosyasını, başlangıçta yerleştirildiği konumdan silin.
Öneriler
Xet, Hub’ın tüm iş akışlarıyla kusursuz bir şekilde bütünleşir. Ancak, Xet depolamasından en iyi şekilde yararlanmak için göz önünde bulundurabileceğiniz birkaç adım vardır.
Python ile yüklerken veya indirirken:
hf_xetpaketinin yüklü olduğundan emin olun: Xet, Git LFS için optimize edilmiş eski istemcilerle geriye dönük uyumlu kalmaya devam etse de,hf_xetilehuggingface_hubentegrasyonu, büyük dosyalarda optimal parça tabanlı performans ve daha hızlı yineleme sağlar.- Adaptif eşzamanlılık varsayılan olarak açıktır:
hf_xet, gerçek zamanlı ağ koşullarına göre paralel aktarım akışlarının sayısını otomatik olarak ayarlar — yapılandırma gerekmez. Varsayılan ayarlar, herhangi bir ince ayar yapılmadan çoğu ağ yolunu doyurur. - İndirme tamponları sistem belleğiyle ölçeklenir:
hf_xet1.7.0 sürümünden itibaren, indirme tamponlarıhf_xetiçin kullanılabilir belleğe göre boyutlandırılır; bu, konteyner bellek sınırlarını da içerir. Küçük konteynerler indirmeler için daha az bellek kullanırken büyük makineler daha fazla bellek kullanır ve bunun için herhangi bir ayar gerekmez. İndirme Tamponları bölümüne bakın. - Gelişmiş ayarlar: İnce taneli kontrol için,
HF_XET_FIXED_DOWNLOAD_CONCURRENCYveHF_XET_FIXED_UPLOAD_CONCURRENCYeşzamanlılığı sabit bir değere sabitlemenize ve adaptif denetleyiciyi atlamaya izin verir. Tüm seçeneklerin listesi içinhf_xet'in ortam değişkenleri bölümüne bakın.
Git veya Python'da yükleme veya indirme sırasında:
- Sık ve artımlı commit'lerden yararlanın: Xet'in parça düzeyindeki kopya kaldırma özelliği sayesinde modelleri veya veri setlerini güvenle artımlı olarak güncelleyebilirsiniz. Yalnızca değişen parçalar yüklendiğinden sık commit'ler hem hızlı hem de depolama açısından verimlidir.
- .gitattributes Dosyasında Spesifik Olun: Xet veya LFS için desenler tanımlarken, küçük dosyaların gereksiz yere büyük dosya depolamasına yönlendirilmesini önlemek için kesin dosya uzantıları (ör.
*.safetensors,*.bin) kullanın. - Topluluk erişimini önceliklendirin: Xet, büyük dosya aktarımlarının verimliliğini ve ölçeğini önemli ölçüde artırır. Deponuzu toplam boyutunu (veya bireysel dosyaların boyutunu) azaltacak şekilde yapılandırmak yerine, işbirlikçilerin ve topluluk kullanıcılarının ihtiyaç duydukları içeriği kolayca bulup alabilmeleri için yapılandırın.
Ortam Değişkenleri
Hem hf_xet hem de Git Xet, xet-core tarafından desteklenir ve ortam değişkenleri aracılığıyla yapılandırılabilir. Aşağıdaki tablolar, ince ayar için bireysel değişkenleri listeler. Çoğu kullanıcının bunlardan herhangi birini değiştirmesi gerekmez — varsayılanlar, çoğu ağ yolunu otomatik olarak doyuracak şekilde ayarlanmıştır.
HF_XET_HIGH_PERFORMANCE=1, birden fazla ayarı tek seferde düzenleyen bir kolaylık bayrağıdır (eşzamanlılık sınırları, tampon boyutları ve paralel dosya limitleri). Yüksek bant genişliğine ve hızlı diske sahip makineler için tasarlanmıştır.hf_xet1.7.0 sürümünden itibaren, bu bayrağın ayarladığı tampon boyutlarıhf_xetiçin kullanılabilir belleğe dayanmaktadır (bkz. İndirme Tamponları), bu nedenle artık 64 GB RAM gerektirmez ve kendiniz ayarladığınız herhangi bir değişken bu bayrağa öncelik kazanır. Önceki sürümlerde, bu bayrağı yalnızca en az 64 GB RAM'e sahip makinelerde kullanın.
Genel
Çoğu kullanıcının ilk başvurduğu yüksek düzey bayraklar.
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_HIGH_PERFORMANCE (takma ad HF_XET_HP) | kapalı | Ağ ve CPU kullanımını artırmak için eşzamanlılığı, tampon boyutlarını ve paralel dosya sınırlarını tek seferde yükselterek konfor sağlayan bayrak. Yukarıdaki notu inceleyin. |
HF_XET_CACHE | $HF_HOME/xet | Xet'in verileri yerel olarak önbelleğe aldığı dizin (indirilen parçalar ve yinelenen veri parçaları). HF_HOME değişkenine öncelik verir. |
Adaptif Eşzamanlılık
Varsayılan olarak xet-core adaptif eşzamanlılık kullanır — paralelliği gerçek zamanlı ağ koşullarına göre dinamik olarak ayarlar. Bu, çoğu durumda ihtiyaç duyulması beklenmeyen gelişmiş ayarlardır. Aşağıdaki değişkenler adaptif denetleyicinin davranışını kontrol eder:
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_CLIENT_ENABLE_ADAPTIVE_CONCURRENCY | true | Adaptif eşzamanlılık kontrolünü etkinleştirin veya devre dışı bırakın. Devre dışı bırakıldığında, eşzamanlılık başlangıç değerinde kalır. |
HF_XET_CLIENT_AC_INITIAL_UPLOAD_CONCURRENCY | 1 | Eşzamanlı yükleme akışlarının başlangıç sayısı. HP modu: 16. |
HF_XET_CLIENT_AC_INITIAL_DOWNLOAD_CONCURRENCY | 1 | Eş zamanlı indirme akışlarının başlangıç sayısı. HP modu: 16. |
HF_XET_CLIENT_AC_MIN_UPLOAD_CONCURRENCY | 1 | Yükleme eşzamanlılığı için alt sınır. HP modu: 4. |
HF_XET_CLIENT_AC_MIN_DOWNLOAD_CONCURRENCY | 1 | İndirme eşzamanlılığı için alt sınır. HP modu: 4. |
HF_XET_CLIENT_AC_MAX_UPLOAD_CONCURRENCY | 64 | Yükleme eşzamanlılığı için üst sınır. HP modu: 124. |
HF_XET_CLIENT_AC_MAX_DOWNLOAD_CONCURRENCY | 64 | İndirme eşzamanlılığı için üst sınır. HP modu: 124. |
HF_XET_CLIENT_AC_TARGET_RTT | 60s | Hedef gidiş-dönüş süresi. Tam bir aktarım için tahmin edilen gidiş-dönüş süresi bu değerin altında olduğu sürece eşzamanlılık artar. |
HF_XET_CLIENT_AC_MAX_HEALTHY_RTT | 90s | Kabul edilebilir maksimum gidiş-dönüş süresi. Bu süreden daha uzun süren aktarmalar, adaptif denetleyici tarafından başarısız olarak sayılır. |
HF_XET_CLIENT_AC_HEALTHY_SUCCESS_RATIO_THRESHOLD | 0.8 | Denetleyicinin eşzamanlılığı artırdığı başarı oranı eşiği. |
HF_XET_CLIENT_AC_UNHEALTHY_SUCCESS_RATIO_THRESHOLD | 0.5 | Denetleyicinin eşzamanlılığı azalttığı başarı oranı eşiği. |
HF_XET_CLIENT_AC_LOGGING_INTERVAL_MS | 10000 | Eşzamanlılık durumunun günlüğe kaydedildiği aralık (ms cinsinden). |
Eşzamanlılığı sabit bir değere sabitlemek için (uyarlayıcı denetleyiciyi atlayarak)
HF_XET_FIXED_UPLOAD_CONCURRENCYveHF_XET_FIXED_DOWNLOAD_CONCURRENCYpratik takma adlarını kullanın. Bunlar, başlangıç, minimum ve maksimum eşzamanlılığı aynı değere ayarlar.
Ağ ve Yeniden Deneme
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_CLIENT_RETRY_MAX_ATTEMPTS | 5 | Başarısız istekler için maksimum yeniden deneme sayısı. |
HF_XET_CLIENT_RETRY_BASE_DELAY | 3000ms | Yeniden denemeler arasındaki temel gecikme (üstel geri çekilme ile). |
HF_XET_CLIENT_RETRY_MAX_DURATION | 360s | Bir isteği yeniden denemek için harcanacak maksimum toplam süre. |
HF_XET_CLIENT_CONNECT_TIMEOUT | 60s | TCP bağlantı zaman aşımı. |
HF_XET_CLIENT_READ_TIMEOUT | 120s | HTTP yanıtları için okuma zaman aşımı. |
HF_XET_CLIENT_IDLE_CONNECTION_TIMEOUT | 60s | Boşta bekleyen bağlantıların kapatılmasından önceki zaman aşımı. |
HF_XET_CLIENT_MAX_IDLE_CONNECTIONS | 16 | Havuzdaki boşta bekleyen bağlantıların maksimum sayısı. |
Veri Transferi
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_DATA_MAX_CONCURRENT_FILE_INGESTION | 8 | Yükleme sırasında eşzamanlı olarak işlenen dosyaların maksimum sayısı. HP modu: 100. |
HF_XET_DATA_MAX_CONCURRENT_FILE_DOWNLOADS | 8 | Eş zamanlı olarak indirilen dosyaların maksimum sayısı. |
HF_XET_DATA_INGESTION_BLOCK_SIZE | 8mb | Dosya alımı sırasında okunan blokların boyutu. |
HF_XET_DATA_PROGRESS_UPDATE_INTERVAL | 200ms | İlerleme çubuklarının ne sıklıkla güncellendiği. |
HF_XET_DATA_PROGRESS_UPDATE_SPEED_SAMPLING_WINDOW | 10s | İlerleme raporlamasında aktarım hızı ölçümlerini birleştirmek için kullanılan zaman penceresi. |
Tamponları İndir
Bu ayarlar, indirme sırasında bellek kullanımını kontrol eder.
hf_xet 1.7.0 sürümünden itibaren, üç DOWNLOAD_BUFFER değişkeninin varsayılan değerleri, hf_xet'in kullanabileceği bellek miktarına dayanır. Bu, makinenin RAM'idir; bu değer daha düşükse, konteynerin bellek sınırıdır. Her bir varsayılan değer, bu belleğin bir kesridir ve tabloda gösterilen asgari ile azami değerler arasında tutulur. HP modu, aynı asgari ve azami değerlerle, kesrin iki katını kullanır. Örneğin, 4 GB ile sınırlı bir konteyner, 1 GB sınırıyla yaklaşık 256 MB'lık bir tampon alır; 32 GB'lık bir makine ise önceki sürümlerdeki gibi yaklaşık 2 GB'lık tampon ve 8 GB'lık sınırı alır.
Daha önceki sürümler veya kullanılabilir bellek miktarını tespit edemeyen herhangi bir sürüm, 2gb, 512mb ve 8gb (16gb, 2gb ve 64gb HP modunda) sabit varsayılan değerlerini kullanır. Kullanılan değerler, hf_xet günlük dosyası başlatıldığında bu dosyaya yazılır (bkz. Kayıt Tutma).
| Ortam Değişkeni | Varsayılan | HP Modu | Açıklama |
|---|---|---|---|
HF_XET_RECONSTRUCTION_MIN_RECONSTRUCTION_FETCH_SIZE | 256mb | 1gb | Yeniden yapılandırma istekleri için minimum getirme boyutu. |
HF_XET_RECONSTRUCTION_MAX_RECONSTRUCTION_FETCH_SIZE | 8gb | 16gb | Yeniden yapılandırma istekleri için maksimum getirme boyutu. |
HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_SIZE | Belleğin 1/16'sı, 64mb ile 16gb | Hafızanın 1/8'i | Paylaşılan temel tampon bütçesi. |
HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_PERFILE_SIZE | belleğin 1/64'ü, 16mb ile 2gb | Belleğin 1/32'si | Aktif dosya başına ek tampon bütçesi. |
HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_LIMIT | Hafızanın 1/4'ü, 264mb ile 64gb | Belleğin 1/2'si | Toplam indirme tampon belleği için sert sınır. HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_SIZE bu değerin üzerine ayarlanırsa, sınır eşleşmek üzere yükseltilir. |
HF_XET_DISABLE_MEMORY_DERIVED_DOWNLOAD_BUFFERS | kaldırıldı | — | Mevcut bellekten tampon boyutlandırma yerine sabit varsayılanları kullanmak için 1 olarak ayarlayın. |
HF_XET_RECONSTRUCTION_TARGET_BLOCK_COMPLETION_TIME | 15m | — | Bir ön yükleme bloğunun tamamlanması için hedef süre. İndirmeler sırasında ne kadar verinin önceden yükleneceğini belirlemek için kullanılır. |
HF_XET_RECONSTRUCTION_MIN_PREFETCH_BUFFER | 1gb | — | İndirme sırasında tahmini tamamlanma süresinden bağımsız olarak önceden alınmış olarak tutulacak minimum veri miktarı. |
Shard Önbelleği
shard cache, disk üzerinde Xet önbellek dizini altında, yinelenen veri indeksini (zaten yüklenmiş parçaları tanımlayan “shard”lar) tutar. Daha büyük bir önbellek, istemcinin daha fazla önceki veriyle yinelenen verileri ayıklamasına olanak tanır; böylece yeniden yüklenen bayt sayısı azalır.
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_SHARD_CACHE_SIZE_LIMIT | 16gb | Disk üzerindeki shard önbelleği için yumuşak sınır. Önbellek, bir çalıştırmanın başlangıcında bu boyuta indirgenir, ancak tek bir uzun süreli oturum içinde bu sınırı aşarak büyüyebilir. Kabaca bir kılavuz olarak, boyutu X olan bir önbellek, yaklaşık 1000 × X büyüklüğündeki verilerle (16 GB → ~16 TB) çakışma giderme (dedup) yapar. Çok büyük depolar için daha iyi çakışma giderme sağlamak üzere bu değeri artırın; önbelleğin büyüyerek diskinizi doldurma riski varsa düşürün. İnsan okunabilir bir boyut (ör. 32gb) veya ham bayt sayısı kabul eder. |
HF_XET_SHARD_CHUNK_INDEX_TABLE_MAX_SIZE | 64mb | Bellek içi parça dizininin maksimum boyutu. Bu değere ulaşıldığında, yinelenenlerin kaldırılması için ek parçalar yüklenmez. |
HF_XET_SHARD_CACHE_SUBDIR | shard-cache | Xet önbellek dizini içinde shard önbelleği için alt dizin. |
Parça Önbelleği
chunk önbelleği, indirilen bayt aralıklarını (chunk'ları) diskte saklar ve böylece üst üste binen veriler depolamadan yeniden alınmaz. Bu özellik, ilişkili modellerin veya veri setlerinin tekrar tekrar indirilmesi ya da yeni revizyonlarının oluşturulması durumlarında en faydalıdır.
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_CHUNK_CACHE_SIZE_BYTES | 0 (devre dışı) | Yerel parça önbelleğinin boyutu. hf_xet Python paketi, önbellek varsayılan olarak devre dışı olarak gelir; etkinleştirmek için bir bayt sayısı (ör. 10 GB için 10000000000) ayarlayın veya devre dışı bırakmak için 0 kullanın. Bu değişkenin Git Xet v0 sürümünde bir etkisi yoktur. |
Kayıt Tutma
| Ortam Değişkeni | Varsayılan | Açıklama |
|---|---|---|
HF_XET_LOG_DEST | (hiçbiri) | Günlük hedefi. Bir dosya yolu veya dizin yolu (sonu / ile biten) kabul eder. Bir dizin olarak ayarlandığında, günlük dosyaları zaman damgalı adlarla oluşturulur. Boş bir dize olarak ayarlandığında, günlükler konsola yönlendirilir. Ayarlanmadığında, günlükler Hugging Face Xet önbellek dizinindeki logs/ alt dizinine yönlendirilir. |
HF_XET_LOG_FORMAT | (hiçbiri) | Günlük kaydı biçimi. JSON biçimli günlükler için json olarak ayarlayın; aksi takdirde düz metin kullanılır. Varsayılan olarak, dosya günlüğü JSON, konsol günlüğü ise metin kullanır. |
HF_XET_LOG_PREFIX | xet | Bir dizine günlük yazarken günlük dosya adları için önek. |
HF_XET_LOG_DIR_DISABLE_CLEANUP | false | Günlük dizinindeki eski günlük dosyalarının otomatik temizlenmesini devre dışı bırakır. |
HF_XET_LOG_DIR_MAX_SIZE | 250mb | Günlük dizinindeki günlük dosyalarının toplam maksimum boyutu. Bu sınırı aşmamak için eski dosyalar budanır. |
HF_XET_LOG_DIR_MIN_DELETION_AGE | 1d | Temizlik sırasında bir günlük dosyasının silinebilmesi için gereken minimum yaş. |
HF_XET_LOG_DIR_MAX_RETENTION_AGE | 14d | Günlük dosyaları için maksimum yaş. Bundan eski dosyalar temizleme sırasında her zaman silinir. |
Telemetri
hf_xet, her yükleme ve indirmeden sonra kısa bir rapor gönderir. İçeriği hakkında bilgi için Telemetri bölümüne bakın. Kapatmak için HF_HUB_DISABLE_TELEMETRY=1 değerini ayarlayın.
Mevcut Kısıtlamalar
Xet, Git tabanlı depolamaya ince taneli kopya azaltma (deduplication) ve geliştirilmiş performans getirirken, bazı özellikler ve platform uyumlulukları hâlâ geliştirme aşamasındadır. Bu nedenle, Xet destekli bir depo ile çalışırken aşağıdaki kısıtlamaları göz önünde bulundurun:
- Sadece 64-bit sistemler: Hem
hf_xethem de Git Xet şu anda 64-bit mimari gerektirir; 32-bit sistemler desteklenmez.