Hub Python Library documentation

Парадигма Git и HTTP

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Парадигма 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 локально в рабочих процессах, где это уместно, всегда будет возможно.

Update on GitHub