Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Modificare uno script di addestramento per assegnare gruppi di istanze
Con la configurazione eterogenea del cluster illustrata nelle sezioni precedenti, hai preparato l'ambiente di formazione e le istanze per il tuo lavoro di SageMaker formazione. Per assegnare ulteriormente i gruppi di istanze a determinati processi di addestramento ed elaborazione dei dati, la fase successiva consiste nel modificare lo script di addestramento. Per impostazione predefinita, il processo di addestramento crea semplicemente repliche degli script di addestramento per tutti i nodi indipendentemente dalla dimensione dell'istanza, e ciò potrebbe comportare una perdita di prestazioni.
Ad esempio, se si combinano istanze CPU e GPU in un cluster eterogeneo mentre si passa uno script di addestramento di una rete neurale profonda all'entry_pointargomento dell'IA, lo script viene replicato in ogni istanza. SageMaker ModelTrainer entry_point Ciò significa che, senza un'adeguata assegnazione delle attività, le istanze CPU eseguono anche l'intero script e avviano il processo di addestramento progettato per l'addestramento distribuito su istanze GPU. Pertanto, dovrai apportare modifiche alle funzioni di elaborazione specifiche che desideri scaricare ed eseguire sulle istanze della CPU. È possibile utilizzare le variabili di ambiente SageMaker AI per recuperare le informazioni del cluster eterogeneo e consentire l'esecuzione di processi specifici di conseguenza.
All'inizio del processo di formazione, lo script di formazione legge le informazioni sull'ambiente di SageMaker formazione che include la configurazione eterogenea del cluster. La configurazione contiene informazioni come i gruppi di istanze correnti, gli host correnti di ciascun gruppo e in quale gruppo risiede l'host corrente.
È possibile interrogare le informazioni sul gruppo di istanze durante la fase di inizializzazione di un job di formazione sull' SageMaker intelligenza artificiale nei seguenti modi.
(Consigliato) Lettura delle informazioni sui gruppi di istanze con il toolkit SageMaker di formazione
Usa il modulo Python di ambiente fornito dalla libreria del toolkit SageMaker di formazione.
from sagemaker_training import environment env = environment.Environment()
Variabili di ambiente relative alla SageMaker formazione generale e ai cluster eterogenei:
-
env.is_hetero— Restituisce un risultato booleano indipendentemente dal fatto che un cluster eterogeneo sia configurato o meno. -
env.current_host— Restituisce l'host corrente. -
env.current_instance_type— Restituisce il tipo di istanza dell'host corrente. -
env.current_instance_group— Restituisce il nome del gruppo di istanze corrente. -
env.current_instance_group_hosts— Restituisce un elenco di host nel gruppo di istanze corrente. -
env.instance_groups— Restituisce un elenco di nomi di gruppi di istanze utilizzati per l'addestramento. -
env.instance_groups_dict— Restituisce l'intera configurazione del cluster eterogeneo del processo di addestramento. -
env.distribution_instance_groups— Restituisce un elenco di gruppi di istanze assegnati aldistributionparametro della classe AI. SageMaker ModelTrainer -
env.distribution_hosts— Restituisce un elenco di host appartenenti ai gruppi di istanze assegnati aldistributionparametro della ModelTrainer classe SageMaker AI.
Ad esempio, si consideri il seguente esempio di cluster eterogeneo costituito da due gruppi di istanze.
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)
L'output di env.instance_groups_dict del cluster eterogeneo di esempio deve essere simile al seguente.
{ "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" } }
(Facoltativo) Lettura delle informazioni sul gruppo di istanze dal file JSON di configurazione delle risorse
Se preferisci recuperare le variabili di ambiente in formato JSON, puoi utilizzare direttamente il file JSON di configurazione delle risorse. Per impostazione predefinita, il file JSON in un'istanza di SageMaker training si trova /opt/ml/input/config/resourceconfig.json in.
file_path = '/opt/ml/input/config/resourceconfig.json' config = read_file_as_json(file_path) print(json.dumps(config, indent=4, sort_keys=True))