Hub documentation
Próximos pasos
Próximos pasos
Las siguientes secciones destacan funciones e información adicional que pueden resultarle útiles para aprovechar al máximo los repositorios de Git en el Hugging Face Hub.
Cómo gestionar repositorios de forma programática
Hugging Face permite acceder a repositorios con Python a través de la biblioteca huggingface_hub. Las operaciones que hemos explorado, como la descarga de repositorios y la carga de archivos, están disponibles a través de la biblioteca, ¡así como otras funciones útiles!
Si prefiere usar git directamente, lea las secciones siguientes.
Aprender más sobre Git
Un buen lugar para visitar si quieres seguir aprendiendo sobre Git es este tutorial de Git. Para obtener más información de fondo sobre Git, puedes echar un vistazo a las guías de Git de GitHub.
Cómo usar ramas
Para usar repositorios de Git de forma colaborativa y trabajar en funciones sin publicar código prematuro, puedes usar ramas. Las ramas te permiten separar el código “en desarrollo” del código “listo para producción”, con la ventaja adicional de permitir que varias personas trabajen en un proyecto sin entrar en conflicto con frecuencia entre sus contribuciones. Puedes usar ramas para aislar experimentos en su propia rama e incluso adoptar prácticas de equipo para gestionar ramas.
Para aprender sobre ramas de Git, puedes probar el tutorial interactivo Learn Git Branching.
Uso de etiquetas
Git te permite etiquetar commits para que puedas señalar fácilmente los hitos de tu proyecto. De esta manera, puedes usar etiquetas para marcar commits en tus repositorios de Hub. Para aprender sobre el uso de etiquetas, puedes visitar esta publicación de DevConnected.
Además de facilitar la identificación de commits importantes en el historial de tu repositorio, el uso de etiquetas de Git también te permite realizar pruebas A/B, clonar un repositorio en una etiqueta específica y mucho más. La biblioteca huggingface_hub también permite trabajar con etiquetas, como descargar archivos de un commit etiquetado específico.
Cómo duplicar un repositorio
Existen varias formas de duplicar un repositorio, dependiendo de si necesitas conservar el historial de Git.
Duplicar desde el Hub
Haz clic en los tres puntos de la esquina superior derecha de cualquier página de repositorio y luego selecciona Duplicate this model, Duplicate this dataset o Duplicate this Space. Esta operación es casi instantánea gracias al uso de la Xet deduplication technology. Podrás elegir:
- Propietario: Tu cuenta o cualquier organización en la que tengas acceso de escritura.
- Nombre del repositorio: El nombre del repositorio duplicado. Por defecto, mantiene el mismo nombre que el origen, bajo tu espacio de nombres (p. ej., duplicar
bigscience/bloom-560mcreayour-username/bloom-560m). - Visibilidad: Puedes elegir hacer el repositorio duplicado público o privado. Lee más sobre los repositorios privados aquí.
Para los modelos y conjuntos de datos, el historial de Git se comprime en un único commit. Para los Spaces, se conserva el historial completo de Git. Las variables públicas se copian para los Spaces, pero los secretos deben volver a introducirse manualmente.
Restricciones
Algunos repositorios no se pueden duplicar:
- Repositorios con acceso restringido (modelos o conjuntos de datos con solicitudes de acceso habilitadas).
- Repositorios donde el autor ha desactivado la duplicación.
- La duplicación entre regiones no está admitida (p. ej., un repositorio almacenado en la región de EE. UU. no puede duplicarse en una organización de la UE).
Duplicación programática
También puedes duplicar repositorios usando la biblioteca huggingface_hub o la CLI. Estos utilizan la misma API del lado del servidor que el botón de Hub anterior (el historial de Git se comprime para modelos y conjuntos de datos, y se preserva para Spaces).
Usando 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)O usando la CLI:
hf repos duplicate bigscience/bloom-560m
hf repos duplicate openai/gdpval --type datasetPara Spaces, aún necesitarás configurar tus propios ajustes (hardware, tiempo de inactividad, almacenamiento, variables y secretos). Consulta la guía Administrar tu Space para más detalles.
Alternativamente, si deseas mantener una copia local del repositorio, puedes usar hf download seguido de hf upload a un espacio de nombres diferente. Esto tampoco conservará el historial de Git.
Bifurcación manual con Git
Si necesitas preservar el historial de Git para modelos/conjuntos de datos, o quieres tener más control sobre el proceso (por ejemplo, hacer un rebase sobre tus propios cambios), puedes bifurcar un repositorio manualmente usando Git.
Necesitarás tener instalado git-xet. El forking puede tardar dependiendo de tu ancho de banda, ya que tendrás que descargar y volver a subir todos los archivos LFS (aunque la re-subida será rápida gracias a Xet).
Crea un repositorio de destino (p. ej.
me/myfork) en https://hfp.19830613.xyzClónalo y añade el repositorio de origen como remoto:
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- Reemplaza el contenido del fork con el historial de upstream:
git reset --hard upstream/main
- Push:
git push --force origin main