Hub Python Library documentation
Baixando arquivos
Baixando arquivos
Baixar um arquivo único
hf_hub_download
huggingface_hub.hf_hub_download
< source >( repo_id: strfilename: strsubfolder: str | None = Nonerepo_type: str | None = Nonerevision: str | None = Nonelibrary_name: str | None = Nonelibrary_version: str | None = Nonecache_dir: str | pathlib.Path | None = Nonelocal_dir: str | pathlib.Path | None = Noneuser_agent: dict | str | None = Noneforce_download: bool = Falseetag_timeout: float = 10token: bool | str | None = Nonelocal_files_only: bool = Falseheaders: dict[str, str] | None = Noneendpoint: str | None = Nonetqdm_class: type[tqdm.std.tqdm] | None = Nonedry_run: bool = False ) → str or DryRunFileInfo
Parâmetros
- repo_id (
str) — Nome de um usuário ou organização e nome de um repositório separados por/. - filename (
str) — O nome do arquivo no repositório. - subfolder (
str, opcional) — Um valor opcional correspondente a uma pasta dentro do repositório do modelo. - repo_type (
str, opcional) — Defina como"dataset","space"ou"kernel"se estiver baixando de um repositório de dataset, space ou kernel,Noneou"model"se estiver baixando de um modelo. O padrão éNone. - revision (
str, opcional) — Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit. - library_name (
str, opcional) — O nome da biblioteca à qual o objeto corresponde. - library_version (
str, opcional) — A versão da biblioteca. - cache_dir (
str,Path, opcional) — Caminho para a pasta onde os arquivos em cache são armazenados. - local_dir (
strouPath, opcional) — Se fornecido, o arquivo baixado será colocado neste diretório. - user_agent (
dict,str, opcional) — As informações do user-agent na forma de um dicionário ou uma string. - force_download (
bool, opcional, padrãoFalse) — Se o arquivo deve ser baixado mesmo que já exista no cache local. - etag_timeout (
float, opcional, padrão10) — Ao buscar o ETag, quantos segundos esperar o servidor enviar dados antes de desistir, valor que é passado parahttpx2.request. - token (
str,bool, opcional) — Um token a ser usado para o download.- Se
True, o token é lido da pasta de configuração do HuggingFace. - Se for uma string, ela é usada como o token de autenticação.
- Se
- local_files_only (
bool, opcional, padrãoFalse) — SeTrue, evita o download do arquivo e retorna o caminho para o arquivo em cache local, se ele existir. - headers (
dict, opcional) — Cabeçalhos adicionais a serem enviados com a solicitação. - endpoint (
str, opcional) — O endpoint do Hub para onde enviar a solicitação. O valor padrão é o deHF_ENDPOINT. - tqdm_class (
tqdm, opcional) — Se fornecida, sobrescreve o comportamento padrão da barra de progresso. O argumento passado deve herdar detqdm.auto.tqdmou, pelo menos, imitar seu comportamento. Padrão: a barra de progresso personalizada do HF, que pode ser desativada definindo a variável de ambienteHF_HUB_DISABLE_PROGRESS_BARS. - dry_run (
bool, opcional, padrãoFalse) — SeTrue, executa uma simulação sem efetivamente baixar o arquivo. Retorna um objeto DryRunFileInfo contendo informações sobre o que seria baixado.
Retorna
str ou DryRunFileInfo
- Se
dry_run=False: caminho local do arquivo ou, se a rede estiver desativada, a última versão do arquivo em cache no disco. - Se
dry_run=True: um objeto DryRunFileInfo contendo informações de download.
Exceções
RepositoryNotFoundError ou RevisionNotFoundError ou ~utils.RemoteEntryNotFoundError ou LocalEntryNotFoundError ou EnvironmentError ou OSError ou ValueError
- RepositoryNotFoundError —
Se o repositório de onde o download será feito não puder ser encontrado. Isso pode ocorrer porque ele não existe
ou porque está definido como
privatee você não tem acesso. - RevisionNotFoundError — Se a revisão de onde o download deve ser feito não for encontrada.
~utils.RemoteEntryNotFoundError— Se o arquivo a ser baixado não puder ser encontrado.- LocalEntryNotFoundError — Se a rede estiver desativada ou indisponível e o arquivo não for encontrado no cache.
EnvironmentError— Setoken=True, mas o token não puder ser encontrado.OSError— Se o ETag não puder ser determinado.ValueError— Se o valor de algum parâmetro for inválido.
Baixe um arquivo específico, caso ele ainda não esteja presente no cache local.
O novo layout de arquivo de cache é o seguinte:
- O diretório de cache contém uma subpasta por repo_id (namespaced por tipo de repositório)
- dentro de cada pasta de repositório:
- refs é uma lista dos pares mais recentes conhecidos de revisão => commit_hash
- blobs contém os blobs de arquivo reais (identificados pelo git-sha ou sha256, dependendo de se são arquivos LFS ou não)
- snapshots contém uma subpasta por commit, e cada “commit” contém o subconjunto dos arquivos que foram resolvidos naquele commit específico. Cada nome de arquivo é um symlink para o blob naquele commit específico.
[ 96] .
└── [ 160] models--julien-c--EsperBERTo-small
├── [ 160] blobs
│ ├── [321M] 403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
│ ├── [ 398] 7cb18dc9bafbfcf74629a4b760af1b160957a83e
│ └── [1.4K] d7edf6bd2a681fb0175f7735299831ee1b22b812
├── [ 96] refs
│ └── [ 40] main
└── [ 128] snapshots
├── [ 128] 2439f60ef33a0d46d85da5001d52aeda5b00ce9f
│ ├── [ 52] README.md -> ../../blobs/d7edf6bd2a681fb0175f7735299831ee1b22b812
│ └── [ 76] pytorch_model.bin -> ../../blobs/403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
└── [ 128] bbc77c8132af1cc5cf678da3f1ddf2de43606d48
├── [ 52] README.md -> ../../blobs/7cb18dc9bafbfcf74629a4b760af1b160957a83e
└── [ 76] pytorch_model.bin -> ../../blobs/403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bdSe local_dir for fornecido, a estrutura de arquivos do repositório será replicada neste local. Ao usar esta opção, o cache_dir não será utilizado e uma pasta .cache/huggingface/ será criada na raiz de local_dir para armazenar alguns metadados relacionados aos arquivos baixados. Embora esse mecanismo não seja tão robusto quanto o sistema de cache principal, ele é otimizado para buscar regularmente a versão mais recente de um repositório.
hf_hub_url
huggingface_hub.hf_hub_url
< source >( repo_id: strfilename: strsubfolder: str | None = Nonerepo_type: str | None = Nonerevision: str | None = Noneendpoint: str | None = None )
Parâmetros
- repo_id (
str) — Um nome de namespace (usuário ou organização) e um nome de repositório separados por/. - filename (
str) — O nome do arquivo no repositório. - subfolder (
str, opcional) — Um valor opcional correspondente a uma pasta dentro do repositório. - repo_type (
str, opcional) — Defina como"dataset","space"ou"kernel"se estiver baixando de um repositório de dataset, space ou kernel,Noneou"model"se estiver baixando de um modelo. O padrão éNone. - revision (
str, opcional) — Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit. - endpoint (
str, opcional) — O endpoint do Hub para onde enviar a solicitação. O valor padrão é o deHF_ENDPOINT.
Construa a URL de um arquivo a partir das informações fornecidas.
O endereço resolvido pode ser uma URL hospedada no huggingface.co ou um link para o Cloudfront (uma rede de entrega de conteúdo, ou CDN) para arquivos grandes que excedem alguns MBs.
Exemplo:
>>> from huggingface_hub import hf_hub_url
>>> hf_hub_url(
... repo_id="julien-c/EsperBERTo-small", filename="pytorch_model.bin"
... )
'https://huggingface.co/julien-c/EsperBERTo-small/resolve/main/pytorch_model.bin'Observações:
Cloudfront é replicado globalmente, o que torna os downloads muito mais rápidos para o usuário final (e também reduz nossos custos de banda).
A Cloudfront faz o cache agressivamente dos arquivos por padrão (TTL padrão é de 24 horas), no entanto, isso não é um problema aqui, pois implementamos um sistema de versionamento baseado em git no huggingface.co, o que significa que armazenamos os arquivos no S3/Cloudfront de uma forma endereçável por conteúdo (ou seja, o nome do arquivo é o seu hash). Usar nomes de arquivos endereçáveis por conteúdo significa que o cache nunca pode ficar desatualizado.
Em termos de cache no lado do cliente a partir desta biblioteca, baseamos nosso cache na tag de entidade (
ETag) dos objetos, que é um identificador de uma versão específica de um recurso [1]_. O ETag de um objeto é: seu git-sha1, se armazenado em git, ou seu sha256, se armazenado em git-lfs.
Referências:
Baixe um snapshot do repositório
huggingface_hub.snapshot_download
< source >( repo_id: strrepo_type: str | None = Nonerevision: str | None = Nonecache_dir: str | pathlib.Path | None = Nonelocal_dir: str | pathlib.Path | None = Nonelibrary_name: str | None = Nonelibrary_version: str | None = Noneuser_agent: dict | str | None = Noneetag_timeout: float = 10force_download: bool = Falsetoken: bool | str | None = Nonelocal_files_only: bool = Falseallow_patterns: list[str] | str | None = Noneignore_patterns: list[str] | str | None = Nonemax_workers: int = 8tqdm_class: type[tqdm.asyncio.tqdm_asyncio] | None = Noneheaders: dict[str, str] | None = Noneendpoint: str | None = Nonedry_run: bool = False ) → str or list of DryRunFileInfo
Parâmetros
- repo_id (
str) — Nome de um usuário ou organização e nome de um repositório separados por/. - repo_type (
str, opcional) — Defina como"dataset","space"ou"kernel"se estiver baixando de um repositório de dataset, space ou kernel,Noneou"model"se estiver baixando de um modelo. O padrão éNone. - revision (
str, opcional) — Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit. - cache_dir (
str,Path, opcional) — Caminho para a pasta onde os arquivos em cache são armazenados. - local_dir (
strouPath, opcional) — Se fornecido, os arquivos baixados serão colocados sob este diretório. - library_name (
str, opcional) — O nome da biblioteca à qual o objeto corresponde. - library_version (
str, opcional) — A versão da biblioteca. - user_agent (
str,dict, opcional) — As informações do user-agent na forma de um dicionário ou uma string. - etag_timeout (
float, opcional, padrão10) — Ao buscar o ETag, quantos segundos esperar o servidor enviar dados antes de desistir, valor que é passado parahttpx2.request. - force_download (
bool, opcional, padrãoFalse) — Se o arquivo deve ser baixado mesmo que já exista no cache local. - token (
str,bool, opcional) — Um token a ser usado para o download.- Se
True, o token é lido da pasta de configuração do HuggingFace. - Se for uma string, ela é usada como o token de autenticação.
- Se
- headers (
dict, opcional) — Cabeçalhos adicionais a incluir na solicitação. Esses cabeçalhos têm precedência sobre os demais. - endpoint (
str, opcional) — O endpoint do Hub para onde enviar a solicitação. O valor padrão é o deHF_ENDPOINT. - local_files_only (
bool, opcional, padrãoFalse) — SeTrue, não baixa nenhum arquivo, mesmo que ele não esteja emcache_diroulocal_dir. - allow_patterns (
list[str]oustr, opcional) — Se fornecido, apenas os arquivos que corresponderem a pelo menos um padrão serão baixados. - ignore_patterns (
list[str]oustr, opcional) — Se fornecido, os arquivos que corresponderem a qualquer um dos padrões não serão baixados. - max_workers (
int, opcional) — Número de threads concorrentes para baixar arquivos (1 thread = 1 download de arquivo). Padrão: 8. - tqdm_class (
tqdm, opcional) — Se fornecido, sobrescreve o comportamento padrão da barra de progresso. O argumento passado deve herdar detqdm.auto.tqdmou, pelo menos, imitar seu comportamento. Observe que atqdm_classnão é passada para cada download individual. Padrão: a barra de progresso personalizada do HF, que pode ser desativada definindo a variável de ambienteHF_HUB_DISABLE_PROGRESS_BARS. - dry_run (
bool, opcional, padrãoFalse) — SeTrue, executa uma simulação sem efetivamente baixar os arquivos. Retorna uma lista de objetos DryRunFileInfo contendo informações sobre o que seria baixado.
Retorna
str ou lista de DryRunFileInfo
- Se
dry_run=False: Caminho do snapshot local. - Se
dry_run=True: uma lista de objetos DryRunFileInfo contendo informações de download.
Exceções
RepositoryNotFoundError ou RevisionNotFoundError ou IncompleteSnapshotError ou EnvironmentError ou OSError ou ValueError
- RepositoryNotFoundError —
Se o repositório de onde o download será feito não puder ser encontrado. Isso pode ocorrer porque ele não existe
ou porque está definido como
privatee você não tem acesso. - RevisionNotFoundError — Se a revisão de onde o download deve ser feito não for encontrada.
- IncompleteSnapshotError —
Se o Hub não puder ser acessado (offline, problema de conexão ou
local_files_only=True) e o snapshot em cache estiver faltando alguns dos arquivos solicitados. EnvironmentError— Setoken=Truee o token não puder ser encontrado.OSError— se o ETag não puder ser determinado.ValueError— Se o valor de algum parâmetro for inválido.
Baixe os arquivos do repositório.
Baixe um snapshot completo dos arquivos de um repositório na revisão especificada. Isso é útil quando você deseja todos os arquivos de um repositório porque não sabe quais deles precisará a priori. Todos os arquivos são aninhados em uma pasta para manter seu caminho e nome de arquivo relativos a essa pasta. Você também pode filtrar quais arquivos baixar usando allow_patterns e ignore_patterns.
Se local_dir for fornecido, a estrutura de arquivos do repositório será replicada neste local. Ao usar esta opção, o cache_dir não será utilizado e uma pasta .cache/huggingface/ será criada na raiz de local_dir para armazenar alguns metadados relacionados aos arquivos baixados. Embora esse mecanismo não seja tão robusto quanto o sistema de cache principal, ele é otimizado para buscar regularmente a versão mais recente de um repositório.
Uma alternativa seria clonar o repositório, mas isso requer que o git e o git-lfs estejam instalados e configurados corretamente. Também não é possível filtrar quais arquivos baixar ao clonar um repositório usando o git.
Leia a árvore do repositório em cache
huggingface_hub.get_cached_repo_tree
< source >( repo_id: strrepo_type: str | None = Nonerevision: str | None = Nonecache_dir: str | pathlib.Path | None = Nonelocal_dir: str | pathlib.Path | None = None ) → list[RepoFile]
Parâmetros
- repo_id (
str) — Nome de um usuário ou organização e nome de um repositório separados por/. - repo_type (
str, opcional) — Defina como"dataset","space"ou"kernel"se estiver listando de um repositório de dataset, space ou kernel,Noneou"model"se estiver listando de um modelo. O padrão éNone. - revision (
str, opcional) — Um id de revisão Git opcional, que pode ser um nome de branch, uma tag ou um hash de commit. O padrão é a branch padrão. Os nomes de branch/tag são resolvidos para um hash de commit usando o cache local (refs/). - cache_dir (
str,Path, opcional) — Caminho para a pasta onde os arquivos em cache são armazenados. O padrão é o valor deHF_HUB_CACHE. - local_dir (
strouPath, opcional) — Se fornecido, lê a listagem da árvore em cache de um download delocal_dir(delocal_dir/.cache/huggingface/) em vez do cache principal. As revisões de branch/tag ainda são resolvidas para um hash de commit usando o cache principal (cache_dir).
Retorna
list[RepoFile]
A lista de objetos RepoFile em cache para esta revisão.
Exceções
- CachedRepoTreeNotFoundError — Se não houver uma listagem de árvore em cache para a revisão solicitada (por exemplo, o repositório nunca foi baixado nessa revisão).
Retorna a listagem em cache de um repositório em uma revisão específica, sem nenhuma chamada de rede.
A listagem da árvore é o conjunto de arquivos (com seus metadados de download) de um repositório em um commit. Ela é preenchida
no disco como efeito colateral de snapshot_download() (veja os arquivos de cache trees/<commit_hash>.json) e é
usada para evitar chamadas de rede em downloads subsequentes. Esta função expõe diretamente esse cache.
Se você precisar da listagem atual da árvore de um repositório no Hub, use list_repo_tree() em vez disso.
Resolver uma revisão
Resolva um nome de branch/tag para um hash de commit uma única vez e, em seguida, passe o resultado para fixar todos os downloads no mesmo commit. Consulte HfApi.resolve_revision() e o guia do sistema de cache.
ResolvedRevision
classe huggingface_hub.ResolvedRevision
< source >( resolved: strinitial: str | None = Nonerepo_id: str | None = Nonerepo_type: str | None = None )
Uma revisão do git que já foi resolvida para um hash de commit.
ResolvedRevision é uma subclasse de str, portanto, pode ser passada a qualquer método do huggingface_hub que aceite um argumento revision. Seu valor de string é a revisão inicialmente solicitada pelo usuário (por exemplo, "main", "refs/pr/4"), o que mantém as URLs e as mensagens de erro legíveis, enquanto .resolved contém o hash do commit para o qual ela aponta.
As instâncias são construídas por HfApi.resolve_revision(), que também faz o cache do mapeamento revision -> commit hash no cache local (pasta refs/).
Um hash de commit só tem significado para o repositório em que foi resolvido, por isso uma instância também memoriza esse repositório. Resolver novamente para outro repositório não é um erro: a revisão inicialmente solicitada é resolvida novamente (veja HfApi.resolve_revision()).
Exemplo:
>>> from huggingface_hub import resolve_revision
>>> revision = resolve_revision("openai-community/gpt2")
>>> revision
ResolvedRevision(initial=None, resolved='607a30d783dfa663caf39e06633721c8d4cfcd7e')
>>> revision == "main" # it's a string
True
>>> revision.resolved
'607a30d783dfa663caf39e06633721c8d4cfcd7e'Obter metadados sobre um arquivo
get_hf_file_metadata
huggingface_hub.get_hf_file_metadata
< source >( url: strtoken: bool | str | None = Nonetimeout: float | None = 10library_name: str | None = Nonelibrary_version: str | None = Noneuser_agent: dict | str | None = Noneheaders: dict[str, str] | None = Noneendpoint: str | None = Noneretry_on_errors: bool = False )
Parâmetros
- url (
str) — URL do arquivo, por exemplo, retornada por hf_hub_url(). - token (
stroubool, opcional) — Um token a ser usado para o download.- Se
True, o token é lido da pasta de configuração do HuggingFace. - Se
FalseouNone, nenhum token é fornecido. - Se for uma string, ela é usada como o token de autenticação.
- Se
- timeout (
float, opcional, padrão 10) — Quantos segundos esperar o servidor enviar metadados antes de desistir. - library_name (
str, opcional) — O nome da biblioteca à qual o objeto corresponde. - library_version (
str, opcional) — A versão da biblioteca. - user_agent (
dict,str, opcional) — As informações do user-agent na forma de um dicionário ou uma string. - headers (
dict, opcional) — Cabeçalhos adicionais a serem enviados com a solicitação. - endpoint (
str, opcional) — Endpoint do Hub. O padrão é https://huggingface.co. - retry_on_errors (
bool, opcional, padrãoFalse) — Se deve tentar novamente em caso de erros (429, 5xx, timeout, erros de rede). Se False, não há nova tentativa, permitindo um retorno rápido para o cache local.
Obtém os metadados de um arquivo versionado no Hub para uma URL fornecida.
HfFileMetadata
classe huggingface_hub.HfFileMetadata
< source >( commit_hash: str | Noneetag: str | Nonelocation: strsize: int | Nonexet_file_data: huggingface_hub.utils._xet.XetFileData | None )
Parâmetros
- commit_hash (
str, opcional) — O commit_hash relacionado ao arquivo. - etag (
str, opcional) — Etag do arquivo no servidor. - location (
str) — Local para onde o arquivo será baixado. Pode ser uma URL do Hub ou não (CDN). - size (
size) — Tamanho do arquivo. No caso de um arquivo LFS, contém o tamanho do arquivo LFS real, não o ponteiro. - xet_file_data (
XetFileData, opcional) — Informações do Xet para o arquivo. Isso é definido apenas se o arquivo for armazenado usando o armazenamento Xet.
Estrutura de dados contendo informações sobre um arquivo versionado no Hub.
Retornado por get_hf_file_metadata() com base em uma URL.
Cache
Os métodos exibidos acima foram projetados para funcionar com um sistema de cache que impede o re-download de arquivos. O sistema de cache foi atualizado na v0.8.0 para se tornar o sistema de cache central compartilhado entre as bibliotecas que dependem do Hub.
Leia o guia do sistema de cache para uma apresentação detalhada do cache na HF.
Update on GitHub