# Téléchargement des modèles

## Bibliothèques intégrées

Si un modèle sur le Hub est lié à une [bibliothèque prise en charge](./models-libraries), le chargement du modèle ne prend que quelques lignes. Pour savoir comment accéder au modèle, vous pouvez cliquer sur le bouton « Utiliser dans _Library_ » sur la page du modèle. Par exemple, `distilbert/distilgpt2` montre comment faire avec 🤗 Transformers ci-dessous.

## Utilisation de la bibliothèque client Hugging Face

Vous pouvez utiliser la bibliothèque [`huggingface_hub`](https://github.com/huggingface/huggingface_hub) pour créer, supprimer, mettre à jour et récupérer des informations depuis des dépôts. Par exemple, pour télécharger le modèle `HuggingFaceH4/zephyr-7b-beta` depuis la ligne de commande, exécutez
```bash
hf download HuggingFaceH4/zephyr-7b-beta
```
Consultez la [documentation de téléchargement CLI](https://huggingface.co/docs/huggingface_hub/en/guides/cli#download-an-entire-repository) pour plus d'informations.

Vous pouvez également l’intégrer à votre propre bibliothèque. Par exemple, vous pouvez charger rapidement un modèle Scikit-learn en quelques lignes.
```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)
)
```

## Utiliser Git

Tous les modèles du Model Hub étant des dépôts Git adossés à Xet, vous pouvez les cloner localement en [installant git-xet](./xet/using-xet-storage#git-xet) et en exécutant :

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

Si vous disposez d'un accès en écriture au dépôt de modèle concerné, vous pourrez également committer et pousser des révisions du modèle.

Ajoutez votre clé publique SSH à [vos paramètres utilisateur](https://huggingface.co/settings/keys) pour pousser des modifications et/ou accéder aux dépôts privés.

## Téléchargements plus rapides

### Testez votre vitesse de téléchargement

Vous pouvez tester votre vitesse de téléchargement depuis le CDN de Hugging Face sur [fast.hf.co](https://fast.hf.co). Cela exécute un test de bande passante rapide contre le serveur de bord HF le plus proche, vous aidant à comprendre votre débit de base avant d’ajuster les paramètres.

Vous pouvez également mesurer la vitesse de téléchargement directement depuis le terminal à l’aide de l’extension CLI [`hf-speedtest`](https://github.com/julien-c/hf-speedtest) :

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

### Concurrence adaptative avec hf_xet

`hf_xet` est un package basé sur Rust qui exploite le [backend de stockage Xet](https://huggingface.co/docs/hub/en/xet/index) pour optimiser les transferts de fichiers grâce à la déduplication par morceaux. Par défaut, `hf_xet` utilise la **concurrence adaptative** : il ajuste automatiquement le nombre de flux de transfert parallèles en fonction des conditions réseau en temps réel, en commençant de manière prudente (1 flux) et en passant jusqu’à 64 flux concurrents selon la bande passante disponible.

Pour la plupart des machines — y compris les environnements de centre de données — les paramètres par défaut satureront déjà la bande passante réseau disponible. Pour les utilisateurs avancés sur des machines dotées d’une bande passante élevée et d’un disque rapide, `HF_XET_HIGH_PERFORMANCE=1` augmente les limites de concurrence et les tailles de tampon mémoire, ce qui peut être utile lors du téléchargement parallèle de nombreux fichiers volumineux.

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

À partir de `hf_xet` 1.7.0, les tailles de tampon de téléchargement sont basées sur la mémoire disponible pour `hf_xet`, y compris les limites de mémoire des conteneurs, avec ou sans `HF_XET_HIGH_PERFORMANCE=1`. Avec les versions antérieures, n'utilisez `HF_XET_HIGH_PERFORMANCE=1` que sur des machines disposant d'au moins 64 Go de RAM. Consultez [Tampons de téléchargement](./xet/using-xet-storage#download-buffers) pour les valeurs utilisées.

## Avec hf-mount

Pour les grands modèles, vous pouvez monter un dépôt comme un système de fichiers local avec [hf-mount](https://github.com/huggingface/hf-mount) au lieu de télécharger le dépôt complet. Les fichiers sont récupérés à la demande — seules les octets lus par votre code passent par le réseau.

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

Les dépôts sont montés en lecture seule. Consultez [Mount as a Local Filesystem](./storage-buckets-access#mount-as-a-local-filesystem) pour les détails complets de la configuration, les options de back-end et la mise en cache.

## Téléchargement derrière un proxy ou un pare-feu

Si votre réseau restreint le trafic sortant via un pare-feu ou un proxy, le téléchargement de modèles et de jeux de données nécessite plus que `huggingface.co`. Le contenu des fichiers est servi depuis des hôtes de stockage et de CDN distincts, et `from_pretrained` / `hf download` échouera si ces hôtes ne sont pas accessibles, même si `huggingface.co` lui-même est autorisé.

Autoriser les noms d’hôtes suivants (tous via HTTPS / port 443) :

| Nom d'hôte                     | Objectif                                     |
|------------------------------|---------------------------------------------|
| `huggingface.co`             | API du Hub, métadonnées et redirections de téléchargement   |
| `cas-server.xethub.hf.co`    | API du protocole Xet, téléchargement et téléversement (États-Unis) |
| `cas-server.xethub-eu.hf.co` | API du protocole Xet, téléchargement et téléversement (UE) |
| `transfer.xethub.hf.co`      | API de téléchargement du stockage Xet (États-Unis)              |
| `transfer.xethub-eu.hf.co`   | API de téléchargement du stockage Xet (UE)              |
| `us.aws.cdn.hf.co`           | Bord du CDN (États-Unis)                               |
| `us.gcp.cdn.hf.co`           | Bord du CDN (États-Unis)                               |
| `cdn-lfs-us-1.hf.co`         | LFS CDN (États-Unis)                                |
| `cdn-lfs-eu-1.hf.co`         | LFS CDN (UE)                                |

> [!TIP]
> Les téléchargements suivent les redirections HTTP depuis `huggingface.co` vers ces noms d’hôtes, de sorte que l’ajout de `huggingface.co` seul à la liste blanche n’est pas suffisant. Une erreur `ReadTimeoutError` (plutôt qu’une erreur de connexion) survenant en cours de téléchargement indique généralement que la connexion initiale a réussi, mais qu’un hôte de stockage ou de CDN est bloqué.

> [!TIP]
> Le comportement des jokers dépend de la manière dont votre proxy correspond aux domaines. De nombreux proxies d’entreprise traitent une entrée de liste d’autorisation comme une correspondance de suffixe qui couvre les sous-domaines à n’importe quelle profondeur. Si c’est le cas, l’option la plus simple est d’autoriser les suffixes `hf.co` et `huggingface.co` — ceux-ci couvrent tous les points de terminaison de stockage et de CDN actuels et futurs.
>
> Si votre proxy ne prend en charge que les jokers à étiquette unique (où `*.hf.co` correspond à `cdn-lfs-us-1.hf.co` mais pas aux domaines plus profonds `us.aws.cdn.hf.co` ou `cas-server.xethub.hf.co`), ajoutez les noms d’hôtes explicites du tableau ci-dessus à la liste blanche. Notez que `*.xethub.hf.co` ne couvre pas les hôtes de l’UE sous `xethub-eu.hf.co`, et que `*.cdn.hf.co` ne couvre pas les domaines à deux étiquettes `us.aws.cdn.hf.co` / `us.gcp.cdn.hf.co`.

> [!WARNING]
> Ces noms d’hôtes peuvent évoluer au fil du développement de notre infrastructure de stockage et de CDN. Si votre politique de sécurité le permet, ajoutez les suffixes `hf.co` et `huggingface.co` (tous les sous-domaines) à votre liste blanche afin que vos règles ne soient pas invalidées lors d’un changement d’un point de terminaison spécifique.

> [!NOTE]
> Les téléversements avec `hf_xet` 1.8.0 ou ultérieur peuvent également être effectués directement vers des noms d'hôte Amazon S3, qui ne sont pas sous `hf.co` ou `huggingface.co`. Consultez [Téléversement derrière un proxy ou un pare-feu](./xet/using-xet-storage#uploading-behind-a-proxy-or-firewall).

### Liste lisible par machine

Les noms d’hôtes ci-dessus sont également publiés au format JSON à l’adresse [`https://huggingface.co/.well-known/meta.json`](https://huggingface.co/.well-known/meta.json), ce qui vous permet de générer des règles de proxy ou de pare-feu à partir de ce fichier plutôt que de recopier le tableau manuellement.

> [!WARNING]
> Le fichier évolue au fur et à mesure que des points de terminaison sont ajoutés ou supprimés. Récupérez-le lors de la création de vos règles plutôt que de figer une copie.

