Oggi siamo lieti di annunciare l'anteprima di Profilo di Amazon SageMaker, una capacità di Amazon Sage Maker che fornisce una visione dettagliata delle risorse di calcolo AWS fornite durante l'addestramento dei modelli di deep learning su SageMaker. Con SageMaker Profiler puoi tenere traccia di tutte le attività su CPU e GPU, come utilizzo di CPU e GPU, esecuzioni del kernel su GPU, lanci del kernel su CPU, operazioni di sincronizzazione, operazioni di memoria su GPU, latenze tra i lanci del kernel e le esecuzioni corrispondenti e trasferimento di dati. tra CPU e GPU. In questo post ti guideremo attraverso le funzionalità di SageMaker Profiler.
SageMaker Profiler fornisce moduli Python per annotare script di formazione PyTorch o TensorFlow e attivare SageMaker Profiler. Offre anche un'interfaccia utente (UI) che visualizza il file tuo profilo, un riepilogo statistico degli eventi profilati e la sequenza temporale di un lavoro di formazione per monitorare e comprendere la relazione temporale degli eventi tra GPU e CPU.
La necessità di profilare i lavori di formazione
Con l'avvento del deep learning (DL), il machine learning (ML) è diventato ad uso intensivo di elaborazione e dati, richiedendo in genere cluster multi-nodo e multi-GPU. Man mano che i modelli all’avanguardia crescono di dimensioni nell’ordine di trilioni di parametri, anche la loro complessità computazionale e i loro costi aumentano rapidamente. I professionisti del machine learning devono affrontare sfide comuni legate all'utilizzo efficiente delle risorse durante l'addestramento di modelli così grandi. Ciò è particolarmente evidente nei modelli linguistici di grandi dimensioni (LLM), che in genere hanno miliardi di parametri e quindi richiedono grandi cluster GPU multinodo per addestrarli in modo efficiente.
Quando si addestrano questi modelli su cluster di elaborazione di grandi dimensioni, possiamo incontrare sfide di ottimizzazione delle risorse di elaborazione come colli di bottiglia di I/O, latenze di avvio del kernel, limiti di memoria e basso utilizzo delle risorse. Se la configurazione del lavoro di formazione non è ottimizzata, queste sfide possono comportare un utilizzo inefficiente dell'hardware e tempi di formazione più lunghi o cicli di formazione incompleti, che aumentano i costi complessivi e le tempistiche del progetto.
Prerequisiti
Di seguito sono riportati i prerequisiti per iniziare a utilizzare SageMaker Profiler:
- Un dominio SageMaker nel tuo account AWS – Per istruzioni sulla configurazione di un dominio, vedere Onboarding nel dominio Amazon SageMaker utilizzando la configurazione rapida. È inoltre necessario aggiungere profili utente di dominio per i singoli utenti per accedere all'applicazione UI di SageMaker Profiler. Per ulteriori informazioni, vedere Aggiungi e rimuovi i profili utente del dominio SageMaker.
- Permessi – L'elenco seguente rappresenta l'insieme minimo di autorizzazioni che devono essere assegnate al ruolo di esecuzione per l'utilizzo dell'applicazione UI SageMaker Profiler:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Preparare ed eseguire un lavoro di formazione con SageMaker Profiler
Per iniziare ad acquisire le esecuzioni del kernel sulle GPU mentre il processo di training è in esecuzione, modifica lo script di training utilizzando i moduli Python di SageMaker Profiler. Importa la libreria e aggiungi il file start_profiling()
ed stop_profiling()
modalità per definire l'inizio e la fine della profilazione. È inoltre possibile utilizzare annotazioni personalizzate facoltative per aggiungere marcatori nello script di training per visualizzare le attività hardware durante operazioni particolari in ogni passaggio.
Esistono due approcci che puoi adottare per profilare i tuoi script di formazione con SageMaker Profiler. Il primo approccio si basa sulla profilazione di tutte le funzioni; il secondo approccio si basa sulla profilazione di linee di codice specifiche nelle funzioni.
Per profilare in base alle funzioni, utilizzare il gestore contesto smppy.annotate
per annotare le funzioni complete. Il seguente script di esempio mostra come implementare il gestore del contesto per racchiudere il ciclo di training e le funzioni complete in ogni iterazione:
È inoltre possibile utilizzare smppy.annotation_begin()
ed smppy.annotation_end()
per annotare righe di codice specifiche nelle funzioni. Per ulteriori informazioni, fare riferimento a documentazione.
Configurare il programma di avvio dei lavori di formazione SageMaker
Dopo aver terminato l'annotazione e la configurazione dei moduli di avvio del profiler, salva lo script di training e prepara lo strumento di stima del framework SageMaker per il training utilizzando SageMaker Python SDK.
- Impostare un
profiler_config
oggetto usando ilProfilerConfig
edProfiler
moduli come segue: - Crea uno stimatore SageMaker con il file
profiler_config
oggetto creato nel passaggio precedente. Il codice seguente mostra un esempio di creazione di uno stimatore PyTorch:
Se desideri creare uno stimatore TensorFlow, importa sagemaker.tensorflow.TensorFlow
e specificare invece una delle versioni di TensorFlow supportate da SageMaker Profiler. Per ulteriori informazioni sui framework supportati e sui tipi di istanza, consulta Framework supportati.
- Avviare il lavoro di formazione eseguendo il metodo di adattamento:
Avvia l'interfaccia utente di SageMaker Profiler
Una volta completato il lavoro di formazione, è possibile avviare l'interfaccia utente di SageMaker Profiler per visualizzare ed esplorare il profilo del lavoro di formazione. È possibile accedere all'applicazione UI di SageMaker Profiler tramite la pagina di destinazione di SageMaker Profiler sulla console SageMaker o tramite il dominio SageMaker.
Per avviare l'applicazione UI SageMaker Profiler sulla console SageMaker, completare i seguenti passaggi:
- Sulla console di SageMaker, scegli Profiler nel pannello di navigazione.
- Sotto Inizia, seleziona il dominio in cui desideri avviare l'applicazione UI di SageMaker Profiler.
Se il tuo profilo utente appartiene a un solo dominio, non vedrai l'opzione per selezionare un dominio.
- Seleziona il profilo utente per il quale desideri avviare l'applicazione UI di SageMaker Profiler.
Se non è presente alcun profilo utente nel dominio, scegli Crea profilo utente. Per ulteriori informazioni sulla creazione di un nuovo profilo utente, vedere Aggiungi e rimuovi profili utente.
- Scegli Apri Profilo.
Puoi anche avviare l'interfaccia utente di SageMaker Profiler dalla pagina dei dettagli del dominio.
Ottieni informazioni dettagliate da SageMaker Profiler
Quando apri l'interfaccia utente di SageMaker Profiler, il file Seleziona e carica un profilo si apre la pagina, come mostrato nello screenshot seguente.
È possibile visualizzare un elenco di tutti i lavori di formazione che sono stati inviati a SageMaker Profiler e cercare un particolare lavoro di formazione in base al nome, all'ora di creazione e allo stato di esecuzione (In corso, Completato, Non riuscito, Interrotto o In arresto). Per caricare un profilo, seleziona il lavoro di formazione che desideri visualizzare e scegli Caricare. Il nome del lavoro dovrebbe apparire nel file Profilo caricato sezione in alto.
Scegli il nome del lavoro per generare la dashboard e la sequenza temporale. Tieni presente che quando scegli il lavoro, l'interfaccia utente apre automaticamente la dashboard. Puoi caricare e visualizzare un profilo alla volta. Per caricare un altro profilo è necessario prima scaricare il profilo precedentemente caricato. Per scaricare un profilo, scegli l'icona del cestino nel file Profilo caricato .
Per questo post, visualizziamo il profilo di un ALBEF lavoro di formazione su due istanze ml.p4d.24xlarge.
Dopo aver terminato il caricamento e la selezione del lavoro di formazione, l'interfaccia utente apre il file Performance modelli/hostess pagina, come mostrato nella schermata seguente.
Puoi visualizzare i grafici per le metriche chiave, ovvero il tempo attivo della GPU, l'utilizzo della GPU nel tempo, il tempo attivo della CPU e l'utilizzo della CPU nel tempo. Il grafico a torta del tempo attivo della GPU mostra la percentuale del tempo attivo della GPU rispetto al tempo di inattività della GPU, che ci consente di verificare se le GPU sono più attive che inattive durante l'intero processo di formazione. Il grafico della sequenza temporale dell'utilizzo della GPU nel tempo mostra il tasso medio di utilizzo della GPU nel tempo per nodo, aggregando tutti i nodi in un unico grafico. Puoi verificare se le GPU presentano un carico di lavoro sbilanciato, problemi di sottoutilizzo, colli di bottiglia o problemi di inattività durante determinati intervalli di tempo. Per ulteriori dettagli sull'interpretazione di questi parametri, fare riferimento a documentazione.
Il dashboard fornisce grafici aggiuntivi, incluso il tempo impiegato da tutti i kernel GPU, il tempo impiegato dai primi 15 kernel GPU, il conteggio dei lanci di tutti i kernel GPU e il conteggio dei lanci dei primi 15 kernel GPU, come mostrato nello screenshot seguente.
Infine, la dashboard consente di visualizzare metriche aggiuntive, come la distribuzione del tempo dei passaggi, che è un istogramma che mostra la distribuzione delle durate dei passaggi sulle GPU, e il grafico a torta della distribuzione della precisione del kernel, che mostra la percentuale di tempo impiegato nell'esecuzione dei kernel. in diversi tipi di dati come FP32, FP16, INT32 e INT8.
È inoltre possibile ottenere un grafico a torta sulla distribuzione dell'attività della GPU che mostra la percentuale di tempo dedicato alle attività della GPU, come l'esecuzione di kernel, memoria (memcpy
ed memset
) e la sincronizzazione (sync
). È possibile visualizzare la percentuale di tempo impiegato nelle operazioni di memoria della GPU dal grafico a torta di distribuzione delle operazioni di memoria della GPU.
Puoi anche creare i tuoi istogrammi basati su una metrica personalizzata che hai annotato manualmente come descritto in precedenza in questo post. Quando aggiungi un'annotazione personalizzata a un nuovo istogramma, seleziona o inserisci il nome dell'annotazione aggiunta nello script di training.
Interfaccia della sequenza temporale
L'interfaccia utente di SageMaker Profiler include anche un'interfaccia con sequenza temporale, che fornisce una visualizzazione dettagliata delle risorse di elaborazione a livello di operazioni e kernel pianificati sulle CPU ed eseguiti sulle GPU. La sequenza temporale è organizzata in una struttura ad albero e fornisce informazioni dal livello dell'host al livello del dispositivo, come mostrato nello screenshot seguente.
Per ciascuna CPU è possibile tenere traccia dei contatori delle prestazioni della CPU, ad esempio clk_unhalted_ref.tsc
ed itlb_misses.miss_causes_a_walk
. Per ogni GPU sull'istanza 2x p4d.24xlarge, puoi visualizzare una sequenza temporale dell'host e una sequenza temporale del dispositivo. I lanci del kernel si trovano nella sequenza temporale dell'host e le esecuzioni del kernel si trovano nella sequenza temporale del dispositivo.
Puoi anche ingrandire i singoli passaggi. Nello screenshot seguente, abbiamo ingrandito il passaggio_41. La striscia della timeline selezionata nello screenshot seguente è la AllReduce
operazione, una fase essenziale di comunicazione e sincronizzazione nella formazione distribuita, eseguita su GPU-0. Nello screenshot, nota che l'avvio del kernel nell'host GPU-0 si connette all'esecuzione del kernel nel flusso 0 del dispositivo GPU-1, indicato con la freccia in ciano.
Disponibilità e considerazioni
SageMaker Profiler è disponibile in PyTorch (versione 2.0.0 e 1.13.1) e TensorFlow (versione 2.12.0 e 2.11.1). La tabella seguente fornisce i collegamenti ai file supportati Contenitori AWS Deep Learning per SageMaker.
Contesto | Versione | URI dell'immagine del DLC AWS |
PyTorch | 2.0.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
PyTorch | 1.13.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker |
TensorFlow | 2.12.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
TensorFlow | 2.11.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.1-gpu-py39-cu112-ubuntu20.04-sagemaker |
SageMaker Profiler è attualmente disponibile nelle seguenti regioni: Stati Uniti orientali (Ohio, Virginia settentrionale), Stati Uniti occidentali (Oregon) ed Europa (Francoforte, Irlanda).
SageMaker Profiler è disponibile nei tipi di istanze di training ml.p4d.24xlarge, ml.p3dn.24xlarge e ml.g4dn.12xlarge.
Per l'elenco completo dei framework e delle versioni supportati, fare riferimento a documentazione.
SageMaker Profiler prevede addebiti al termine del livello gratuito di SageMaker o del periodo di prova gratuito della funzionalità. Per ulteriori informazioni, vedere Prezzi di Amazon SageMaker.
Prestazioni di SageMaker Profiler
Abbiamo confrontato il sovraccarico di SageMaker Profiler con vari profiler open source. La linea di base utilizzata per il confronto è stata ottenuta eseguendo il lavoro di formazione senza un profiler.
Il nostro risultato principale ha rivelato che SageMaker Profiler generalmente ha comportato una durata di formazione fatturabile più breve perché aveva meno tempi generali nelle esecuzioni di formazione end-to-end. Ha inoltre generato meno dati di profilazione (fino a 10 volte meno) rispetto alle alternative open source. Gli artefatti di profilazione più piccoli generati da SageMaker Profiler richiedono meno spazio di archiviazione, risparmiando così anche sui costi.
Conclusione
SageMaker Profiler ti consente di ottenere informazioni dettagliate sull'utilizzo delle risorse di elaborazione durante l'addestramento dei tuoi modelli di deep learning. Ciò può consentire di risolvere i punti critici e i colli di bottiglia delle prestazioni per garantire un utilizzo efficiente delle risorse che, in ultima analisi, ridurrebbe i costi di formazione e la durata complessiva della formazione.
Per iniziare con SageMaker Profiler, fare riferimento a documentazione.
Informazioni sugli autori
Roy Allela è un Senior AI/ML Specialist Solutions Architect presso AWS con sede a Monaco, Germania. Roy aiuta i clienti AWS, dalle piccole startup alle grandi imprese, a formare e distribuire modelli linguistici di grandi dimensioni in modo efficiente su AWS. Roy è appassionato di problemi di ottimizzazione computazionale e di miglioramento delle prestazioni dei carichi di lavoro di intelligenza artificiale.
Sushant Luna è un Data Scientist presso AWS, India, specializzato nel guidare i clienti attraverso le loro attività di AI/ML. Con un background diversificato che spazia dai settori vendita al dettaglio, finanza e assicurazioni, offre soluzioni innovative e su misura. Al di là della sua vita professionale, Sushant trova ringiovanimento nel nuoto e cerca ispirazione dai suoi viaggi in luoghi diversi.
DikshaSharma è un AI/ML Specialist Solutions Architect presso la Worldwide Specialist Organization. Lavora con clienti del settore pubblico per aiutarli a progettare applicazioni di machine learning efficienti, sicure e scalabili, comprese soluzioni di intelligenza artificiale generativa su AWS. Nel tempo libero, Diksha ama leggere, dipingere e trascorrere del tempo con la sua famiglia.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Automobilistico/VE, Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Grafico Prime. Migliora il tuo gioco di trading con ChartPrime. Accedi qui.
- BlockOffset. Modernizzare la proprietà della compensazione ambientale. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/announcing-the-preview-of-amazon-sagemaker-profiler-track-and-visualize-detailed-hardware-performance-data-for-your-model-training-workloads/
- :ha
- :È
- :non
- $ SU
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- WRI
- accesso
- operanti in
- attivazione
- attivo
- attività
- attività
- aggiungere
- aggiunto
- l'aggiunta di
- aggiuntivo
- Dopo shavasana, sedersi in silenzio; saluti;
- contro
- aggregando
- AI
- AI / ML
- Tutti
- anche
- alternative
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ed
- Annunciare
- annunciando
- Un altro
- in qualsiasi
- apparire
- Applicazioni
- applicazioni
- approccio
- approcci
- SONO
- AS
- addetto
- At
- automaticamente
- disponibile
- media
- AWS
- sfondo
- basato
- Linea di base
- BE
- perché
- diventare
- stato
- Inizio
- appartiene
- fra
- Al di là di
- miliardi
- BIN
- by
- Materiale
- funzionalità
- capacità
- Catturare
- certo
- sfide
- oneri
- Grafico
- dai un'occhiata
- Scegli
- codice
- Uncommon
- Comunicazione
- rispetto
- confronto
- completamento di una
- Completato
- complessità
- Calcolare
- Configurazione
- collega
- consolle
- Tecnologie Container
- contesto
- Corrispondente
- Costo
- Costi
- contatori
- creare
- creato
- Creazione
- creazione
- Attualmente
- costume
- Clienti
- ciano
- cruscotto
- dati
- scienziato di dati
- deep
- apprendimento profondo
- definire
- fornisce un monitoraggio
- schierare
- descritta
- dettagliati
- dettagli
- dispositivo
- diverso
- distribuito
- formazione distribuita
- distribuzione
- paesaggio differenziato
- dominio
- domini
- fatto
- giù
- guidare
- durata
- durante
- ogni
- In precedenza
- est
- efficiente
- in modo efficiente
- enable
- Abilita
- fine
- da un capo all'altro
- sforzi
- finisce
- garantire
- entrare
- Intero
- iscrizione
- epoca
- epoche
- essential
- Europa
- eventi
- evidente
- esempio
- esecuzione
- esplora
- fallito
- famiglia
- caratteristica
- finanziare
- ricerca
- trova
- finire
- Nome
- in forma
- i seguenti
- segue
- Nel
- Avanti
- Contesto
- quadri
- Gratis
- prova gratuita
- da
- pieno
- funzioni
- generalmente
- generare
- generato
- generativo
- AI generativa
- Germania
- ottenere
- Dare
- GPU
- GPU
- grafico
- Crescere
- ha avuto
- Hardware
- Avere
- he
- Aiuto
- aiuta
- suo
- il suo
- host
- Come
- Tutorial
- HTML
- http
- HTTPS
- i
- ICON
- Idle
- if
- Immagine
- realizzare
- importare
- miglioramento
- in
- inclusi
- Compreso
- Aumento
- India
- indicato
- individuale
- inefficiente
- informazioni
- creativi e originali
- Ingressi
- intuizioni
- Ispirazione
- esempio
- invece
- istruzioni
- assicurazione
- Interfaccia
- ai miglioramenti
- Irlanda
- sicurezza
- IT
- iterazione
- SUO
- Lavoro
- Offerte di lavoro
- jpg
- Le
- per il tuo brand
- atterraggio
- Lingua
- grandi
- lanciare
- lancia
- apprendimento
- meno
- Livello
- Biblioteca
- Vita
- limiti
- Linee
- Collegamento
- Lista
- caricare
- Caricamento in corso
- più a lungo
- spento
- ama
- Basso
- macchina
- machine learning
- direttore
- manualmente
- Memorie
- metodo
- metodi
- metrico
- Metrica
- ordine
- ML
- modello
- modelli
- modificare
- moduli
- Scopri di più
- devono obbligatoriamente:
- Nome
- cioè
- Navigazione
- Bisogno
- New
- no
- nodo
- nodi
- oggetto
- ottenere
- ottenuto
- of
- Offerte
- Ohio
- on
- ONE
- esclusivamente
- aprire
- open source
- apre
- operazione
- Operazioni
- ottimizzazione
- ottimizzati
- Opzione
- or
- minimo
- Oregon
- organizzazione
- Organizzato
- ancora
- complessivo
- proprio
- pagina
- vetro
- parametri
- particolare
- particolarmente
- appassionato
- per
- percentuale
- performance
- periodo
- permessi
- Platone
- Platone Data Intelligence
- PlatoneDati
- contento
- punto
- Post
- Precisione
- Preparare
- prerequisiti
- Anteprima
- precedente
- in precedenza
- problemi
- professionale
- Profilo
- Profili
- profiling
- Progressi
- progetto
- fornisce
- la percezione
- Python
- pytorch
- Presto
- rapidamente
- tasso
- Leggi
- ridurre
- regioni
- ringiovanimento
- rapporto
- rimuovere
- richiedere
- risorsa
- Risorse
- colpevole
- nello specifico retail
- Rivelato
- Aumento
- Ruolo
- roy
- Correre
- running
- corre
- sagemaker
- Risparmi
- risparmio
- scalabile
- in programma
- Scienziato
- script
- sdk
- Cerca
- Secondo
- Sezione
- settore
- sicuro
- vedere
- cerca
- selezionato
- Selezione
- anziano
- Servizi
- set
- regolazione
- lei
- dovrebbero
- mostrato
- Spettacoli
- singolo
- Taglia
- piccole
- inferiore
- Soluzioni
- Fonte
- tensione
- specialista
- specializzata
- specifico
- spendere
- esaurito
- inizia a
- iniziato
- Startup
- state-of-the-art
- statistiche
- Stato dei servizi
- step
- Passi
- fermato
- sosta
- conservazione
- ruscello
- La struttura
- presentata
- tale
- SOMMARIO
- supportato
- dati
- tavolo
- su misura
- Fai
- tensorflow
- di
- che
- Il
- loro
- Li
- Là.
- in tal modo
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- Attraverso
- per tutto
- fila
- tempo
- time line
- timeline
- volte
- a
- top
- pista
- Tracking
- Treni
- Training
- trasferimento
- viaggia
- albero
- prova
- triliardi
- seconda
- Tipi di
- tipicamente
- ui
- in definitiva
- e una comprensione reciproca
- us
- uso
- utilizzato
- Utente
- Interfaccia utente
- utenti
- utilizzando
- vario
- versione
- versioni
- Visualizza
- Virginia
- vs
- volere
- Prima
- we
- sito web
- servizi web
- ovest
- quando
- quale
- while
- volere
- con
- senza
- lavori
- In tutto il mondo
- sarebbe
- avvolgere
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro
- zoom