Visão geral
Os algoritmos inscritos e as imagens predefinidas podem ser usados na maioria dos cenários de treinamento. Em determinados cenários, o ModelArts permite criar imagens personalizadas para treinar modelos.
A personalização de uma imagem requer uma compreensão profunda dos contêineres. Use esse método somente se os algoritmos inscritos e as imagens predefinidas não puderem atender aos seus requisitos. Imagens personalizadas só podem ser usadas para treinar modelos no ModelArts após serem carregadas no Software Repository for Container (SWR).
Você pode usar imagens personalizadas para treinamento no ModelArts de uma das seguintes maneiras:
- Usar uma imagem predefinida com personalização
Se você usar uma imagem predefinida para criar um trabalho de treinamento e precisar modificar ou adicionar algumas dependências de software com base na imagem predefinida, poderá personalizar a imagem predefinida. Nesse caso, selecione uma imagem predefinida e escolha Customize na caixa de listagem suspensa da versão da estrutura.
- Usar uma imagem personalizada
Você pode criar uma imagem com base nas especificações de imagem do ModelArts, selecionar sua própria imagem e configurar o diretório de código (opcional) e o comando de inicialização para criar um trabalho de treinamento.
Quando você usa uma imagem personalizada para criar um trabalho de treinamento, o comando de inicialização deve ser executado no diretório /home/ma-user. Caso contrário, o trabalho de treinamento pode ser executado de forma anormal.
Usar uma imagem predefinida com personalização
A única diferença entre este método e a criação de um trabalho de treinamento totalmente baseado em uma imagem predefinida é que você deve selecionar uma imagem. Você pode criar uma imagem personalizada com base em uma imagem predefinida.
O processo deste método é o mesmo que o de criar um trabalho de treinamento com base em uma imagem predefinida. Por exemplo:
- O sistema injeta automaticamente variáveis de ambiente.
- PATH=${MA_HOME}/anaconda/bin:${PATH}
- LD_LIBRARY_PATH=${MA_HOME}/anaconda/lib:${LD_LIBRARY_PATH}
- PYTHONPATH=${MA_JOB_DIR}:${PYTHONPATH}
- O arquivo de inicialização selecionado será iniciado automaticamente usando comandos de Python. Certifique-se de que o ambiente Python está correto. A variável de ambiente PATH é injetada automaticamente. Execute os seguintes comandos para verificar a versão do Python para o trabalho de treinamento:
- export MA_HOME=/home/ma-user; docker run --rm {image} ${MA_HOME}/anaconda/bin/python -V
- docker run --rm {image} $(which python) -V
- O sistema adiciona automaticamente hiperparâmetros associados à imagem predefinida.
Usar uma imagem personalizada
Para obter detalhes sobre como usar imagens personalizadas suportadas pelo treinamento, consulte Uso de uma imagem personalizada para criar um trabalho de treinamento baseado em CPU ou GPU.
Se todas as imagens usadas forem personalizadas, faça o seguinte para usar um ambiente Conda especificado para iniciar o treinamento:
As tarefas de treinamento não são executadas em um shell. Portanto, você não tem permissão para executar o comando conda activate para ativar um ambiente Conda especificado. Neste caso, use outros métodos para começar a treinar.
Por exemplo, Conda em sua imagem personalizada é instalado no diretório /home/ma-user/anaconda3, o ambiente Conda é python-3.7.10 e o script de treinamento é armazenado em /home/ma-user/modelarts/user-job-dir/code/train.py. Use um ambiente Conda especificado para iniciar o treinamento de uma das seguintes maneiras:
- Método 1: configure as variáveis de ambiente DEFAULT_CONDA_ENV_NAME e ANACONDA_DIR corretas para a imagem.
Execute o comando python para iniciar o script de treinamento. O seguinte mostra um exemplo:
python /home/ma-user/modelarts/user-job-dir/code/train.py
- Método 2: use o caminho absoluto do Python do ambiente Conda.
- Método 3: configure a variável de ambiente path.
Configure o diretório bin do ambiente Conda especificado na variável de ambiente path. Execute o comando python para iniciar o script de treinamento. O seguinte mostra um exemplo:
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: execute o comando conda run -n.
Execute o comando /home/ma-user/anaconda3/bin/conda run -n python-3.7.10 para executar o treinamento. O seguinte mostra um exemplo:
/home/ma-user/anaconda3/bin/conda run -n python-3.7.10 python /home/ma-user/modelarts/user-job-dir/code/train.py
Se houver um erro indicando que o arquivo .so não está disponível no diretório $ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib, adicione o diretório ao LD_LIBRARY_PATH e coloque o seguinte comando antes do comando de inicialização anterior:
export LD_LIBRARY_PATH=$ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib:$LD_LIBRARY_PATH;
Por exemplo, o exemplo de comando de inicialização usado no método 1 é o seguinte:
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