Scegli la migliore origine dati per il tuo lavoro di formazione su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Scegli la migliore fonte di dati per il tuo lavoro di formazione su Amazon SageMaker

Amazon Sage Maker è un servizio gestito che semplifica la creazione, il training e la distribuzione di modelli di machine learning (ML). I data scientist utilizzano i processi di formazione di SageMaker per addestrare facilmente i modelli ML; non devi preoccuparti di gestire le risorse di calcolo e paghi solo il tempo effettivo di formazione. L'acquisizione dei dati è parte integrante di qualsiasi pipeline di formazione e i processi di formazione SageMaker supportano una varietà di modalità di archiviazione e input dei dati per adattarsi a un'ampia gamma di carichi di lavoro di formazione.

Questo post ti aiuta a scegliere la migliore origine dati per il tuo caso d'uso di formazione SageMaker ML. Presentiamo le opzioni delle origini dati supportate in modo nativo dai processi di formazione SageMaker. Per ciascuna origine dati e modalità di input, ne descriviamo la facilità d'uso, le caratteristiche prestazionali, i costi e le limitazioni. Per aiutarti a iniziare rapidamente, forniamo il diagramma con un flusso decisionale di esempio che puoi seguire in base alle caratteristiche chiave del carico di lavoro. Infine, eseguiamo diversi benchmark per scenari di formazione realistici per dimostrare le implicazioni pratiche sui costi e sulle prestazioni complessivi della formazione.

Origini dati native di SageMaker e modalità di input

Leggere i dati di addestramento in modo semplice e flessibile in modo efficiente è una preoccupazione comune e ricorrente per la formazione ML. SageMaker semplifica l'acquisizione dei dati con una selezione di meccanismi di acquisizione dati efficienti e ad alto rendimento chiamati origini dati e le rispettive modalità di input. Ciò consente di disaccoppiare il codice di addestramento dall'origine dati effettiva, montare automaticamente file system, leggere con prestazioni elevate, attivare facilmente lo sharding dei dati tra GPU e istanze per abilitare il parallelismo dei dati e mescolare automaticamente i dati all'inizio di ogni epoca.

Il meccanismo di acquisizione della formazione SageMaker si integra nativamente con tre servizi di storage gestiti AWS:

  • Servizio di archiviazione semplice Amazon (Amazon S3) è un servizio di storage di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni leader del settore.
  • Amazon FSx per Lustre è uno spazio di archiviazione condiviso completamente gestito con la scalabilità e le prestazioni del popolare file system Lustre. Di solito è collegato a un bucket S3 esistente.
  • File system elastico Amazon (Amazon EFS) è un file system condiviso per scopi generali, scalabile e altamente disponibile con più livelli di prezzo. Amazon EFS è serverless e aumenta e diminuisce automaticamente man mano che aggiungi e rimuovi file.

