Hub documentation

Xet Depolama Kullanımı

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

Git ve Git LFS kurun.

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 | sh

Veya Homebrew kullanarak yükleyin:

brew install git-xet
git xet install

Yükleme doğrulamak için şunu çalıştırın:

git xet --version

Windows (amd64)

winget kullanarak:

winget install git-xet

Kurucu kullanma:

  • git-xet-windows-installer-x86_64.zip dosyasını indirin (buradan erişilebilir) ve arşivden çıkarın.
  • msi kurucu dosyasını çalıştırın ve yönergeleri izleyin.

Manuel kurulum:

  • git-xet-windows-x86_64.zip dosyasını indirin (buradan erişilebilir) ve arşivi açın.
  • Çıkarılan git-xet.exe dosyasını bir PATH dizinine yerleştirin.
  • Bir terminalde git xet install komutunu çalıştırın.

Yükleme doğrulamak için şunu çalıştırın:

git xet --version

Git 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 push

Arka 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-xet

Kurulum 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 uninstall komutunu çalıştırın.
  • git-xet.exe dosyası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_xet paketinin 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_xet ile huggingface_hub entegrasyonu, 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_xet 1.7.0 sürümünden itibaren, indirme tamponları hf_xet iç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_CONCURRENCY ve HF_XET_FIXED_UPLOAD_CONCURRENCY eşzamanlılığı sabit bir değere sabitlemenize ve adaptif denetleyiciyi atlamaya izin verir. Tüm seçeneklerin listesi için hf_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_xet 1.7.0 sürümünden itibaren, bu bayrağın ayarladığı tampon boyutları hf_xet iç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şkeniVarsayılanAçı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/xetXet'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şkeniVarsayılanAçıklama
HF_XET_CLIENT_ENABLE_ADAPTIVE_CONCURRENCYtrueAdaptif 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_CONCURRENCY1Eşzamanlı yükleme akışlarının başlangıç sayısı. HP modu: 16.
HF_XET_CLIENT_AC_INITIAL_DOWNLOAD_CONCURRENCY1Eş zamanlı indirme akışlarının başlangıç sayısı. HP modu: 16.
HF_XET_CLIENT_AC_MIN_UPLOAD_CONCURRENCY1Yükleme eşzamanlılığı için alt sınır. HP modu: 4.
HF_XET_CLIENT_AC_MIN_DOWNLOAD_CONCURRENCY1İndirme eşzamanlılığı için alt sınır. HP modu: 4.
HF_XET_CLIENT_AC_MAX_UPLOAD_CONCURRENCY64Yükleme eşzamanlılığı için üst sınır. HP modu: 124.
HF_XET_CLIENT_AC_MAX_DOWNLOAD_CONCURRENCY64İndirme eşzamanlılığı için üst sınır. HP modu: 124.
HF_XET_CLIENT_AC_TARGET_RTT60sHedef 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_RTT90sKabul 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_THRESHOLD0.8Denetleyicinin eşzamanlılığı artırdığı başarı oranı eşiği.
HF_XET_CLIENT_AC_UNHEALTHY_SUCCESS_RATIO_THRESHOLD0.5Denetleyicinin eşzamanlılığı azalttığı başarı oranı eşiği.
HF_XET_CLIENT_AC_LOGGING_INTERVAL_MS10000Eş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_CONCURRENCY ve HF_XET_FIXED_DOWNLOAD_CONCURRENCY pratik 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şkeniVarsayılanAçıklama
HF_XET_CLIENT_RETRY_MAX_ATTEMPTS5Başarısız istekler için maksimum yeniden deneme sayısı.
HF_XET_CLIENT_RETRY_BASE_DELAY3000msYeniden denemeler arasındaki temel gecikme (üstel geri çekilme ile).
HF_XET_CLIENT_RETRY_MAX_DURATION360sBir isteği yeniden denemek için harcanacak maksimum toplam süre.
HF_XET_CLIENT_CONNECT_TIMEOUT60sTCP bağlantı zaman aşımı.
HF_XET_CLIENT_READ_TIMEOUT120sHTTP yanıtları için okuma zaman aşımı.
HF_XET_CLIENT_IDLE_CONNECTION_TIMEOUT60sBoşta bekleyen bağlantıların kapatılmasından önceki zaman aşımı.
HF_XET_CLIENT_MAX_IDLE_CONNECTIONS16Havuzdaki boşta bekleyen bağlantıların maksimum sayısı.

Veri Transferi

Ortam DeğişkeniVarsayılanAçıklama
HF_XET_DATA_MAX_CONCURRENT_FILE_INGESTION8Yükleme sırasında eşzamanlı olarak işlenen dosyaların maksimum sayısı. HP modu: 100.
HF_XET_DATA_MAX_CONCURRENT_FILE_DOWNLOADS8Eş zamanlı olarak indirilen dosyaların maksimum sayısı.
HF_XET_DATA_INGESTION_BLOCK_SIZE8mbDosya alımı sırasında okunan blokların boyutu.
HF_XET_DATA_PROGRESS_UPDATE_INTERVAL200msİlerleme çubuklarının ne sıklıkla güncellendiği.
HF_XET_DATA_PROGRESS_UPDATE_SPEED_SAMPLING_WINDOW10sİ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şkeniVarsayılanHP ModuAçıklama
HF_XET_RECONSTRUCTION_MIN_RECONSTRUCTION_FETCH_SIZE256mb1gbYeniden yapılandırma istekleri için minimum getirme boyutu.
HF_XET_RECONSTRUCTION_MAX_RECONSTRUCTION_FETCH_SIZE8gb16gbYeniden yapılandırma istekleri için maksimum getirme boyutu.
HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_SIZEBelleğin 1/16'sı, 64mb ile 16gbHafızanın 1/8'iPaylaşılan temel tampon bütçesi.
HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_PERFILE_SIZEbelleğin 1/64'ü, 16mb ile 2gbBelleğin 1/32'siAktif dosya başına ek tampon bütçesi.
HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_LIMITHafızanın 1/4'ü, 264mb ile 64gbBelleğin 1/2'siToplam 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_BUFFERSkaldırıldı—Mevcut bellekten tampon boyutlandırma yerine sabit varsayılanları kullanmak için 1 olarak ayarlayın.
HF_XET_RECONSTRUCTION_TARGET_BLOCK_COMPLETION_TIME15m—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_BUFFER1gb—İ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şkeniVarsayılanAçıklama
HF_XET_SHARD_CACHE_SIZE_LIMIT16gbDisk ü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_SIZE64mbBellek 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_SUBDIRshard-cacheXet ö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şkeniVarsayılanAçıklama
HF_XET_CHUNK_CACHE_SIZE_BYTES0 (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şkeniVarsayılanAçı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_PREFIXxetBir dizine günlük yazarken günlük dosya adları için önek.
HF_XET_LOG_DIR_DISABLE_CLEANUPfalseGünlük dizinindeki eski günlük dosyalarının otomatik temizlenmesini devre dışı bırakır.
HF_XET_LOG_DIR_MAX_SIZE250mbGü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_AGE1dTemizlik sırasında bir günlük dosyasının silinebilmesi için gereken minimum yaş.
HF_XET_LOG_DIR_MAX_RETENTION_AGE14dGü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_xet hem de Git Xet şu anda 64-bit mimari gerektirir; 32-bit sistemler desteklenmez.
Update on GitHub