Hub documentation
Introducción
Introducción
Ejecuta tu código de Python en las CPUs y GPUs de Hugging Face. En esta guía, ejecutarás un comando simple en una CPU y luego generarás texto con un modelo de lenguaje pequeño en una GPU.
Necesitarás una cuenta de Hugging Face con créditos prepagados. Consulta Pricing and Billing para conocer los costos de cómputo.
1. Configurar la CLI
Instala la CLI de Hugging Face y luego inicia sesión en tu cuenta:
>>> hf auth login2. Ejecutar Hello World
Ejecuta este comando en tu terminal:
>>> hf jobs uv run python -c 'print("Hello from the cloud!")'hf jobs uv run ejecuta el comando en un entorno de Python en la infraestructura de Hugging Face. Utiliza una CPU de forma predeterminada y transmite los registros del Job a tu terminal. Después del inicio, verás:
Hello from the cloud!
La CLI también imprime el ID de tu Job y un enlace a su página. Abre el enlace para ver su estado y registros en tu navegador. Puedes encontrar tus Jobs de nuevo en tu página de Jobs, o usar el ID con los comandos de CLI a continuación.
Los trabajos también pueden ejecutar un comando en cualquier imagen de Docker:
>>> hf jobs run ubuntu echo 'Hello from the cloud!'El resto de esta guía utiliza hf jobs uv run. Consulta Uso de imágenes de Docker para saber cuándo y cómo usar una imagen.
3. Ejecutar un modelo en una GPU
Ejecuta este script preparado para generar un nombre de robot. Puedes verlo en GitHub o leer el código a continuación.
hf jobs uv run \
--flavor t4-small \
--timeout 5m \
https://raw.githubusercontent.com/huggingface/hub-docs/main/examples/jobs/hello_gpu.py--flavor t4-smallselecciona una máquina con una GPU NVIDIA T4.--timeout 5mestablece un límite de cinco minutos para el Job.
El Job descarga el modelo e imprime su respuesta en los registros. Por ejemplo:
RoboLearnbot
Aquí está el script completo:
# /// script
# dependencies = ["torch", "transformers"]
# ///
from transformers import pipeline
generator = pipeline(
"text-generation",
model="HuggingFaceTB/SmolLM2-360M-Instruct",
dtype="float16",
)
messages = [{
"role": "user",
"content": "Suggest a name for a robot that helps people learn Python. Answer with only the name.",
}]
outputs = generator(messages, max_new_tokens=48, do_sample=False, return_full_text=False)
print(outputs[0]["generated_text"])El encabezado de dependencias le indica a uv que instale torch y transformers en el Job. También puedes especificar dependencias con --with. Solo necesitas la CLI hf localmente.
El script ejecuta SmolLM2-360M-Instruct en la GPU del trabajo. max_new_tokens limita la longitud de la respuesta.
El tiempo de inicio varía según la disponibilidad del hardware, la instalación de dependencias y las descargas de modelos.
Al presionar Ctrl+C se detiene la transmisión de registros; el Job sigue ejecutándose. Para detener el Job, use
hf jobs cancel JOB_ID, reemplazandoJOB_IDcon el ID que imprime la CLI.
También puede iniciar el mismo Job desde Python con el cliente huggingface_hub:
from huggingface_hub import run_uv_job
job = run_uv_job(
"https://raw.githubusercontent.com/huggingface/hub-docs/main/examples/jobs/hello_gpu.py",
flavor="t4-small",
timeout="5m",
)
print(job.url)4. Comprueba tu resultado
Utilice el ID del trabajo de GPU para verificar su estado y leer sus registros nuevamente:
>>> hf jobs inspect JOB_ID
>>> hf jobs logs JOB_IDUna ejecución exitosa tiene el estado COMPLETED y sus registros contienen la respuesta generada.
La respuesta sigue disponible en los registros del Job después de que finalice. Cuando adaptes el script para generar archivos, guarda esos resultados en un bucket o en un repositorio de Hub para que sobrevivan al Job.
Prueba tu propio script (opcional)
Copia el código anterior en hello_gpu.py, edita el prompt en messages y ejecuta tu archivo local:
hf jobs uv run --flavor t4-small --timeout 5m hello_gpu.pyLa CLI sube automáticamente tu script editado. Reemplaza hello_gpu.py con su ruta si lo guardaste en otro lugar.
Próximos pasos
Construya sobre este ejemplo con una carga de trabajo mayor:
- Anota un conjunto de datos con OCR, clasificación o inferencia por lotes.
- Entrena o ajusta un modelo y guárdalo en el Hub.
- Leer conjuntos de datos o cubos y guardar los resultados procesados.
- Ejecutar comandos en imágenes de Docker.
- Usar Jobs desde un agente de codificación.