Esta guía se basa en la CLI de Hugging Face desde la versión 0.34.4. En esta versión la sintaxis antigua huggingface-cli se sustituye por el nuevo comando hf. He creado este recordatorio para tener una referencia breve y clara de la CLI de Hugging Face. En lugar de buscar en la documentación oficial, aquí encuentro los comandos, descripciones y ejemplos más importantes de un vistazo.

¿Qué es Hugging Face?
Hugging Face es una plataforma de aprendizaje automático. En el centro está el Hugging Face Hub, un repositorio público y privado para modelos de IA, conjuntos de datos y aplicaciones (Spaces). Desarrolladoras y desarrolladores pueden compartir, descargar y reutilizar modelos allí. Además del Hub, Hugging Face ofrece bibliotecas como transformers, datasets y diffusers, que facilitan el uso práctico de modelos de IA. El Hub funciona tanto como mercado como infraestructura para el desarrollo colaborativo.

¿Qué es la CLI de Hugging Face?
La CLI de Hugging Face es una herramienta de línea de comandos que te permite acceder directamente al Hub de Hugging Face. Con ella gestionas la autenticación, descarga, subida y administración de repositorios de modelos, conjuntos de datos y Spaces. La CLI utiliza internamente la biblioteca de Python huggingface_hub. Todo lo que puedes hacer con esta biblioteca a menudo también puede hacerse con la CLI de forma scriptable.

Comando hfDescripciónEjemplo de uso
hf auth loginAutenticación en Hugging Face con un token de acceso personal. El comando guarda el token localmente en la caché y (opcionalmente) en el administrador de credenciales de Git.-
hf auth whoamiMuestra la cuenta actualmente autenticada.-
hf auth logoutDesautenticación. Elimina el token del almacenamiento local.-
hf cache scanMuestra los modelos, conjuntos de datos, etc., que están almacenados en caché localmente, junto con sus tamaños, número de archivos y rutas.-
hf cache deleteOfrece la opción de eliminar versiones en caché de forma interactiva (TUI) o mediante selección de archivos.-
hf downloadDescarga archivos o repositorios del Hub y los guarda en la caché local.hf download meta-llama/Llama-3.1-8B-Instruct –local-dir ./llama3-8b
hf uploadhf upload sube un único archivo a un repositorio en el Hugging Face Hub que hayas creado. Este repositorio pertenece ya sea a tu cuenta de usuario o a una organización de la que eres miembro. Tú decides si es público o privado. Si la subida se interrumpe, debes volver a subir el archivo. hf upload está pensado para archivos pequeños o para unos pocos archivos.Repositorio de ejemplo: https://huggingface.co// hf upload –repo-id [dein-username]/[mein-repository-name] [lokale-datei] [ziel-datei] p. ej. hf upload –repo-id aaron/my-model ./config.json config.json
hf upload-large-folderSube carpetas completas; admite reanudar la transferencia en caso de interrupción.hf upload-large-folder –repo-id [dein-username]/[mein-repository-name] [folder_path] p. ej. hf upload-large-folder –repo-id aaron/my-model ./training_output
hf lfs-multipart-uploadCon este comando se pueden subir archivos muy grandes de manera fiable, por ejemplo pesos de modelos o puntos de control de entrenamiento en el rango de decenas de gigabytes. El archivo se divide localmente en bloques de datos más pequeños. Cada bloque se transfiere de forma individual al repositorio de Hugging Face en el Hub y allí se recompone automáticamente en un archivo completo. La ventaja de esta técnica es que una subida interrumpida no tiene que comenzar desde cero. Los bloques ya subidos permanecen en el repositorio. Al reiniciar, la herramienta comprueba qué bloques faltan y sólo transfiere esos. De este modo, también es posible cargar archivos muy grandes de forma estable y sin repeticiones innecesarias en un repositorio.hf lfs-multipart-upload –repo-id [dein-username]/[mein-repository-name] [file_path] p. ej. hf lfs-multipart-upload –repo-id aaron/my-model ./model.safetensors
hf lfs-enable-largefilesSi trabajas con un repositorio en Hugging Face Hub usando Git y Git LFS, en tu carpeta local están todos los archivos, incluidos los grandes pesos del modelo. Al hacer push, Git distingue: archivos pequeños como una config.json se almacenan directamente en el historial de Git, mientras que archivos grandes como model.safetensors se sustituyen mediante Git LFS. En el historial queda sólo un puntero pequeño; los datos reales se guardan por separado en el almacenamiento LFS de Hugging Face. Al clonar o con hf download, el cliente primero descarga los punteros y luego los archivos completos desde ese almacenamiento LFS. GitHub funciona con el mismo principio. Allí también se externalizan los archivos grandes con Git LFS. Por defecto, el límite es de 100 MB por archivo. Todo lo que exceda no se puede hacer push directamente, por lo que Git LFS es necesario. Hugging Face está construido de forma similar, pero optimizado para modelos grandes. Archivos de varios gigabytes son comunes allí y Git LFS es la solución prevista. El comando hf lfs-enable-largefiles configura un repositorio clonado de Hugging Face para que los archivos grandes se gestionen automáticamente con Git LFS. Git LFS evita que los archivos grandes inflen el historial de Git y previene pushs fallidos. Sólo necesitas este comando si realmente trabajas con Git en el repositorio, es decir, clonas, haces commits y pushes. Si subes archivos únicamente con hf upload o hf upload-large-folder, no es necesario.En el repositorio clonado: hf lfs-enable-largefiles
hf repo createCrea un nuevo repositorio para modelo, conjunto de datos, Space, etchf repo create [dein-username]/[mein-repository-name] –type model p. ej. hf repo create aaron/my-model –type model
hf repo-filesMuestra la estructura (archivos) de un repositoriohf repo-files [dein-username]/[mein-repository-name] p. ej. hf repo-files aaron/my-model
hf envhf env ofrece una visión detallada de tu entorno de trabajo local. Incluye la versión instalada de huggingface_hub, el sistema operativo, la versión de Python, bibliotecas utilizadas como PyTorch o TensorFlow, así como las ubicaciones de la caché y de los tokens. La salida está pensada principalmente para fines de diagnóstico, por ejemplo, cuando informes de un problema en el repositorio de GitHub de Hugging Face o quieras revisar tu propia configuración-
hf versionMuestra la versión instalada de hf (es decir, de huggingface_hub)-
hf jobsGestión de jobs en el Hub: ejecutar scripts o contenedores Docker en Hugging Face (además de la CLI)hf jobs run –flavor t4-small ubuntu nvidia-smi