Hub documentation

Xet: nosso backend de armazenamento

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Xet: nosso backend de armazenamento

Os repositórios no Hugging Face Hub são diferentes dos das plataformas de desenvolvimento de software. Eles contêm arquivos que são:

  • Large - os arquivos de modelo ou dataset estão na faixa de GB e acima. Temos alguns arquivos em escala de TB!
  • Binário - não está em um formato legível por humanos por padrão (por exemplo, Safetensors ou Parquet)

Embora o Hub utilize controle de versão moderno com o suporte do Git, essas diferenças tornam os repositórios de Model e Dataset bastante diferentes daqueles que contêm apenas código-fonte.

Armazenar esses arquivos diretamente em um repositório Git puro é impraticável. Não apenas os sistemas de armazenamento típicos por trás dos repositórios Git não são adequados para esse tipo de arquivo, mas, ao clonar um repositório, o Git recupera todo o histórico, incluindo todas as revisões dos arquivos. Isso pode ser proibitivamente grande para binários massivos, forçando você a baixar gigabytes de dados históricos que talvez você nunca precise.

Em vez disso, no Hub, esses arquivos grandes são rastreados usando “arquivos ponteiro” e identificados por meio de um arquivo .gitattributes (ambos discutidos em mais detalhes abaixo), que permanecem no repositório Git, enquanto os dados reais são armazenados em armazenamento remoto (como Amazon S3). Como resultado, o repositório permanece pequeno e os fluxos de trabalho típicos do Git permanecem eficientes.

Historicamente, os repositórios do Hub dependiam do Git LFS para esse mecanismo. Embora o Git LFS continue sendo suportado (veja Compatibilidade com versões anteriores & Legado), o Hub adotou o Xet, um sistema de armazenamento moderno e personalizado, construído especificamente para o desenvolvimento de IA/ML. Ele permite deduplicação em nível de chunk, uploads menores e downloads mais rápidos do que o Git LFS.

Protocolo Xet de Código Aberto

Se você deseja entender o protocolo Xet subjacente ou está buscando criar uma nova biblioteca de cliente para acessar o Xet Storage, confira a Especificação do Protocolo Xet.

Nessas páginas você vai começar a usar o Xet Storage.

Conteúdos

Update on GitHub