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à.
Tutorial - Amazon SageMaker HyperPod Checkpointless, preaddestramento o messa a punto di modelli personalizzati
La seguente sequenza di passaggi è necessaria per eseguire un addestramento senza checkpoint con il modello personalizzato acceso. HyperPod
Prerequisiti
Prima di iniziare a configurare l’ambiente, assicurati di avere:
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
-
I dati in uno dei seguenti formati:
JSON
JSONGZ (JSON compresso)
ARROW
Scarica i pesi del modello hugging face e convertili nel formato supportato da Nemo.
Configurare l’ambiente
Configurazione dell'ambiente Kubernetes
Per configurare l'ambiente Kubernetes, procedi come segue:
-
Configura l’ambiente virtuale. Assicurati di usare Python maggiore o uguale a 3.10 e inferiore a 3.14.
python3 -m venv ${PWD}/venv source venv/bin/activate -
Connettiti al cluster Kubernetes.
aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}" -
Installare le dipendenze
# install SageMaker HyperPod checkpointless training. git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git cd sagemaker-hyperpod-checkpointless-training
Istruzioni di modifica dell'allenamento Checkpointless
Per adottare in modo incrementale la formazione senza checkpoint per i modelli personalizzati, segui la guida all'integrazione (qui utilizziamo il pretraining di Llama 3 70b come esempio), che prevede:
Creazione rapida di comunicatori
Dataloader mappato in memoria (MMAP)
Ripristino in corso e senza checkpoint
Componente 1: creazione rapida di comunicatori
Questo per ottimizzare i tempi necessari per stabilire connessioni tra i lavoratori. Non sono necessarie modifiche al codice e richiede solo l'impostazione delle variabili env
# Enable Rootless features export HPCT_USE_ROOTLESS=1 && \ sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \ hyperpodrun --nproc_per_node=8 \ ... --inprocess-restart \ ...
La modifica completa può essere trovata nel file llama3 70 pretrain
Componente 2: Dataloader mappato in memoria (MMAP)
Cache MMAP per archiviare campioni di dati precaricati e consentire l'avvio immediato della formazione senza dover attendere la preelaborazione dei dati. Richiede modifiche minime al codice da adottare inserendo il dataloader esistente.
data_module = MMAPDataModule( data_module=base_data_module, mmap_config=CacheResumeMMAPConfig(cache_dir=…) )
Componenti 3 e 4: ripristino in corso e senza checkpoint
Ciò consente il ripristino in caso di errore senza riavviare i processi di addestramento o il caricamento dai checkpoint. Sono necessarie ulteriori modifiche al codice (aggiornamento della configurazione di strategia e formazione, wrap existing main)
@HPWrapper( health_check=CudaHealthCheck(), hp_api_factory=HPAgentK8sAPIFactory(), abort_timeout=60.0, ...) def run_main( cfg, caller: Optional[HPCallWrapper] = None): ... CheckpointlessMegatronStrategy( **self.cfg.strategy, ddp=self.ddp, )
La modifica completa è disponibile nello script di immissione pretrain di llama3 70
Avvia la formazione
Ora puoi avviare l'allenamento senza checkpoint usando kubectl.
kubectl apply -f your_job_config.yaml