As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Modifique seu script de treinamento para atribuir grupos de instâncias
Com a configuração de cluster heterogênea nas seções anteriores, você preparou o ambiente de SageMaker treinamento e as instâncias para seu trabalho de treinamento. Para atribuir ainda mais os grupos de instâncias a determinadas tarefas de treinamento e processamento de dados, a próxima etapa é modificar seu script de treinamento. Por padrão, o trabalho de treinamento simplesmente cria réplicas de scripts de treinamento para todos os nós, independentemente do tamanho da instância, e isso pode levar a perda de desempenho.
Por exemplo, se você misturar CPU instâncias e GPU instâncias em um cluster heterogêneo enquanto passa um script de treinamento de rede neural profunda para o entry_point
argumento do SageMaker estimador, o entry_point
script é replicado para cada instância. Isso significa que, sem a atribuição adequada de tarefas, as CPU instâncias também executam o script inteiro e iniciam o trabalho de treinamento projetado para treinamento distribuído nas GPU instâncias. Portanto, você deve fazer alterações nas funções de processamento específicas que deseja descarregar e executar nas CPU instâncias. Você pode usar as variáveis de SageMaker ambiente para recuperar as informações do cluster heterogêneo e permitir que processos específicos sejam executados adequadamente.
Quando seu trabalho de treinamento é iniciado, seu script de treinamento lê as informações do ambiente de SageMaker treinamento que incluem a configuração heterogênea do cluster. A configuração contém informações como os grupos de instâncias atuais, os hosts atuais em cada grupo e em qual grupo o host atual reside.
Você pode consultar as informações do grupo de instâncias durante a fase de inicialização de um trabalho de SageMaker treinamento das seguintes formas.
(Recomendado) Ler as informações do grupo de instâncias com o kit SageMaker de ferramentas de treinamento
Use o módulo de ambiente Python fornecido pela biblioteca do kit de ferramentas de SageMaker treinamento
from sagemaker_training import environment env = environment.Environment()
Variáveis de ambiente relacionadas ao SageMaker treinamento geral e clusters heterogêneos:
-
env.is_hetero
- Retorna um resultado booleano, independentemente de um cluster heterogêneo estar configurado ou não. -
env.current_host
- Retorna o host atual. -
env.current_instance_type
- Retorna o tipo de instância do host atual. -
env.current_instance_group
- Retorna o nome do grupo de instâncias atual. -
env.current_instance_group_hosts
- Retorna uma lista de hosts no grupo de instâncias atual. -
env.instance_groups
- Retorna uma lista de nomes de grupos de instâncias usados para treinamento. -
env.instance_groups_dict
- Retorna toda a configuração heterogênea do cluster do trabalho de treinamento. -
env.distribution_instance_groups
— Retorna uma lista de grupos de instâncias atribuídos aodistribution
parâmetro da classe do SageMaker estimador. -
env.distribution_hosts
— Retorna uma lista de hosts pertencentes aos grupos de instâncias atribuídos aodistribution
parâmetro da classe do SageMaker estimador.
Por exemplo, considere o exemplo a seguir de um cluster heterogêneo que consiste em dois grupos de instâncias.
from sagemaker.instance_group import InstanceGroup instance_group_1 = InstanceGroup( "instance_group_1", "ml.c5.18xlarge", 1) instance_group_2 = InstanceGroup( "instance_group_2", "ml.p3dn.24xlarge", 2)
A saída do exemplo env.instance_groups_dict
de cluster heterogêneo deve ser semelhante à seguinte.
{ "instance_group_1": { "hosts": [ "algo-2" ], "instance_group_name": "instance_group_1", "instance_type": "ml.c5.18xlarge" }, "instance_group_2": { "hosts": [ "algo-3", "algo-1" ], "instance_group_name": "instance_group_2", "instance_type": "ml.p3dn.24xlarge" } }
(Opcional) Ler as informações do grupo de instâncias do JSON arquivo de configuração do recurso
Se você preferir recuperar as variáveis de ambiente no JSON formato, poderá usar diretamente o JSON arquivo de configuração do recurso. Por padrão, o JSON arquivo em uma instância de SageMaker treinamento está localizado em/opt/ml/input/config/resourceconfig.json
.
file_path = '/opt/ml/input/config/resourceconfig.json' config = read_file_as_json(file_path) print(json.dumps(config, indent=4, sort_keys=True))