Hub documentation

Xet: наш хранилищный бэкенд

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Xet: наш хранилищный бэкенд

Репозитории на Hugging Face Hub отличаются от репозиториев на платформах для разработки ПО. Они содержат файлы, которые:

  • Large - файлы моделей или датасетов размером в гигабайты и более. У нас есть файлы масштаба нескольких терабайт!
  • Бинарный — по умолчанию не в формате, читаемом человеком (например, Safetensors или Parquet)

Хотя Hub использует современное управление версиями с поддержкой Git, эти различия делают репозитории Model и Dataset существенно отличающимися от тех, что содержат только исходный код.

Хранение этих файлов непосредственно в чистом репозитории Git непрактично. Не только то, что типовые системы хранения, лежащие в основе репозиториев Git, не предназначены для таких файлов, но и при клонировании репозитория Git загружает всю историю, включая все ревизии файлов. Для массивных бинарных файлов это может быть неприемлемо большим объёмом, заставляя вас скачивать гигабайты исторических данных, которые вам, возможно, никогда не понадобятся.

Вместо этого на Hub такие большие файлы отслеживаются с помощью «указательных файлов» и идентифицируются через файл .gitattributes (оба аспекта подробнее описаны ниже), которые остаются в Git-репозитории, тогда как сами данные хранятся в удалённом хранилище (например, Amazon S3). В результате репозиторий остаётся компактным, а типовые рабочие процессы Git сохраняют свою эффективность.

Исторически репозитории Hub использовали Git LFS для этого механизма. Хотя поддержка Git LFS сохраняется (см. Совместимость с предыдущими версиями и устаревшие методы), Hub перешёл на Xet — современную собственную систему хранения, созданную специально для разработки в области ИИ/ML. Она обеспечивает дедупликацию на уровне чанков, уменьшение размера загрузок и более быстрое скачивание по сравнению с Git LFS.

Открытый протокол Xet

Если вы хотите разобраться в протоколе Xet или создать новую клиентскую библиотеку для доступа к Xet Storage, ознакомьтесь со спецификацией протокола Xet.

На этих страницах вы познакомитесь с основами работы с Xet Storage.

Содержание

Update on GitHub