Hub documentation

Дальнейшие шаги

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Дальнейшие шаги

В следующих разделах описаны возможности и дополнительная информация, которые помогут вам в полной мере использовать репозитории Git на Hugging Face Hub.

Как программно управлять репозиториями

Hugging Face поддерживает доступ к репозиториям с помощью Python через библиотеку huggingface_hub. Операции, которые мы рассмотрели, такие как загрузка репозиториев и загрузка файлов, доступны через эту библиотеку, а также другие полезные функции!

Если вы предпочитаете работать с git напрямую, ознакомьтесь с разделами ниже.

Узнаем больше о Git

Хорошим местом для продолжения изучения Git является это учебное пособие по Git. Для более глубокого понимания Git вы можете ознакомиться с руководствами по Git от GitHub.

Как использовать ветки

Чтобы эффективно использовать репозитории Git в совместной работе и разрабатывать функции, не публикуя недоработанный код, можно использовать ветки. Ветки позволяют разделять код «в работе» и код, готовый к продакшену, а также дают дополнительное преимущество: несколько человек могут работать над проектом, не сталкиваясь с частыми конфликтами в своих изменениях. Вы можете использовать ветки для изоляции экспериментов в отдельных ветках и даже внедрить общеконные практики управления ветками.

Чтобы узнать о ветвлении в Git, вы можете пройти интерактивный учебник Learn Git Branching.

Использование тегов

Git позволяет помечать коммиты, чтобы легко отмечать важные этапы в вашем проекте. Таким образом, вы можете использовать теги для пометки коммитов в ваших репозиториях на Hub! Чтобы узнать о работе с тегами, вы можете посетить этот пост на DevConnected.

Помимо упрощения поиска важных коммитов в истории вашего репозитория, использование тегов Git также позволяет проводить A/B-тестирование, клонировать репозиторий на определённом теге и многое другое! Библиотека huggingface_hub также поддерживает работу с тегами, например, загрузку файлов из конкретного помеченного теком коммита.

Как дублировать репозиторий

Существует несколько способов дублирования репозитория, в зависимости от того, нужно ли сохранять историю Git.

Дублирование из Hub

Нажмите на три точки в правом верхнем углу любой страницы репозитория, затем выберите Дублировать эту модель, Дублировать этот набор данных или Дублировать этот Space. Эта операция выполняется практически мгновенно благодаря использованию технологии дедупликации Xet. Вы сможете выбрать:

  • Владелец: ваша учетная запись или любая организация, в которой у вас есть права на запись.
  • Имя репозитория: Имя дублируемого репозитория. По умолчанию сохраняется то же имя, что и у исходного, в вашем пространстве имён (например, дублирование bigscience/bloom-560m создаёт your-username/bloom-560m).
  • Видимость: вы можете сделать дублированный репозиторий публичным или частным. Подробнее о частных репозиториях — здесь.

Для моделей и наборов данных история Git сжимается в один коммит. Для Spaces полная история Git сохраняется. Публичные переменные копируются для Spaces, но секреты необходимо ввести вручную.

Ограничения

Некоторые репозитории нельзя дублировать:

  • Репозитории с ограниченным доступом (модели или наборы данных, для которых включена система запросов на доступ).
  • Репозитории, в которых автор отключил дублирование.
  • Дублирование между регионами не поддерживается (например, репозиторий, хранящийся в регионе США, нельзя продублировать в организацию в ЕС).

Дублирование программно

Вы также можете дублировать репозитории с помощью библиотеки huggingface_hub или CLI. Они используют тот же серверный API, что и кнопка Hub выше (история Git сжимается для моделей и наборов данных, сохраняется для Spaces).

Использование Python:

from huggingface_hub import duplicate_repo

duplicate_repo("bigscience/bloom-560m", private=False)
duplicate_repo("openai/gdpval", repo_type="dataset")
duplicate_repo("multimodalart/dreambooth-training", repo_type="space", private=False)

Или с помощью CLI:

hf repos duplicate bigscience/bloom-560m
hf repos duplicate openai/gdpval --type dataset

Для Spaces вам всё равно потребуется настроить собственные параметры (аппаратное обеспечение, время сна, хранилище, переменные и секреты). Подробнее см. в руководстве Управление вашим Space.

В качестве альтернативы, если вы хотите сохранить локальную копию репозитория, вы можете использовать hf download, а затем hf upload в другое пространство имён. Это также не сохранит историю Git.

Ручное создание форка с помощью Git

Если вам нужно сохранить историю Git для моделей/датасетов или требуется больший контроль над процессом (например, rebase поверх собственных изменений), вы можете вручную создать форк репозитория с помощью Git.

Для работы потребуется установленный git-xet. Процесс создания форка может занять время в зависимости от пропускной способности вашего канала, так как необходимо загрузить и повторно загрузить все файлы LFS (хотя повторная загрузка будет быстрой благодаря Xet).

  1. Создайте целевой репозиторий (например, me/myfork) на https://huggingface.co

  2. Склонируйте его и добавьте исходный репозиторий как удалённый:

git clone git@hf.co:me/myfork
cd myfork
git xet install
git remote add upstream git@hf.co:friend/upstream
git fetch upstream
git lfs fetch --all upstream
  1. Замените содержимое форка историей из исходного репозитория:
git reset --hard upstream/main
  1. Отправка:
git push --force origin main
Update on GitHub