La formazione SageMaker consente allo script di formazione di accedere ai set di dati archiviati su Amazon S3, FSx for Lustre o Amazon EFS, come se fossero disponibili su un file system locale (tramite un'interfaccia del file system conforme a POSIX).

Con Amazon S3 come origine dati, puoi scegliere tra la modalità File, la modalità FastFile e la modalità Pipe:

  • Modalità file – SageMaker copia un set di dati da Amazon S3 allo storage dell'istanza ML, che è allegato Negozio di blocchi elastici di Amazon (Amazon EBS) o volume SSD NVMe, prima dell'avvio dello script di formazione.
  • Modalità File veloce – SageMaker espone un set di dati che risiede in Amazon S3 come file system POSIX sull'istanza di training. I file di set di dati vengono trasmessi in streaming da Amazon S3 su richiesta mentre lo script di training li legge.
  • Modalità pipe – SageMaker trasmette un set di dati residente in Amazon S3 all'istanza di training ML come una pipe Unix, che trasmette da Amazon S3 su richiesta mentre lo script di training legge i dati dalla pipe.

Con FSx for Lustre o Amazon EFS come origine dati, SageMaker monta il file system prima dell'avvio dello script di training.

Canali di ingresso della formazione

Quando si avvia un processo di formazione SageMaker, è possibile specificarne fino a 20 gestiti canali di ingresso della formazione. È possibile pensare ai canali come a un'unità di astrazione per indicare al lavoro di formazione come e dove ottenere i dati resi disponibili al codice dell'algoritmo per leggerli da un percorso del file system (ad esempio, /opt/ml/input/data/input-channel-name) sull'istanza ML. I canali di formazione selezionati vengono acquisiti come parte dei metadati del lavoro di formazione al fine di consentire un monitoraggio completo della derivazione del modello per casi d'uso come la riproducibilità dei lavori di formazione o scopi di governance del modello.

Per utilizzare Amazon S3 come origine dati, definisci a Ingresso di formazione di specificare quanto segue:

  • La tua modalità di input (modalità File, FastFile o Pipe)
  • Distribuzione ed rimescolamento configurazione
  • An S3DataType come uno dei tre metodi per specificare gli oggetti in Amazon S3 che compongono il set di dati:

In alternativa, per FSx for Lustre o Amazon EFS, definisci a FileSystemInput.

Il diagramma seguente mostra cinque processi di training, ciascuno configurato con una diversa combinazione di origine dati e modalità di input:

Scegli la migliore origine dati per il tuo lavoro di formazione su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Origini dei dati e modalità di input

Le sezioni seguenti forniscono un approfondimento sulle differenze tra Amazon S3 (modalità File, modalità FastFile e modalità Pipe), FSx for Lustre e Amazon EFS come meccanismi di acquisizione di SageMaker.

Modalità file di Amazon S3

La modalità file è la modalità di input predefinita (se non ne hai specificata esplicitamente una) ed è la più semplice da usare. Quando utilizzi questa opzione di input, SageMaker scarica il set di dati da Amazon S3 nello storage dell'istanza di training ML (Amazon EBS o NVMe locale a seconda del tipo di istanza) per tuo conto prima di avviare l'addestramento del modello, in modo che lo script di training possa leggere il set di dati da il file system locale. In questo caso, l'istanza deve disporre di spazio di archiviazione sufficiente per contenere l'intero set di dati.

Puoi configurare il set di dati per la modalità File fornendo un prefisso S3, un file manifest o un file manifest aumentato.

Dovresti utilizzare un prefisso S3 quando tutti i file del set di dati si trovano all'interno di un prefisso S3 comune (le sottocartelle vanno bene).

Il file manifest elenca i file che compongono il set di dati. In genere utilizzi un manifest quando un processo di preelaborazione dei dati emette un file manifest o quando i file del set di dati sono distribuiti su più prefissi S3. Un manifest aumentato è un file di riga JSON, in cui ogni riga contiene un elenco di attributi, come un riferimento a un file in Amazon S3, insieme ad attributi aggiuntivi, principalmente etichette. I suoi casi d'uso sono simili a quelli di un manifest.

La modalità file è compatibile con SageMaker in modalità locale (avvio interattivo di un contenitore di formazione SageMaker in pochi secondi). Per il training distribuito, puoi partizionare il set di dati su più istanze con il file ShardedByS3Key opzione.

La velocità di download in modalità file dipende dalla dimensione del set di dati, dalla dimensione media del file e dal numero di file. Ad esempio, quanto più grande è il set di dati (o quanti più file contiene), tanto più lunga è la fase di download, durante la quale la risorsa di calcolo dell'istanza rimane effettivamente inattiva. Durante l'addestramento con le istanze Spot, il set di dati viene scaricato ogni volta che il lavoro riprende dopo un'interruzione Spot. In genere, il download dei dati avviene a circa 200 MB/s per file di grandi dimensioni (ad esempio, 5 minuti/50 GB). Se questo sovraccarico di avvio sia accettabile dipende principalmente dalla durata complessiva del lavoro di formazione, poiché una fase di formazione più lunga significa una fase di download proporzionalmente più piccola.

Modalità FastFile di Amazon S3

La modalità FastFile espone gli oggetti S3 tramite un'interfaccia di file system conforme a POSIX, come se i file fossero disponibili sul disco locale dell'istanza di training e trasmette in streaming il relativo contenuto su richiesta quando i dati vengono utilizzati dallo script di training. Ciò significa che il set di dati non deve più adattarsi allo spazio di archiviazione dell'istanza di addestramento e non è necessario attendere che il set di dati venga scaricato nell'istanza di addestramento prima che l'addestramento possa iniziare.

Per facilitare ciò, SageMaker elenca tutti i metadati dell'oggetto archiviati con il prefisso S3 specificato prima dell'esecuzione dello script di training. Questi metadati vengono utilizzati per creare un file di sola lettura FUSE (file system nello spazio utente) disponibile per lo script di formazione tramite /opt/ml/data/training-channel-name. L'elenco degli oggetti S3 viene eseguito alla velocità di 5,500 oggetti al secondo, indipendentemente dalle loro dimensioni. Questo è molto più rapido rispetto al download anticipato dei file, come nel caso della modalità File. Mentre lo script di training è in esecuzione, può elencare o leggere i file come se fossero disponibili localmente. Ogni operazione di lettura è delegata al servizio FUSE, che inoltra le richieste GET ad Amazon S3 per consegnare il contenuto effettivo del file al chiamante. Come un file system locale, FastFile tratta i file come byte, quindi è indipendente dai formati di file. La modalità FastFile può raggiungere una velocità effettiva superiore a un GB/s durante la lettura sequenziale di file di grandi dimensioni utilizzando più nodi di lavoro. Puoi utilizzare FastFile per leggere file di piccole dimensioni o recuperare intervalli di byte casuali, ma dovresti aspettarti una velocità effettiva inferiore per tali modelli di accesso. È possibile ottimizzare il modello di accesso in lettura serializzando molti file di piccole dimensioni in contenitori di file più grandi e leggendoli in sequenza.

FastFile attualmente supporta solo i prefissi S3 (nessun supporto per manifest e manifest aumentato) e la modalità FastFile è compatibile con la modalità locale SageMaker.

Modalità Pipe di Amazon S3

La modalità Pipe è un'altra modalità di streaming che è in gran parte sostituita dalla modalità FastFile più recente e più semplice da usare.

Con la modalità Pipe, i dati vengono prerecuperati da Amazon S3 con concorrenza e throughput elevati e trasmessi in pipe Unix denominate FIFO. Ogni pipe può essere letta solo da un singolo processo. Un'estensione specifica di SageMaker per TensorFlow comodamente integra la modalità Pipe nel caricatore dati nativo di TensorFlow per lo streaming di formati di file di testo, TFRecords o RecordIO. La modalità pipe supporta anche lo sharding gestito e lo spostamento casuale dei dati.

FSx per Lustro

FSx for Lustre può scalare fino a centinaia di GB/s di throughput e milioni di IOPS con recupero di file a bassa latenza.

Quando si avvia un lavoro di training, SageMaker monta il file system FSx for Lustre sul file system dell'istanza di training, quindi avvia lo script di training. Il montaggio in sé è un'operazione relativamente veloce che non dipende dalla dimensione del set di dati archiviato in FSx for Lustre.

In molti casi, si crea un file system FSx for Lustre e collegarlo a un bucket S3 e al prefisso. Quando sono collegati a un bucket S3 come origine, i file vengono caricati in modo lento nel file system mentre li legge lo script di training. Ciò significa che subito dopo la prima epoca della prima esecuzione di addestramento, l'intero set di dati viene copiato da Amazon S3 allo storage FSx per Lustre (presupponendo che un'epoca sia definita come una singola scansione completa negli esempi di addestramento e che l'FSx allocato per Lo spazio di archiviazione della lucentezza è abbastanza grande). Ciò consente l'accesso ai file a bassa latenza per eventuali epoche e processi di training successivi con lo stesso set di dati.

Puoi anche precaricare i file nel file system prima di iniziare il lavoro di formazione, il che allevia l'avvio a freddo dovuto al caricamento lento. È anche possibile eseguire più processi di training in parallelo serviti dallo stesso file system FSx for Lustre. Per accedere a FSx for Lustre, il tuo processo di formazione deve connettersi a un VPC (vedi Impostazioni VPCConfig), che richiede la configurazione e il coinvolgimento di DevOps. Per evitare costi di trasferimento dati, il file system utilizza un'unica zona di disponibilità ed è necessario specificare questo ID zona di disponibilità durante l'esecuzione del processo di training. Poiché utilizzi Amazon S3 come storage di dati a lungo termine, ti consigliamo di distribuire FSx for Lustre con storage Scratch 2, come scelta di storage a breve termine economicamente vantaggiosa per un throughput elevato, fornendo una linea di base di 200 MB/s e un'accelerazione fino a 1300 MB/s per TB di storage assegnato.

Con il tuo file system FSx for Lustre costantemente in esecuzione, puoi iniziare nuovi lavori di training senza attendere la creazione di un file system e non devi preoccuparti dell'avvio a freddo durante la primissima epoca (perché i file potrebbero ancora essere memorizzati nella cache in il file system FSx for Lustre). Lo svantaggio di questo scenario è il costo aggiuntivo associato al mantenimento dell'esecuzione del file system. In alternativa, potresti creare ed eliminare il file system prima e dopo ogni lavoro di formazione (probabilmente con l'automazione tramite script per aiutare), ma ci vuole tempo per inizializzare un file system FSx for Lustre, che è proporzionale al numero di file che contiene (per ad esempio, è necessaria circa un'ora per indicizzare circa 2 milioni di oggetti da Amazon S3).

AmazonEFS

Ti consigliamo di utilizzare Amazon EFS se i tuoi dati di addestramento risiedono già in Amazon EFS a causa di casi d'uso oltre alla formazione ML. Per utilizzare Amazon EFS come origine dati, i dati devono già risiedere in Amazon EFS prima dell'addestramento. SageMaker monta il file system Amazon EFS specificato sull'istanza di training, quindi avvia lo script di training. Quando si configura il file system Amazon EFS, è necessario scegliere tra la modalità di prestazioni General Purpose predefinita, ottimizzata per la latenza (adatta per file di piccole dimensioni) e la modalità di prestazioni Max I/O, che può scalare a livelli più elevati di throughput aggregato e operazioni al secondo (meglio per lavori di formazione con molti operatori I/O). Per saperne di più, fare riferimento a Utilizzando la giusta modalità di prestazione.

Inoltre, puoi scegliere tra due opzioni di throughput misurato: throughput bursting e throughput assegnato. Il throughput di burst per un file system da 1 TB fornisce una linea di base di 150 MB/s, pur essendo in grado di raggiungere 300 MB/s per un periodo di tempo di 12 ore al giorno. Se hai bisogno di un throughput di base più elevato o ti ritrovi a corto di crediti burst troppe volte, puoi aumentare la dimensione del file system o passare al throughput assegnato. Nel throughput assegnato, paghi per il throughput di base desiderato fino a un massimo di 3072 MB/s in lettura.

Il tuo lavoro di formazione deve connettersi a un VPC (vedi Impostazioni VPCConfig) per accedere ad Amazon EFS.

Scegliere la migliore fonte dati

La migliore origine dati per il tuo lavoro di training dipende dalle caratteristiche del carico di lavoro come la dimensione del set di dati, il formato del file, la dimensione media del file, la durata del training, il modello di lettura del caricatore di dati sequenziale o casuale e la velocità con cui il tuo modello può utilizzare i dati di training.

Il seguente diagramma di flusso fornisce alcune linee guida per aiutarti a iniziare:
Scegli la migliore origine dati per il tuo lavoro di formazione su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Quando utilizzare Amazon EFS

Se il set di dati è archiviato principalmente su Amazon EFS, potresti disporre di un'applicazione di preelaborazione o di annotazioni che utilizza Amazon EFS per l'archiviazione. Puoi eseguire facilmente un processo di training configurato con un canale dati che punta al file system Amazon EFS (per ulteriori informazioni, consulta Accelera la formazione su Amazon SageMaker utilizzando Amazon FSx per i file system Lustre e Amazon EFS). Se le prestazioni non sono buone come ti aspettavi, controlla le opzioni di ottimizzazione con Guida alle prestazioni di Amazon EFSo prendere in considerazione altre modalità di input.

Utilizza la modalità File per set di dati di piccole dimensioni

Se il set di dati è archiviato su Amazon S3 e il suo volume complessivo è relativamente piccolo (ad esempio, meno di 50-100 GB), prova a utilizzare la modalità File. Il sovraccarico per il download di un set di dati di 50 GB può variare in base al numero totale di file (ad esempio, circa 5 minuti se suddiviso in frammenti da 100 MB). Se questo sovraccarico di avvio sia accettabile dipende principalmente dalla durata complessiva del lavoro di formazione, poiché una fase di formazione più lunga significa una fase di download proporzionalmente più piccola.

Serializzazione di molti piccoli file insieme

Se le dimensioni del set di dati sono ridotte (meno di 50-100 GB), ma sono costituite da molti file di piccole dimensioni (meno di 50 MB), il sovraccarico di download in modalità file aumenta, poiché ogni file deve essere scaricato singolarmente da Amazon S3 al server volume dell'istanza di addestramento. Per ridurre questo sovraccarico e accelerare l'attraversamento dei dati in generale, prendere in considerazione la serializzazione di gruppi di file più piccoli in meno contenitori di file più grandi (ad esempio 150 MB per file) utilizzando formati di file come TFRecord per TensorFlow, WebSet di dati per PyTorch o Registra IO per MXNet. Questi formati richiedono che il caricatore di dati esegua l'iterazione degli esempi in sequenza. Puoi comunque mischiare i tuoi dati riordinando casualmente l'elenco dei file TFRecord dopo ogni epoca e campionando casualmente i dati da un buffer di shuffle locale (vedi seguente Esempio di TensorFlow).

Quando utilizzare la modalità FastFile

Per set di dati più grandi con file di grandi dimensioni (più di 50 MB), la prima opzione è provare la modalità FastFile, che è più semplice da utilizzare rispetto a FSx for Lustre perché non richiede la creazione di un file system o la connessione a un VPC. La modalità FastFile è ideale per contenitori di file di grandi dimensioni (più di 150 MB) e potrebbe funzionare bene anche con file più di 50 MB. Poiché la modalità FastFile fornisce un'interfaccia POSIX, supporta le letture casuali (lettura di intervalli di byte non sequenziali). Tuttavia, questo non è il caso d'uso ideale e la velocità effettiva sarebbe probabilmente inferiore rispetto alle letture sequenziali. Tuttavia, se si dispone di un modello ML relativamente grande e ad alta intensità di calcolo, la modalità FastFile potrebbe comunque essere in grado di saturare la larghezza di banda effettiva della pipeline di training e non provocare un collo di bottiglia di I/O. Dovrai sperimentare e vedere. Fortunatamente, passare dalla modalità File a FastFile (e viceversa) è facile come aggiungere (o rimuovere) il file input_mode='FastFile' parametro durante la definizione del canale di input utilizzando SageMaker Python SDK:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

Nessun altro codice o configurazione deve essere modificato.

Quando utilizzare FSx for Lustre

Se il tuo set di dati è troppo grande per la modalità File o contiene molti file di piccole dimensioni (che non puoi serializzare facilmente) o hai un modello di accesso in lettura casuale, FSx for Lustre è una buona opzione da considerare. Il suo file system è scalabile fino a centinaia di GB/s di throughput e milioni di IOPS, il che è l'ideale quando si hanno molti file di piccole dimensioni. Tuttavia, come già discusso in precedenza, prestare attenzione ai problemi di avvio a freddo dovuti al caricamento lento e al sovraccarico derivante dalla configurazione e dall'inizializzazione del file system FSx for Lustre.

Considerazioni sui costi

Per la maggior parte dei lavori di formazione ML, in particolare i lavori che utilizzano GPU o chip ML appositamente realizzati, la maggior parte del costo di formazione è costituito dai secondi fatturabili dell'istanza di formazione ML. I GB di storage al mese, le richieste API e il throughput assegnato sono costi aggiuntivi direttamente associati alle origini dati che utilizzi.

GB di spazio di archiviazione al mese

I GB di spazio di archiviazione al mese possono essere significativi per set di dati più grandi, come video, dati di sensori LiDAR e registri delle offerte in tempo reale di AdTech. Ad esempio, archiviando 1 TB nel file Livello di accesso frequente con tiering intelligente di Amazon S3 costa $ 23 al mese. L'aggiunta del file system FSx for Lustre su Amazon S3 comporta costi aggiuntivi. Ad esempio, la creazione di un file system da 1.2 TB di tipo Scratch 2 con supporto SSD con la compressione dei dati disabilitata costa ulteriori $ 168 al mese ($ 140/TB/mese).

Con Amazon S3 e Amazon EFS, paghi solo per ciò che utilizzi, il che significa che ti verrà addebitato un costo in base alle dimensioni effettive del set di dati. Con FSx for Lustre, i costi vengono addebitati in base alla dimensione del file system sottoposto a provisioning (minimo 1.2 TB). Quando si eseguono istanze ML con volumi EBS, Amazon EBS viene addebitato indipendentemente dall'istanza ML. In genere si tratta di un costo molto inferiore rispetto al costo di esecuzione dell'istanza. Ad esempio, l'esecuzione di un'istanza ml.p3.2xlarge con un volume EBS da 100 GB per 1 ora costa $ 3.825 per l'istanza e $ 0.02 per il volume EBS.

Richieste API e costo del throughput assegnato

Mentre il tuo lavoro di formazione analizza il set di dati, elenca e recupera i file inviando richieste API Amazon S3. Ad esempio, ogni milione di richieste GET ha un prezzo di 0.4 USD (con la classe Intelligent-Tiering). Non dovresti prevedere alcun costo di trasferimento dati per la larghezza di banda in entrata e in uscita da Amazon S3, poiché la formazione si svolge in un'unica zona di disponibilità.

Quando si utilizza un FSx for Lustre collegato a un bucket S3, si sostengono i costi della richiesta API Amazon S3 per la lettura dei dati che non sono ancora memorizzati nella cache nel file system, poiché FSx For Lustre inoltra la richiesta a Amazon S3 (e memorizza nella cache il risultato ). Non sono previsti costi di richiesta diretti per FSx for Lustre stesso. Quando utilizzi un file system FSx for Lustre, evita i costi per il trasferimento dei dati tra zone di disponibilità eseguendo il processo di formazione connesso alla stessa zona di disponibilità in cui hai effettuato il provisioning del file system. Amazon EFS con throughput assegnato aggiunge un costo aggiuntivo per risparmiare oltre GB al mese.

Case study sulle prestazioni

Per dimostrare le considerazioni sulle prestazioni di formazione menzionate in precedenza, abbiamo eseguito una serie di benchmark per un caso d'uso realistico nel dominio della visione artificiale. Il benchmark (e i suggerimenti) di questa sezione potrebbero non essere applicabili a tutti gli scenari e sono influenzati da vari fattori predeterminati che abbiamo utilizzato, come DNN. Abbiamo eseguito test per 12 combinazioni dei seguenti:

  • Modalità di inserimento – FSx per Lustre, modalità File, modalità FastFile
  • Dimensioni del set di dati – Set di dati più piccolo (1 GB), set di dati più grande (54 GB)
  • Dimensioni del file – File più piccoli (JPG, circa 39 KB), File più grandi (TFRecord, circa 110 MB)

Per questo caso di studio, abbiamo scelto le modalità di input più utilizzate e pertanto abbiamo omesso Amazon EFS e la modalità Pipe.

I benchmark del case study sono stati progettati come processi di formazione SageMaker TensorFlow end-to-end su un'istanza a GPU singola ml.p3.2xlarge. Abbiamo scelto il rinomato ResNet-50 come modello di base per l'attività di classificazione e Caltech-256 come set di dati di addestramento più piccolo (che abbiamo replicato 50 volte per creare la versione del set di dati più grande). Abbiamo eseguito l'addestramento per un'epoca, definita come un'unica scansione completa negli esempi di addestramento.

I seguenti grafici mostrano il tempo totale fatturabile dei lavori di formazione SageMaker per ogni scenario di benchmark. Il tempo totale del lavoro stesso comprende download, formazione e altre fasi (come l'avvio del contenitore e il caricamento di artefatti del modello addestrato su Amazon S3). Tempi fatturabili più brevi si traducono in lavori di formazione più rapidi ed economici.

Scegli la migliore origine dati per il tuo lavoro di formazione su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Prima discutiamo Scenario A e Scenario C, che dimostrano in modo pratico la differenza di prestazioni tra le modalità di input quando il set di dati è composto da molti file di piccole dimensioni.

Scenario A (file più piccoli, set di dati più piccolo) rivela che il lavoro di training con il file system FSx for Lustre ha il tempo fatturabile più breve. Ha la fase di download più breve e la fase di addestramento è veloce quanto la modalità File, ma più veloce di FastFile. FSx for Lustre è il vincitore in questo test su un'unica epoca. Detto questo, considera un carico di lavoro simile ma con più epoche: il sovraccarico relativo della modalità File dovuto alla fase di download diminuisce man mano che vengono aggiunte più epoche. In questo caso preferiamo la modalità File per la sua facilità d'uso. Inoltre, potresti scoprire che utilizzare la modalità File e pagare 100 secondi fatturabili extra è una scelta migliore rispetto al pagamento e al provisioning di un file system FSx for Lustre.

Scenario C (file più piccoli, set di dati più grande) mostra FSx for Lustre come la modalità più veloce, con solo 5,000 secondi di tempo totale fatturabile. Ha anche la fase di download più breve, perché il montaggio del file system FSx for Lustre non dipende dal numero di file nel file system (1.5 milioni di file in questo caso). Anche il sovraccarico di download di FastFile è ridotto; recupera solo i metadati dei file che risiedono sotto il prefisso del bucket S3 specificato, mentre il contenuto dei file viene letto durante la fase di training. La modalità file è la modalità più lenta e impiega 10,000 secondi per scaricare l'intero set di dati in anticipo prima di iniziare l'addestramento. Quando guardiamo la fase di training, FSx for Lustre e la modalità File dimostrano prestazioni simili ed eccellenti. Per quanto riguarda la modalità FastFile, durante lo streaming di file più piccoli direttamente da Amazon S3, il sovraccarico per l'invio di una nuova richiesta GET per ciascun file diventa significativo rispetto alla durata totale del trasferimento di file (nonostante l'utilizzo di un caricatore di dati altamente parallelo con buffer di prefetch). Ciò si traduce in una velocità effettiva complessiva inferiore per la modalità FastFile, che crea un collo di bottiglia di I/O per il processo di training. FSx for Lustre è il chiaro vincitore in questo scenario.

Scenari B e D mostra la differenza di prestazioni tra le modalità di input quando il set di dati è composto da un numero inferiore di file di grandi dimensioni. La lettura sequenziale utilizzando file più grandi in genere determina migliori prestazioni di I/O perché consente un buffering efficace e riduce il numero di operazioni di I/O.

Scenario B (file più grandi, set di dati più piccoli) mostra una durata della fase di addestramento simile per tutte le modalità (a testimonianza che l'addestramento non è legato all'I/O). In questo scenario, preferiamo la modalità FastFile alla modalità File a causa della fase di download più breve e preferiamo la modalità FastFile a FSx for Lustre a causa della facilità d'uso della prima.

Scenario D (file più grandi, set di dati più grandi) mostra tempi totali fatturabili relativamente simili per tutte e tre le modalità. La fase di download della modalità File è più lunga di quella di FSx per Lustre e FastFile. La modalità file scarica l'intero set di dati (54 GB) da Amazon S3 all'istanza di training prima di iniziare la fase di training. Tutte e tre le modalità impiegano un tempo simile nella fase di training, perché tutte le modalità possono recuperare i dati abbastanza velocemente e sono legate alla GPU. Se utilizziamo istanze ML con risorse CPU o GPU aggiuntive, come ml.p4d.24xlarge, il throughput I/O dei dati richiesto per saturare le risorse di calcolo aumenta. In questi casi, possiamo aspettarci che FastFile e FSx for Lustre ridimensionino con successo la propria velocità effettiva (tuttavia, la velocità effettiva di FSx for Lustre dipende dalla dimensione del file system fornito). La capacità della modalità File di ridimensionare la propria velocità effettiva dipende dalla velocità effettiva del volume del disco collegato all'istanza. Ad esempio, le istanze supportate da Amazon EBS (come ml.p3.2xlarge, ml.p3.8xlarge e ml.p3.16xlarge) sono limitate a un throughput massimo di 250 MB/s, mentre le istanze locali supportate da NVMe (come ml. g5.* o ml.p4d.24xlarge) può supportare una velocità effettiva molto maggiore.

Per riassumere, crediamo che FastFile sia il vincitore per questo scenario perché è più veloce della modalità File e altrettanto veloce di FSx for Lustre, ma più semplice da usare, costa meno e può facilmente aumentare la sua produttività in base alle necessità.

Inoltre, se avessimo un set di dati molto più grande (diversi TB di dimensioni), la modalità File impiegherebbe molte ore a scaricare il set di dati prima che l'addestramento possa iniziare, mentre FastFile potrebbe iniziare l'addestramento molto più rapidamente.

Porta la tua acquisizione di dati

L'origine dati nativa di SageMaker si adatta alla maggior parte, ma non a tutti, i possibili scenari di formazione ML. Le situazioni in cui potresti dover cercare altre opzioni di acquisizione dati potrebbero includere la lettura dei dati direttamente da un prodotto di storage di terze parti (supponendo che non sia possibile un'esportazione semplice e tempestiva su Amazon S3) o la forte esigenza della stessa formazione script per essere eseguito senza modifiche sia su SageMaker che Cloud di calcolo elastico di Amazon (Amazon EC2) o Servizio Amazon Elastic Kubernetes (Amazon EKS). Puoi risolvere questi casi implementando il meccanismo di inserimento dei dati nello script di training. Questo meccanismo è responsabile della lettura dei set di dati da origini dati esterne nell'istanza di training. Ad esempio, il TFRecordDataset dei TensorFlow tf.data la libreria può leggere direttamente dallo storage Amazon S3.

