Hub Python Library documentation

Paradigma Git frente a HTTP

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Paradigma Git frente a HTTP

La biblioteca huggingface_hub es una biblioteca para interactuar con el Hugging Face Hub, que es una colección de repositorios basados en git (modelos, conjuntos de datos o Spaces). Hay dos formas principales de acceder al Hub usando huggingface_hub.

El primer enfoque, el llamado enfoque “basado en git”, se basa en el uso de comandos estándar de git directamente en una terminal. Este método permite clonar repositorios, crear commits y enviar cambios manualmente. La segunda opción, llamada enfoque “basado en HTTP”, implica realizar solicitudes HTTP utilizando el cliente HfApi. Examinemos las ventajas y desventajas de cada enfoque.

Git: el enfoque histórico basado en CLI

Al principio, la mayoría de los usuarios interactuaban con el Hugging Face Hub mediante comandos git básicos como git clone, git add, git commit, git push, git tag o git checkout.

Este enfoque te permite trabajar con una copia local completa del repositorio en tu máquina, igual que en el desarrollo de software tradicional. Esto puede ser una ventaja cuando necesitas acceso sin conexión o deseas trabajar con el historial completo de un repositorio. Sin embargo, también conlleva desventajas: eres responsable de mantener el repositorio actualizado localmente, de gestionar las credenciales y de administrar archivos grandes (mediante git-lfs), lo cual puede resultar engorroso al trabajar con modelos de aprendizaje automático o conjuntos de datos de gran tamaño.

En muchos flujos de trabajo de aprendizaje automático, es posible que solo necesite descargar unos pocos archivos para inferencia o convertir pesos sin necesidad de clonar todo el repositorio. En tales casos, usar git puede ser excesivo e introducir una complejidad innecesaria.

HfApi: un cliente HTTP flexible y práctico

La clase HfApi se desarrolló para ofrecer una alternativa al uso de repositorios git locales, que pueden ser tediosos de mantener, especialmente al trabajar con modelos o conjuntos de datos grandes. La clase HfApi ofrece la misma funcionalidad que los flujos de trabajo basados en git, como la descarga y el envío de archivos y la creación de ramas y etiquetas, pero sin la necesidad de una carpeta local que deba mantenerse sincronizada.

Además de las funcionalidades ya proporcionadas por git, la clase HfApi ofrece funciones adicionales, como la capacidad de gestionar repositorios, descargar archivos usando caché para un reutilizado eficiente, buscar en el Hub repositorios y metadatos, acceder a funciones de la comunidad como discusiones, PRs y comentarios, y configurar el hardware y los secretos de Spaces.

¿Qué debería usar? ¿Y cuándo?

En general, el enfoque basado en HTTP es la forma recomendada de usar huggingface_hub en todos los casos. HfApi te permite extraer y enviar cambios, trabajar con PRs, etiquetas y ramas, interactuar con discusiones y mucho más.

Sin embargo, no todos los comandos de git están disponibles a través de HfApi. Algunos quizás nunca se implementen, pero siempre intentamos mejorar y cerrar la brecha. Si no ves que tu caso de uso esté cubierto, por favor abre un issue en GitHub! Agradecemos los comentarios para ayudar a construir el ecosistema de HF con y para nuestros usuarios.

Esta preferencia por el HfApi basado en HTTP frente a los comandos directos de git no significa que el control de versiones con git desaparezca del Hugging Face Hub a corto plazo. Siempre será posible usar git localmente en flujos de trabajo donde tenga sentido.

Update on GitHub