Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
El entorno de ejecución de IA para tareas de nodo único está en versión preliminar pública. La API de entrenamiento distribuido para cargas de trabajo de varias GPU permanece en beta.
En este artículo se describe cómo usar MLflow, supervisar el estado de la GPU, ver los registros y administrar los puntos de control del modelo en tiempo de ejecución de IA.
Integración de MLflow
AI Runtime se integra de forma nativa con MLflow para el seguimiento de experimentos, el registro de modelos y la visualización de métricas.
Recomendaciones de configuración:
Actualice MLflow a la versión 3.7 o posterior y siga los patrones de flujo de trabajo de aprendizaje profundo.
Habilite el registro automático para PyTorch Lightning:
import mlflow mlflow.pytorch.autolog()Personalice el nombre de ejecución de MLflow encapsulando el código de entrenamiento del modelo dentro del ámbito de la
mlflow.start_run()API. Esto le proporciona control sobre el nombre de ejecución y le permite reiniciar desde una ejecución anterior. Puede personalizar el nombre de ejecución mediante elrun_nameparámetro enmlflow.start_run(run_name="your-custom-name")o en bibliotecas de terceros que admitan MLflow (por ejemplo, Hugging Face Transformers). De lo contrario, el nombre de ejecución predeterminado esjobTaskRun-xxxxx.from transformers import TrainingArguments args = TrainingArguments( report_to="mlflow", run_name="llama7b-sft-lr3e5", # <-- MLflow run name logging_steps=50, )La API de GPU sin servidor inicia automáticamente un experimento de MLflow con el nombre
/Users/{WORKSPACE_USER}/{get_notebook_name()}predeterminado . Los usuarios pueden sobrescribirlo con la variable de entornoMLFLOW_EXPERIMENT_NAME. Use siempre rutas de acceso absolutas para la variable de entornoMLFLOW_EXPERIMENT_NAME.import os os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"Reanude el entrenamiento anterior configurando el
MLFLOW_RUN_IDde la ejecución previa.mlflow.start_run(run_id="<previous-run-id>")Establezca el
stepparámetro enMLFlowLoggera valores razonables por lotes. MLflow tiene un límite de 10 millones de pasos de métricas: el registro de cada lote en grandes ejecuciones de entrenamiento puede alcanzar este límite. Consulte Límites de los recursos.
Visualización de registros
- Salida del cuaderno : la salida estándar y los errores del código de entrenamiento aparecen en la salida de la celda del cuaderno.
- Registros de controladores : accesible a través del panel de proceso para depurar problemas de inicio, problemas de configuración del entorno y errores en tiempo de ejecución.
- Registros de MLflow : las métricas de entrenamiento, los parámetros y los artefactos se pueden ver en la interfaz de usuario del experimento de MLflow.
Control de modelos
Guarde los puntos de control del modelo en volúmenes de Catálogo de Unity, que proporcionan la misma gobernanza que otros objetos de Catálogo de Unity. Usa el siguiente formato de ruta para referenciar archivos en volúmenes desde un notebook de Databricks:
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
Guarde los puntos de control en volúmenes de la misma manera que los guarde en el almacenamiento local.
En el ejemplo siguiente se muestra cómo escribir un punto de control de PyTorch en volúmenes del catálogo de Unity:
import torch
checkpoint = {
"epoch": epoch, # last finished epoch
"model_state_dict": model.state_dict(), # weights & buffers
"optimizer_state_dict": optimizer.state_dict(), # optimizer state
"loss": loss, # optional current loss
"metrics": {"val_acc": val_acc}, # optional metrics
# Add scheduler state, RNG state, and other metadata as needed.
}
checkpoint_path = "/Volumes/my_catalog/my_schema/model/checkpoints/ckpt-0001.pt"
torch.save(checkpoint, checkpoint_path)
Este enfoque también funciona para los puntos de control distribuidos. En el ejemplo siguiente se muestran los puntos de control de modelos distribuidos con Torch Distributed Checkpoint API.
import torch.distributed.checkpoint as dcp
def save_checkpoint(self, checkpoint_path):
state_dict = self.get_state_dict(model, optimizer)
dcp.save(state_dict, checkpoint_id=checkpoint_path)
trainer.save_checkpoint("/Volumes/my_catalog/my_schema/model/checkpoints")
Colaboración multiusuario
- Para asegurarse de que todos los usuarios pueden acceder al código compartido (por ejemplo, módulos auxiliares o archivos YAML de entorno), almacénelos en
/Workspace/Sharedlugar de carpetas específicas del usuario como/Workspace/Users/<your_email>/. - En el caso del código que está en desarrollo activo, use carpetas de Git en carpetas
/Workspace/Users/<your_email>/específicas del usuario e inserte en repositorios de Git remotos. Esto permite a varios usuarios tener un clon y una rama específicos del usuario, mientras sigue usando un repositorio de Git remoto para el control de versiones. Consulte los procedimientos recomendados para usar Git en Databricks. - Los colaboradores pueden compartir y comentar en cuadernos.
Límites globales en Databricks
Consulte Límites de los recursos.