# Baixando modelos

## Bibliotecas integradas

Se um modelo no Hub estiver vinculado a uma [biblioteca compatível](./models-libraries), o carregamento do modelo pode ser feito em apenas algumas linhas. Para informações sobre como acessar o modelo, você pode clicar no botão "Usar na _Biblioteca_" na página do modelo para ver como fazer isso. Por exemplo, `distilbert/distilgpt2` mostra como fazer isso com 🤗 Transformers abaixo.

## Usando a Biblioteca de Clientes do Hugging Face

Você pode usar a biblioteca [`huggingface_hub`](https://github.com/huggingface/huggingface_hub) para criar, excluir, atualizar e recuperar informações de repositórios. Por exemplo, para baixar o modelo `HuggingFaceH4/zephyr-7b-beta` pela linha de comando, execute
```bash
hf download HuggingFaceH4/zephyr-7b-beta
```
Consulte a [documentação de download da CLI](https://huggingface.co/docs/huggingface_hub/en/guides/cli#download-an-entire-repository) para mais informações.

Você também pode integrar isso à sua própria biblioteca. Por exemplo, você pode carregar rapidamente um modelo do Scikit-learn com poucas linhas.
```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)
)
```

## Usando Git

Como todos os modelos no Model Hub são repositórios Git com suporte Xet, você pode clonar os modelos localmente [instalando o git-xet](./xet/using-xet-storage#git-xet) e executando:

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

Se você tiver acesso de escrita ao repositório do modelo específico, também terá a capacidade de commitar e enviar revisões ao modelo.

Adicione sua chave pública SSH em [suas configurações de usuário](https://huggingface.co/settings/keys) para enviar alterações e/ou acessar repositórios privados.

## Downloads mais rápidos

### Teste a velocidade de download

Você pode testar sua velocidade de download da CDN da Hugging Face em [fast.hf.co](https://fast.hf.co). Isso executa um teste rápido de largura de banda contra o servidor de borda da HF mais próximo, ajudando você a entender sua taxa de transferência de referência antes de ajustar qualquer configuração.

Você também pode medir a velocidade de download diretamente do terminal usando a extensão de CLI [`hf-speedtest`](https://github.com/julien-c/hf-speedtest):

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

### Concorrência adaptativa com hf_xet

`hf_xet` é um pacote baseado em Rust que utiliza o [backend de armazenamento Xet](https://huggingface.co/docs/hub/en/xet/index) para otimizar a transferência de arquivos por meio de deduplicação baseada em blocos. Por padrão, o `hf_xet` usa **concorrência adaptativa** — ele ajusta automaticamente o número de fluxos de transferência paralelos com base nas condições de rede em tempo real, começando de forma conservadora (1 fluxo) e escalando até 64 fluxos concorrentes conforme a largura de banda permitir.

Para a maioria das máquinas — incluindo ambientes de data center —, as configurações padrão já saturarão a largura de banda de rede disponível. Para usuários avançados em máquinas com alta largura de banda e disco rápido, `HF_XET_HIGH_PERFORMANCE=1` aumenta os limites de concorrência e os tamanhos dos buffers de memória, o que pode ajudar ao baixar muitos arquivos grandes em paralelo.

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

A partir da versão 1.7.0 do `hf_xet`, os tamanhos dos buffers de download são baseados na memória disponível para o `hf_xet`, incluindo limites de memória de contêiner, com ou sem `HF_XET_HIGH_PERFORMANCE=1`. Em versões anteriores, use `HF_XET_HIGH_PERFORMANCE=1` apenas em máquinas com pelo menos 64 GB de RAM. Consulte [Buffers de download](./xet/using-xet-storage#download-buffers) para os valores utilizados.

## Usando hf-mount

Para modelos grandes, você pode montar um repositório como um sistema de arquivos local com [hf-mount](https://github.com/huggingface/hf-mount) em vez de baixar o repositório completo. Os arquivos são obtidos sob demanda — apenas os bytes que seu código lê acessam a rede.

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

Os repositórios são montados somente para leitura. Consulte [Montar como um sistema de arquivos local](./storage-buckets-access#mount-as-a-local-filesystem) para detalhes completos de configuração, opções de backend e cache.

## Baixando por trás de um proxy ou firewall

Se sua rede restringe o tráfego de saída por meio de um firewall ou proxy, o download de modelos e conjuntos de dados requer mais do que apenas `huggingface.co`. O conteúdo dos arquivos é servido a partir de hostnames de armazenamento e CDN separados, e `from_pretrained` / `hf download` falharão se esses não forem acessíveis, mesmo quando o próprio `huggingface.co` estiver na lista de permissões.

Permita os seguintes nomes de host (todos via HTTPS / porta 443):

| Nome do host                     | Propósito                                     |
|------------------------------|---------------------------------------------|
| `huggingface.co`             | API do Hub, metadados e redirecionamentos de download   |
| `cas-server.xethub.hf.co`    | APIs do protocolo Xet, download e upload (EUA) |
| `cas-server.xethub-eu.hf.co` | APIs do protocolo Xet, download e upload (UE) |
| `transfer.xethub.hf.co`      | APIs de download do armazenamento Xet (EUA)              |
| `transfer.xethub-eu.hf.co`   | APIs de download do armazenamento Xet (UE)              |
| `us.aws.cdn.hf.co`           | Borda da CDN (EUA)                               |
| `us.gcp.cdn.hf.co`           | Borda da CDN (EUA)                               |
| `cdn-lfs-us-1.hf.co`         | LFS CDN (EUA)                                |
| `cdn-lfs-eu-1.hf.co`         | LFS CDN (UE)                                |

> [!TIP]
> Os downloads seguem redirecionamentos HTTP de `huggingface.co` para esses nomes de host, portanto, permitir apenas `huggingface.co` não é suficiente. Um `ReadTimeoutError` (em vez de um erro de conexão) no meio de um download geralmente significa que a conexão inicial foi bem-sucedida, mas um host de armazenamento ou CDN está bloqueado.

> [!TIP]
> O comportamento de curinga depende de como o seu proxy corresponde domínios. Muitos proxies corporativos tratam uma entrada na lista de permissões como uma correspondência de sufixo que cobre subdomínios em qualquer profundidade. Se o seu for esse o caso, a opção mais simples é permitir os sufixos `hf.co` e `huggingface.co` — eles cobrem todos os endpoints atuais e futuros de armazenamento e CDN.
>
> Se o seu proxy só suporta curingas de rótulo único (onde `*.hf.co` corresponde a `cdn-lfs-us-1.hf.co`, mas não ao mais profundo `us.aws.cdn.hf.co` ou `cas-server.xethub.hf.co`), adicione os nomes de host explícitos da tabela acima à lista de permissões. Observe que `*.xethub.hf.co` não cobre os hosts da UE sob `xethub-eu.hf.co`, e `*.cdn.hf.co` não cobre os de dois rótulos `us.aws.cdn.hf.co` / `us.gcp.cdn.hf.co`.

> [!WARNING]
> Esses nomes de host podem mudar à medida que nossa infraestrutura de armazenamento e CDN evolui. Onde sua política de segurança permitir, adicione os sufixos `hf.co` e `huggingface.co` (todos os subdomínios) à lista de permissões para que suas regras não falhem quando um endpoint específico mudar.

> [!NOTE]
> Uploads com `hf_xet` 1.8.0 ou posterior também podem ir diretamente para hostnames do Amazon S3, que não estão sob `hf.co` ou `huggingface.co`. Veja [Upload atrás de um proxy ou firewall](./xet/using-xet-storage#uploading-behind-a-proxy-or-firewall).

### Lista legível por máquina

Os nomes de host acima também são publicados como JSON em [`https://huggingface.co/.well-known/meta.json`](https://huggingface.co/.well-known/meta.json), para que você possa gerar regras de proxy ou firewall a partir dele, em vez de copiar a tabela manualmente.

> [!WARNING]
> O arquivo muda conforme os endpoints são adicionados e removidos. Busque-o ao construir suas regras, em vez de fixar uma cópia.

