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.
En este artículo se presentan las recomendaciones de mejores prácticas para usar el cómputo de GPU sin servidor en tus cuadernos y trabajos.
Siguiendo estas recomendaciones, mejorará la productividad, la rentabilidad y la confiabilidad de las cargas de trabajo en Azure Databricks.
Utilice el cómputo adecuado
- Utilice cómputo de GPU sin servidor. Esta opción incluye antorcha, cuda y torchvision optimizada para compatibilidad. Las versiones exactas del paquete dependerán de las versiones del entorno.
- Seleccione su acelerador en la barra lateral del entorno.
- Para cargas de trabajo de entrenamiento distribuido remoto, use una GPU A10, que será el cliente para enviar un trabajo al H100 remoto más adelante.
- Para ejecutar trabajos interactivos de gran tamaño en el propio cuaderno, puede adjuntar el cuaderno a H100, que ocupará 1 nodo (8 GPU H100).
- Para evitar el uso de GPUs, puede conectar su notebook a un clúster de CPU para algunas operaciones, como "git clone" y la conversión del Dataframe de Spark al formato de Partición de Datos de Mosaico (MDS).
Recomendaciones de MLflow
Para obtener un ciclo de desarrollo óptimo de ML, use MLflow 3 en Databricks. Siga estas sugerencias:
Actualice MLflow en su entorno a la versión 3.6 o posterior y siga el flujo de aprendizaje profundo en el flujo de trabajo de aprendizaje profundo de MLflow 3.
Establezca el parámetro
stepenMLFlowLoggera un número razonable de lotes. MLflow tiene un límite de 10 millones de pasos de métrica que se pueden registrar. Consulte Límites de los recursos.Habilite
mlflow.pytorch.autolog()si se utiliza Pytorch Lightning como formador.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 un experimento de MLflow para registrar las métricas del sistema. De forma predeterminada, usa el nombre
/Users/{WORKSPACE_USER}/{get_notebook_name()}a menos que el usuario lo sobrescriba con la variableMLFLOW_EXPERIMENT_NAMEde entorno .- Al establecer la variable de entorno
MLFLOW_EXPERIMENT_NAME, utilice una ruta de acceso absoluta. Por ejemplo,/Users/<username>/my-experiment. - El nombre del experimento no debe contener el nombre de carpeta existente. Por ejemplo, si
my-experimentes una carpeta existente, se producirá un error en el ejemplo anterior.
import os from serverless_gpu import distributed os.environ['MLFLOW_EXPERIMENT_NAME'] = '/Users/{WORKSPACE_USER}/my_experiment' @distributed(gpus=num_gpus, gpu_type=gpu_type, remote=True) def run_train(): # my training code- Al establecer la variable de entorno
Para reanudar el entrenamiento de una ejecución anterior, especifique el MLFLOW_RUN_ID de la ejecución anterior como se indica a continuación.
import os os.environ[‘MLFLOW_RUN_ID’] = <previous_run_id> run_train.distributed()
Colaboración multiusuario
- Para asegurarse de que todos los usuarios pueden acceder al código compartido (por ejemplo, módulos auxiliares, environment.yaml), cree carpetas git en
/Workspace/Reposo/Workspace/Shareden lugar 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 específico del usuario (y una rama), pero seguir 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.