Hub Python Library documentation

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

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v2.4.0).
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