# Modelleri indirme

## Entegre kütüphaneler

Hub'daki bir model [desteklenen bir kütüphaneye](./models-libraries) bağlıysa, modelin yüklenmesi birkaç satırla yapılabilir. Modeli erişim bilgileri için, model sayfasındaki "Use in _Library_" düğmesine tıklayarak nasıl yapılacağını görebilirsiniz. Örneğin, `distilbert/distilgpt2` aşağıda 🤗 Transformers ile nasıl yapılacağını göstermektedir.

## Hugging Face İstemci Kütüphanesini Kullanma

[`huggingface_hub`](https://github.com/huggingface/huggingface_hub) kütüphanesini kullanarak depolar üzerinde oluşturma, silme, güncelleme ve bilgi alma işlemleri yapabilirsiniz. Örneğin, `HuggingFaceH4/zephyr-7b-beta` modelini komut satırından indirmek için çalıştırın
```bash
hf download HuggingFaceH4/zephyr-7b-beta
```
Daha fazla bilgi için [CLI indirme belgelerini](https://huggingface.co/docs/huggingface_hub/en/guides/cli#download-an-entire-repository) inceleyin.

Bunu kendi kütüphanenize de entegre edebilirsiniz. Örneğin, birkaç satırla bir Scikit-learn modelini hızla yükleyebilirsiniz.
```py
from huggingface_hub import hf_hub_download
import joblib

REPO_ID = "YOUR_REPO_ID"
FILENAME = "sklearn_model.joblib"

model = joblib.load(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
)
```

## Git Kullanımı

Model Hub'daki tüm modeller Xet destekli Git depoları olduğundan, [git-xet'i kurarak](./xet/using-xet-storage#git-xet) ve aşağıdakini çalıştırarak modelleri yerel olarak klonlayabilirsiniz:

```bash
git xet install
git lfs install
git clone git@hf.co:<MODEL ID> # example: git clone git@hf.co:bigscience/bloom
```

Belirli bir model deposuna yazma erişiminiz varsa, modele revizyonları commit etme ve push etme yetkiniz de olacaktır.

Değişiklikleri göndermek ve/veya özel depolara erişmek için SSH anahtarınızı [kullanıcı ayarlarınıza](https://huggingface.co/settings/keys) ekleyin.

## Daha hızlı indirmeler

### İndirme hızınızı test edin

Hugging Face'in CDN'sinden indirme hızınızı [fast.hf.co](https://fast.hf.co) adresinden test edebilirsiniz. Bu, en yakın HF kenar sunucusuna karşı hızlı bir bant genişliği testi çalıştırarak, herhangi bir ayarı optimize etmeden önce temel veri aktarım hızınızı anlamanıza yardımcı olur.

İndirme hızını [`hf-speedtest`](https://github.com/julien-c/hf-speedtest) CLI eklentisini kullanarak doğrudan terminalden de ölçebilirsiniz:

```bash
hf extensions install julien-c/hf-speedtest
hf speedtest
```

### hf_xet ile uyumlu eşzamanlılık

`hf_xet`, [Xet depolama arka ucunu](https://huggingface.co/docs/hub/en/xet/index) kullanarak parça tabanlı kopya azaltma ile dosya aktarımını optimize eden Rust tabanlı bir pakettir. Varsayılan olarak `hf_xet`, **uyarlanabilir eşzamanlılığı** kullanır — gerçek zamanlı ağ koşullarına göre paralel aktarım akışlarının sayısını otomatik olarak ayarlar; temkinli bir başlangıçla (1 akış) bant genişliği izin verdiğinde 64 eşzamanlı akışa kadar ölçeklenir.

Çoğu makinede — veri merkezi ortamları dahil — varsayılan ayarlar zaten kullanılabilir ağ bant genişliğini doldurur. Yüksek bant genişliğine ve hızlı diske sahip makinelerde ileri düzey kullanıcılar için `HF_XET_HIGH_PERFORMANCE=1` eşzamanlılık sınırlarını artırır ve bellek tampon boyutlarını büyütür; bu da birçok büyük dosyanın paralel olarak indirilmesi sırasında fayda sağlayabilir.

```bash
HF_XET_HIGH_PERFORMANCE=1 hf download ...
```

`hf_xet` 1.7.0 sürümünden itibaren, `HF_XET_HIGH_PERFORMANCE=1` kullanılıp kullanılmadığına bakılmaksızın, indirme tampon boyutları `hf_xet`'in erişebildiği belleğe (kapsayıcı bellek sınırları dahil) dayanır. Önceki sürümlerde, `HF_XET_HIGH_PERFORMANCE=1` yalnızca en az 64 GB RAM'e sahip makinelerde kullanılmalıdır. Kullanılan değerler için [İndirme Tamponları](./xet/using-xet-storage#download-buffers) bölümüne bakın.

## hf-mount kullanımı

Büyük modeller için, tam repoyu indirmek yerine [hf-mount](https://github.com/huggingface/hf-mount) ile bir repoyu yerel dosya sistemi olarak bağlayabilirsiniz. Dosyalar tembelce (lazy) getirilir — ağa yalnızca kodunuzun okuduğu baytlar ulaşır.

```bash
brew install hf-mount
hf-mount start repo openai-community/gpt2 /tmp/gpt2
```

Depolar salt okunur olarak bağlanır. Tam kurulum ayrıntıları, arka uç seçenekleri ve önbellekleme için [Yerel Dosya Sistemi Olarak Bağlama](./storage-buckets-access#mount-as-a-local-filesystem) bölümüne bakın.

## Bir vekil sunucu veya güvenlik duvarı arkasında indirme

Ağınız, giden trafiği bir güvenlik duvarı veya vekil sunucu üzerinden kısıtlıyorsa, modelleri ve veri kümelerini indirmek yalnızca `huggingface.co` adresine erişimi gerektirmez. Dosya içerikleri ayrı depolama ve CDN alan adlarından sunulur; bu adreslere erişilemiyorsa, `huggingface.co` adresi kendisi izin listesinde olsa bile `from_pretrained` / `hf download` işlemleri başarısız olur.

Aşağıdaki ana makine adlarını izin listesine ekleyin (tümü HTTPS / 443 portu üzerinden):

| Ana bilgisayar adı                     | Amaç                                     |
|------------------------------|---------------------------------------------|
| `huggingface.co`             | Hub API, meta veriler ve indirme yönlendirmeleri   |
| `cas-server.xethub.hf.co`    | Xet protokolü API'leri, indirme ve yükleme (ABD) |
| `cas-server.xethub-eu.hf.co` | Xet protokolü API'leri, indirme ve yükleme (AB) |
| `transfer.xethub.hf.co`      | Xet depolama indirme API'leri (ABD)              |
| `transfer.xethub-eu.hf.co`   | Xet depolama indirme API'leri (AB)              |
| `us.aws.cdn.hf.co`           | CDN kenarı (ABD)                               |
| `us.gcp.cdn.hf.co`           | CDN kenarı (ABD)                               |
| `cdn-lfs-us-1.hf.co`         | LFS CDN (ABD)                                |
| `cdn-lfs-eu-1.hf.co`         | LFS CDN (AB)                                |

> [!TIP]
> İndirmeler, `huggingface.co` adresinden bu ana bilgisayar adlarına HTTP yönlendirmelerini izler; bu nedenle yalnızca `huggingface.co` adresini izin verilenler listesine eklemek yeterli değildir. Bir indirme sırasında bağlantı hatası yerine `ReadTimeoutError` alınması, genellikle ilk bağlantının başarılı olduğunu ancak bir depolama veya CDN ana bilgisayarının engellendiğini gösterir.

> [!TIP]
> Yabani karakter davranışı, vekil sunucunuzun alan adlarını nasıl eşleştirdiğine bağlıdır. Birçok kurumsal vekil sunucusu, izin listesi girdisini herhangi bir derinlikteki alt alan adlarını kapsayan bir sonek eşleşmesi olarak ele alır. Vekil sunucunuz da bunu yapıyorsa, en basit seçenek `hf.co` ve `huggingface.co` soneklerini izin listesine eklemektir — bunlar mevcut ve gelecekteki tüm depolama ve CDN uç noktalarını kapsar.
>
> Vekil sunucunuz yalnızca tek etiketli joker karakterleri destekliyorsa (`*.hf.co`, `cdn-lfs-us-1.hf.co` ile eşleşir ancak daha derin `us.aws.cdn.hf.co` veya `cas-server.xethub.hf.co` ile eşleşmez), yukarıdaki tablodaki açık ana bilgisayar adlarını izin listesine ekleyin. `*.xethub.hf.co`'ün `xethub-eu.hf.co` altındaki AB ana bilgisayarlarını kapsamadığını ve `*.cdn.hf.co`'ün iki etiketli `us.aws.cdn.hf.co` / `us.gcp.cdn.hf.co` adreslerini kapsamadığını unutmayın.

> [!WARNING]
> Depolama ve CDN altyapımız evrildikçe bu ana bilgisayar adları değişebilir. Güvenlik politikanız izin veriyorsa, belirli bir uç nokta değiştiğinde kurallarınızın bozulmaması için `hf.co` ve `huggingface.co` soneklerini (tüm alt alan adları) izinli listeye ekleyin.

> [!NOTE]
> `hf_xet` 1.8.0 veya sonraki sürümlerle yapılan yüklemeler, `hf.co` veya `huggingface.co` altında olmayan Amazon S3 ana bilgisayar adlarına da doğrudan yapılabilir. [Proxy veya güvenlik duvarı arkasında yükleme](./xet/using-xet-storage#uploading-behind-a-proxy-or-firewall) bölümüne bakın.

### Makine-okunabilir liste

Yukarıdaki ana bilgisayar adları ayrıca [`https://huggingface.co/.well-known/meta.json`](https://huggingface.co/.well-known/meta.json) adresinde JSON olarak da yayımlanır; böylece tabloyu elle kopyalamak yerine bu dosyadan vekil sunucu veya güvenlik duvarı kuralları oluşturabilirsiniz.

> [!WARNING]
> Dosya, uç noktalar eklendikçe ve kaldırıldıkça değişir. Kopyasını sabitlemek yerine, kurallarınızı oluştururken dosyayı çekin.