Se il meccanismo di acquisizione dei dati deve chiamare servizi AWS, ad esempio Servizio di database relazionale Amazon (Amazon RDS), assicurati che il file Gestione dell'identità e dell'accesso di AWS (IAM) del tuo lavoro di formazione include le policy IAM pertinenti. Se l'origine dati risiede in Cloud privato virtuale di Amazon (Amazon VPC), è necessario eseguire il processo di formazione connesso allo stesso VPC.

Quando gestisci tu stesso l'importazione dei set di dati, il monitoraggio della derivazione di SageMaker non può registrare automaticamente i set di dati utilizzati durante l'addestramento. Pertanto, prendi in considerazione meccanismi alternativi, come l'addestramento dei tag di lavoro o degli iperparametri, per acquisire i metadati rilevanti.

Conclusione

La scelta della giusta origine dati di addestramento SageMaker potrebbe avere un profondo effetto sulla velocità, sulla facilità d'uso e sul costo dell'addestramento dei modelli ML. Utilizza il diagramma di flusso fornito per iniziare rapidamente, osservare i risultati e sperimentare configurazioni aggiuntive secondo necessità. Tieni presente i pro, i contro e i limiti di ciascuna origine dati e il modo in cui si adattano ai requisiti individuali del tuo lavoro di formazione. Rivolgiti a un contatto AWS per ulteriori informazioni e assistenza.


Informazioni sugli autori

Scegli la migliore origine dati per il tuo lavoro di formazione su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Gili Nahum è un Senior AI/ML Specialist Solutions Architect che lavora come parte del team EMEA Amazon Machine Learning. Gili è appassionato delle sfide della formazione di modelli di deep learning e di come l'apprendimento automatico sta cambiando il mondo come lo conosciamo. Nel tempo libero, Gili si diverte a giocare a ping pong.

Scegli la migliore origine dati per il tuo lavoro di formazione su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dott. Aleksandr Arzhanov è un AI/ML Specialist Solutions Architect con sede a Francoforte, Germania. Aiuta i clienti AWS a progettare e distribuire le loro soluzioni di machine learning nella regione EMEA. Prima di entrare in AWS, Alexander stava ricercando le origini degli elementi pesanti nel nostro universo e si è appassionato al ML dopo averlo utilizzato nei suoi calcoli scientifici su larga scala.

Timestamp:

Di più da Apprendimento automatico di AWS