Skip to main content
Utiliza un trabajo de Compute cuando necesites GPUs para una carga de trabajo finita, como el ajuste fino. Tú aportas una imagen de contenedor ordinaria y un comando; Compute asigna capacidad de GPU, ejecuta la carga de trabajo hasta completarla, transmite registros duraderos y libera el hardware automáticamente. Compute no tiene un esquema de ajuste fino. Un trabajo es una ejecución genérica de contenedor, así que esta guía ajusta finamente con ms-swift puramente como carga útil de la carga de trabajo — cualquier stack de entrenamiento funciona de la misma manera.
Esta guía alquila GPUs y ejecuta tu propio contenedor de entrenamiento. Para la API de ajuste fino gestionada que entrena modelos de la plataforma a partir de archivos JSONL subidos, consulta Ajustar finamente un modelo.

Antes de comenzar

Necesitas: Los trabajos pasan por requestedallocatingprovisioningrunningfinalizing, y luego aterrizan en un estado terminal:
  • Una carga de trabajo que sale con 0 termina como succeeded; un fallo en cualquier fase termina como failed.
  • Una terminación explícita, un límite alcanzado o un presupuesto de organización agotado mueven el trabajo a través de terminating hasta terminated.
La facturación comienza en la asignación, no en la disponibilidad.El gasto se acumula desde el momento en que se asigna el hardware, así que el tiempo de aprovisionamiento y los arranques fallidos cuestan dinero. Establece limits.max_runtime_hours y limits.max_cost_usd en cada trabajo; un trabajo que alcanza un límite se termina y se libera de inmediato.

Paso 1 - Elige un acelerador

Lista el catálogo curado de aceleradores y elige uno por su name estable.
Cada entrada describe el hardware, las cantidades de GPU que puedes solicitar y las interconexiones que admite:

Paso 2 - Consulta precio y disponibilidad

Opcionalmente, solicita una cotización antes de crear nada. Una cotización es una observación en vivo del mercado: devuelve si la configuración se puede obtener actualmente y el rango de precio por hora, y no reserva nada.
Una configuración no disponible sigue siendo una respuesta 200, con available: false y límites de precio nulos.

Paso 3 - Crea el trabajo

Crea el trabajo con el encabezado obligatorio Idempotency-Key. Reintentar con la misma clave y el mismo cuerpo devuelve el mismo trabajo con un 200 en lugar de crear un duplicado; la misma clave con un cuerpo diferente devuelve 409 idempotency_conflict. Este ejemplo ejecuta un pequeño ajuste fino LoRA de Qwen2.5-0.5B-Instruct y fusiona el adaptador, replicando la prueba de humo de la plataforma:
Notas sobre los campos: La respuesta es 201 con el trabajo duradero en estado requested:
Que la creación tenga éxito significa que la solicitud fue aceptada, no que exista capacidad. El agotamiento de capacidad, los errores del proveedor y los fallos de arranque aparecen después a través de state, reason, los registros y los eventos — nunca como un error HTTP en una creación que ya devolvió 201.

Paso 4 - Consulta el estado hasta que finalice

Mientras se ejecuta, el trabajo reporta el hardware que realmente obtuvo, el precio por hora capturado en la asignación, el gasto acumulado hasta el momento y un comando SSH listo para usar si proporcionaste una clave:
Cuando la carga de trabajo sale con 0, el trabajo pasa por finalizing hasta succeeded, se registra exit_code, el recurso del proveedor se libera automáticamente y el gasto deja de acumularse. Una salida distinta de cero termina en failed con un reason que explica el porqué. Los trabajos terminales siguen siendo legibles para auditoría y uso.

Paso 5 - Lee los registros y eventos

Los registros son duraderos y están paginados por cursor, y distinguen la salida de tu carga de trabajo de la salida del sistema.
Usa source=system para la salida de asignación y arranque, y order=asc (el valor por defecto) para paginar de más antiguo a más reciente. Las transiciones del ciclo de vida como provider_allocated, workload_started y workload_exited también están disponibles como eventos estructurados:

Paso 6 - Detén un trabajo antes de tiempo

La terminación es explícita, idempotente y devuelve el recurso actual.
No hay DELETE: el registro se conserva para auditoría, uso y conciliación. Un trabajo que alcanza limits.max_runtime_hours, limits.max_cost_usd o un presupuesto de la organización se termina de la misma manera, sin periodo de gracia y sin garantía de resultados parciales, así que publica los artefactos desde dentro de la carga de trabajo antes de que salga.

Usar mka1-repos para conjuntos de datos y pesos

Compute no almacena artefactos de las cargas de trabajo. La ruta recomendada es mka1-repos, el servicio de repositorios compatible con Hugging Face de la plataforma para modelos y conjuntos de datos: tu trabajo descarga el conjunto de datos desde ahí y publica los pesos fusionados de vuelta, todo desde dentro de la carga de trabajo. Dos convenciones de la plataforma hacen que esto funcione:
  1. Compute siempre inyecta HF_ENDPOINT en cada carga de trabajo, apuntando al endpoint de artefactos configurado para tu clúster. Las herramientas compatibles con Hugging Face — huggingface_hub, ms-swift con USE_HF=1, vLLM — resuelven los identificadores <org>/<name> contra él, de modo que las cargas de trabajo llegan a mka1-repos sin ningún cambio de código. No puedes sobrescribir HF_ENDPOINT por tu cuenta.
  2. mka1-repos autentica con tu clave de API de MKA1. Almacena la clave como un secreto de Compute e inyéctala como HF_TOKEN mediante secret_env, para que nunca aparezca en línea en la especificación del trabajo.
Crea el secreto una sola vez:
Los valores de los secretos son de solo escritura; la respuesta devuelve solo el id y los nombres de las claves:
Después escribe la carga de trabajo como un script que entrena desde tu repositorio de conjuntos de datos y publica los pesos fusionados:
train-and-publish.sh
Codifícalo con base64 < train-and-publish.sh y referencia el secreto en el cuerpo de creación:
Cuando el trabajo tiene éxito, los pesos fusionados pueden descargarse desde acme/qwen2.5-0.5b-support por cualquier miembro de tu organización, y un servicio de Compute puede servirlos directamente — consulta Desplegar un servidor de modelos.
Una terminación a mitad de la ejecución destruye todo lo que no se haya publicado aún. Publicar desde dentro de la carga de trabajo, como arriba, es el mecanismo de checkpointing soportado en esta versión.

Supervisar el gasto

Cada respuesta de trabajo incluye accrued_usd, y el endpoint de uso agrega el gasto entre recursos para una ventana de tiempo:
La facturación se mide en minutos completos por recurso, y el gasto de Compute se descuenta de los mismos presupuestos de organización que cualquier otro servicio de MKA1.

Referencia de API

Para ver el esquema completo de solicitud y respuesta, abre los grupos de Compute en la Referencia de API.

Ver también