Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-14 GMT+08:00

Descripción general

Los algoritmos suscritos y las imágenes preestablecidas se pueden utilizar en la mayoría de los escenarios de entrenamiento. En ciertos escenarios de ModelArts le permite crear las imágenes personalizadas para entrenar modelos.

La personalización de una imagen requiere una comprensión profunda de los contenedores. Utilice este método solo si los algoritmos suscritos y las imágenes preestablecidas no pueden cumplir con sus requisitos. Las imágenes personalizadas se pueden usar para entrenar modelos de ModelArts solo después de que se suban al Software Repository for Container (SWR).

Puede utilizar imágenes personalizadas para el entrenamiento de ModelArts de cualquiera de las siguientes maneras:

  • Uso de una imagen preestablecida con personalización

    Si utiliza una imagen preestablecida para crear un trabajo de entrenamiento y necesita modificar o agregar algunas dependencias de software basadas en la imagen preestablecida, puede personalizar la imagen preestablecida. En este caso, seleccione una imagen preestablecida y elija Customize en el cuadro de lista desplegable de versiones del marco.

  • Uso de una imagen personalizada

    Puede crear una imagen basada en las especificaciones de imagen ModelArts, seleccionar su propia imagen y configurar el directorio de código (opcional) y el comando boot para crear un trabajo de entrenamiento.

    Cuando se utiliza una imagen personalizada para crear un trabajo de entrenamiento, el comando de arranque se debe ejecutar en el directorio /home/ma-user. De lo contrario, el trabajo de entrenamiento puede ejecutarse de manera anormal.

Uso de una imagen preestablecida con personalización

Entre este método y crear un trabajo de entrenamiento totalmente basado en una imagen preestablecida, la única diferencia es que debe seleccionar una imagen. Puede crear una imagen personalizada basada en una imagen preestablecida.

Figura 1 Crear un algoritmo usando una imagen preestablecida con personalización

El proceso de este método es el mismo que el de crear un trabajo de entrenamiento basado en una imagen preestablecida. Por ejemplo:

  • El sistema inyecta automáticamente variables de entorno.
    • PATH=${MA_HOME}/anaconda/bin:${PATH}
    • LD_LIBRARY_PATH=${MA_HOME}/anaconda/lib:${LD_LIBRARY_PATH}
    • PYTHONPATH=${MA_JOB_DIR}:${PYTHONPATH}
  • El archivo de arranque seleccionado se iniciará automáticamente con los comandos de Python. Asegúrese de que el entorno de Python sea correcto. La variable de entorno de PATH se inyecta automáticamente. Ejecute los siguientes comandos para comprobar la versión de Python para el trabajo de entrenamiento:
    • export MA_HOME=/home/ma-user; docker run --rm {image} ${MA_HOME}/anaconda/bin/python -V
    • docker run --rm {image} $(which python) -V
  • El sistema agrega automáticamente hiperparámetros asociados con la imagen preestablecida.

Uso de una imagen personalizada

Figura 2 Creación de un algoritmo mediante una imagen personalizada

Para obtener más información sobre cómo utilizar imágenes personalizadas compatibles con el entrenamiento, véase Uso de una imagen personalizada para crear un trabajo de entrenamiento basado en CPU o GPU.

Si todas las imágenes usadas están personalizadas, haga lo siguiente para usar un entorno de Conda especificado para comenzar el entrenamiento:

Los trabajos de entrenamiento no se ejecutan en un shell. Por lo tanto, no se le permite ejecutar el comando conda activate para activar un entorno de Conda especificado. En este caso, utilice otros métodos para iniciar el entrenamiento.

Por ejemplo, Conda en la imagen personalizada está instalado en el directorio /home/ma-user/anaconda3, el entorno de Conda es python-3.7.10 y el script de entrenamiento está almacenado en /home/ma-user/modelarts/user-job-dir/code/train.py. Utilice un entorno de Conda especificado para iniciar el entrenamiento de una de las siguientes maneras:

  • Método 1: Configure las variables de entorno DEFAULT_CONDA_ENV_NAME y ANACONDA_DIR correctas para la imagen.
    Ejecute el comando python para iniciar el script de entrenamiento. A continuación se muestra un ejemplo:
    python /home/ma-user/modelarts/user-job-dir/code/train.py
  • Método 2: Utilice la ruta absoluta del entorno de Conda de Python.
    Ejecute el comando /home/ma-user/anaconda3/envs/python-3.7.10/bin/python para iniciar el script de entrenamiento. A continuación se muestra un ejemplo:
    /home/ma-user/anaconda3/envs/python-3.7.10/bin/python /home/ma-user/modelarts/user-job-dir/code/train.py
  • Método 3: Configurar la variable de entorno de ruta.
    Configure el directorio bin del entorno de Conda especificado en la variable de entorno de ruta. Ejecute el comando python para iniciar el script de entrenamiento. A continuación se muestra un ejemplo:
    export PATH=/home/ma-user/anaconda3/envs/python-3.7.10/bin:$PATH; python /home/ma-user/modelarts/user-job-dir/code/train.py
  • Método 4: Ejecute el comando conda run -n.
    Ejecute el comando /home/ma-user/anaconda3/bin/conda run -n python-3.7.10 para ejecutar el entrenamiento. A continuación se muestra un ejemplo:
    /home/ma-user/anaconda3/bin/conda run -n python-3.7.10 python /home/ma-user/modelarts/user-job-dir/code/train.py

Si hay un error que indica que el archivo .so no está disponible en el directorio $ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib, agregue el directorio a LD_LIBRARY_PATH y coloque el siguiente comando antes del comando de arranque anterior:

export LD_LIBRARY_PATH=$ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib:$LD_LIBRARY_PATH;

Por ejemplo, el comando de arranque de ejemplo utilizado en el método 1 es el siguiente:

export LD_LIBRARY_PATH=$ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib:$LD_LIBRARY_PATH; python /home/ma-user/modelarts/user-job-dir/code/train.py