Desplegar Potato en un Space de Hugging Face
Ejecuta una tarea de anotación con Potato en un Space de Docker de Hugging Face con potato deploy, con un respaldo cada cinco minutos en un dataset privado.
potato deploy up --provider huggingface ejecuta una tarea de anotación en un Space de Docker de Hugging Face, con HTTPS en una dirección hf.space y sin nada que configurar en un servidor. Encaja con una demo pública de una tarea y con un laboratorio cuyos datos y modelos ya están en el Hugging Face Hub. El disco de un Space se borra en cada reinicio, así que Potato guarda las anotaciones en un dataset privado de Hugging Face que crea junto con el Space. Respalda las anotaciones en el dataset cada cinco minutos y las restaura cuando arranca el Space. Esta página requiere Potato 2.10 o posterior y una configuración que ya hayas ejecutado con potato start.
Requisitos y límites de un Space
Los Spaces de Potato son Spaces de Docker, y crear un Space de Docker requiere un plan de pago de Hugging Face: PRO para una cuenta personal, o Team o Enterprise para una organización. Además, una cuenta u organización en el nivel gratuito de Hugging Face ejecuta como máximo tres Spaces a la vez. Un cuarto se queda en PAUSED y, a diferencia de un Space dormido, uno en pausa nunca se despierta cuando alguien lo abre.
Para un estudio de varias semanas con anotadores con nombre, una máquina virtual como AWS Lightsail, Jetstream2 o Hetzner conserva su disco entre reinicios, así que los datos no dependen de un respaldo. Un Space encaja mejor cuando las personas a las que quieres llegar ya tienen cuenta en Hugging Face, o cuando la tarea es una demostración cuyas anotaciones puedes permitirte perder.
Configurar un token de Hugging Face
Potato crea el Space y el dataset con tu token de Hugging Face. Crea un token con acceso de escritura en tus ajustes de Hugging Face, después instala el extra de Hugging Face y pon el token en tu entorno:
pip install 'potato-annotation[huggingface]'
export HF_TOKEN=hf_...
potato deploy providers --verifyproviders --verify muestra la cuenta a la que pertenece el token. Potato pasa el token al Space como secreto del Space para que el respaldo pueda escribir en el dataset, y nunca lo incluye en un commit del repositorio del Space.
Decidir quién puede iniciar sesión
potato deploy no cambia tus ajustes de inicio de sesión, y cualquiera que tenga la dirección de un Space público puede abrirlo. Si la configuración permite que cualquiera se registre, la ejecución de prueba de abajo muestra el aviso D003, «Anyone who finds the URL can register and annotate.» (Cualquiera que encuentre la URL puede registrarse y anotar.) El registro abierto suele encajar con una demo. Para anotadores con nombre, inclúyelos en user_config.users con allow_all_users: false (Gestión de contraseñas), o haz que inicien sesión con sus cuentas de Hugging Face, que Potato admite como proveedor integrado en authentication.providers (SSO y OAuth).
Revisar el plan y desplegar
Una ejecución de prueba no crea nada y muestra lo que crearía el despliegue:
potato deploy up myproject/config.yaml --provider huggingface --dry-runEl plan crea el dataset privado <account>/<name>-annotations y después un Space de Docker <account>/<name>, define como secretos del Space la clave de sesión, la clave de administración y el token, y sube tu proyecto con un Dockerfile y un README. El Dockerfile parte de la imagen publicada de Potato para la versión que tienes instalada, así que el Space solo contiene los archivos de tu proyecto. --owner despliega bajo una organización, --private hace privado el propio Space, y --name sustituye el nombre tomado de la tarea.
Ejecuta el comando sin --dry-run y confirma el plan:
potato deploy up myproject/config.yaml --provider huggingfaceEl despliegue espera a que el Space esté en marcha y muestra su dirección, https://<account>-<name>.hf.space, y la ruta del archivo de la clave de administración, .potato/secrets.json, junto a tu configuración. La clave de administración abre el panel de administración en /admin. Un Space en hardware gratuito se duerme tras 48 horas sin visitas y se despierta cuando alguien lo abre, y las anotaciones vuelven del dataset cada vez.
Terminar el estudio
potato deploy pull descarga el dataset de respaldo, que contiene todo lo que el Space ha guardado, en lugar de leer el propio Space:
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yamldestroy borra el Space y deja el dataset en su sitio, porque borrar un Space se puede deshacer volviendo a desplegar y borrar las anotaciones no. Cuando ya no necesites el dataset, bórralo desde su página de ajustes en el Hub.
Desplegar sin respaldo
--demo despliega el Space sin dataset, para una demostración cuyas anotaciones no importan. La ejecución de prueba avisa entonces de que todo lo recogido se pierde en el siguiente reinicio. Sin dataset, pull lee el Space en marcha mediante la exportación de administración, que solo funciona mientras el Space está activo.
Solución de problemas
Un error de pago al crear significa que la cuenta u organización no tiene un plan de pago. Los Spaces de Docker necesitan PRO para una cuenta personal, o Team o Enterprise para una organización.
El Space está en PAUSED cuando una cuenta del nivel gratuito ya ejecuta tres Spaces. Pausa otro y después reinicia este desde su página de ajustes. Reiniciar un Space existente no requiere un plan de pago.
Faltan anotaciones tras una recompilación cuando el Space no ha podido restaurar desde el dataset. El registro del Space muestra una línea RESTORED cuando la restauración tiene éxito, y si falta, lo normal es que el secreto HF_TOKEN del Space no exista o no tenga acceso de escritura.
BUILD_ERROR se explica en el registro de compilación en https://huggingface.co/spaces/<account>/<name>?logs=build.
Lecturas adicionales
- Ejecutar Potato en local o en la nube, para los demás destinos en la nube y las opciones de respaldo
- Desplegar un servidor de anotación, para elegir un host
- Referencia de Hugging Face Spaces