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 esta página se describe cómo usar MLflow, ver registros, administrar puntos de control de modelo y supervisar recursos de GPU en el entorno 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 MLflow : la interfaz de usuario del experimento de MLflow muestra métricas de entrenamiento, parámetros y artefactos.
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 muestra la creación de 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")
Supervisión de recursos de GPU
Use el panel recursos de GPU para supervisar el estado y el uso de LA GPU mientras el código se ejecuta en el entorno de ejecución de IA. El panel admite cargas de trabajo de nodo único y de varios nodos.
Para abrir el panel, conecte el cuaderno a AI Runtime y, a continuación, haga clic en Recursos de GPU en el panel derecho.
En el panel se muestran las métricas siguientes para cada GPU:
- Porcentaje de uso de GPU
- Uso de memoria de GPU
- Temperatura
El panel sondea las métricas cada 10 segundos y conserva hasta 2 horas de historial. Haga clic en Actualice para capturar los valores más recientes inmediatamente. Después de 5 minutos de inactividad, el panel se pausa; vuelva a abrirlo para reanudar la supervisión.
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 Azure Databricks
Consulte Límites de los recursos.