Hub Python Library documentation
Парадигма Git и HTTP
Парадигма Git и HTTP
Библиотека huggingface_hub предназначена для взаимодействия с Hugging Face Hub — коллекцией репозиториев на базе git (моделей, наборов данных или Spaces). Существует два основных способа доступа к Hub с помощью huggingface_hub.
Первый подход, так называемый «git-based», основан на использовании стандартных команд git непосредственно в терминале. Этот метод позволяет клонировать репозитории, создавать коммиты и вручную отправлять изменения. Второй вариант, называемый «HTTP-based», предполагает отправку HTTP-запросов с помощью клиента HfApi. Рассмотрим преимущества и недостатки каждого из подходов.
Git: исторический подход на основе CLI
Сначала большинство пользователей взаимодействовали с Hugging Face Hub с помощью обычных команд git, таких как git clone, git add, git commit, git push, git tag или git checkout.
Этот подход позволяет работать с полной локальной копией репозитория на вашем компьютере, как в традиционной разработке ПО. Это может быть преимуществом, если вам нужен доступ в автономном режиме или вы хотите работать с полной историей репозитория. Однако у этого подхода есть и недостатки: вы сами отвечаете за актуальность локальной копии репозитория, управление учётными данными и работу с большими файлами (через git-lfs), что может стать неудобным при работе с большими моделями машинного обучения или наборами данных.
Во многих рабочих процессах машинного обучения может потребоваться скачать лишь несколько файлов для инференса или конвертировать веса, не клонируя весь репозиторий. В таких случаях использование git может быть избыточным и вносить ненужную сложность.
HfApi: гибкий и удобный HTTP-клиент
Класс HfApi был разработан как альтернатива использованию локальных git-репозиториев, которые могут быть неудобны в обслуживании, особенно при работе с крупными моделями или наборами данных. Класс HfApi предоставляет тот же функционал, что и git-ориентированные рабочие процессы, — такие как загрузка и отправка файлов, а также создание веток и тегов, — но без необходимости поддерживать локальную папку в синхронизированном состоянии.
Помимо функциональности, уже предоставляемой git, класс HfApi предлагает дополнительные возможности, такие как управление репозиториями, загрузка файлов с использованием кэширования для эффективного повторного использования, поиск репозиториев и метаданных на Hub, доступ к функциям сообщества, таким как обсуждения, PR и комментарии, а также настройка аппаратного обеспечения и секретов Spaces.
Что использовать? И когда?
В целом, HTTP-подход является рекомендуемым способом использования huggingface_hub во всех случаях. HfApi позволяет получать и отправлять изменения, работать с PR, тегами и ветками, взаимодействовать с обсуждениями и многое другое.
Однако не все команды git доступны через HfApi. Некоторые из них, возможно, никогда не будут реализованы, но мы постоянно стремимся к улучшению и сокращению разрыва. Если вы не видите, что ваш сценарий использования поддерживается, пожалуйста, создайте issue на GitHub! Мы приветствуем обратную связь, чтобы вместе с нашими пользователями и для них развивать экосистему HF.
Предпочтение HTTP-интерфейса HfApi перед прямыми командами git не означает, что версионирование через git скоро исчезнет из Hugging Face Hub. Использование git локально в рабочих процессах, где это уместно, всегда будет возможно.