Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Migliora le prestazioni in termini di prezzo del training del modello utilizzando i cluster eterogenei Amazon SageMaker

Questo post è stato scritto insieme a Chaim Rand di Mobileye.

Alcuni carichi di lavoro di machine learning (ML), come l'addestramento di modelli di visione artificiale o l'apprendimento per rinforzo, spesso implicano la combinazione dell'attività ad alta intensità di GPU o acceleratore dell'addestramento del modello di rete neurale con l'attività di preelaborazione dei dati ad alta intensità di CPU, come l'aumento delle immagini. Quando entrambi i tipi di attività vengono eseguiti sullo stesso tipo di istanza, la preelaborazione dei dati subisce un collo di bottiglia sulla CPU, con conseguente minore utilizzo della GPU. Questo problema peggiora con il tempo poiché il throughput delle nuove generazioni di GPU cresce a un ritmo più rapido rispetto a quello delle CPU.

Per affrontare questo problema, nel luglio 2022, noi lanciato cluster eterogenei per Amazon Sage Maker model training, che consente di avviare processi di formazione che utilizzano tipi di istanza diversi in un unico processo. Ciò consente di scaricare parti della pipeline di preelaborazione dei dati su ottimizzato per il calcolo tipi di istanza, mentre l'attività della rete neurale profonda (DNN) continua a essere eseguita GPU o elaborazione accelerata tipi di istanza. I nostri benchmark mostrano un vantaggio in termini di rapporto prezzo/prestazioni fino al 46% dopo aver abilitato cluster eterogenei in un training del modello di visione artificiale TensorFlow legato alla CPU.

Per un caso d'uso simile, Mobileye, una società di sviluppo di tecnologie per veicoli autonomi, aveva da condividere:

"Spostando l'addestramento del modello di visione artificiale di deep learning legato alla CPU in modo che venga eseguito su più tipi di istanza (CPU e acceleratori GPU/ML), utilizzando un tf.data.service basata sulla soluzione che abbiamo creato, siamo riusciti a ridurre i tempi di formazione del 40% riducendo i costi di formazione del 30%. Siamo entusiasti dei cluster eterogenei che ci consentono di eseguire questa soluzione su Amazon SageMaker".

— Ingegneria dell'intelligenza artificiale, Mobileye

In questo post, trattiamo i seguenti argomenti:

  • In che modo i cluster eterogenei aiutano a rimuovere i colli di bottiglia della CPU
  • Quando utilizzare cluster eterogenei e altre alternative
  • Implementazioni di riferimento in PyTorch e TensorFlow
  • Risultati del benchmark delle prestazioni
  • Cluster eterogenei a Mobileye

di AWS istanza di calcolo accelerato la famiglia include acceleratori di chip personalizzati AWS (AWS Inferenza, AWSTrainium), NVIDIA (GPU), E Acceleratori di Gaudì di Habana Labs (una società Intel). Nota che in questo post utilizziamo i termini GPU e acceleratore in modo intercambiabile.

Come i cluster eterogenei rimuovono i colli di bottiglia nell'elaborazione dei dati

I data scientist che addestrano modelli di deep learning mirano a massimizzare l'efficienza dei costi di formazione e ridurre al minimo i tempi di formazione. Per raggiungere questo obiettivo, un obiettivo di ottimizzazione di base è avere un elevato utilizzo della GPU, la risorsa più costosa e scarsa all'interno del Cloud di calcolo elastico di Amazon (Amazon EC2). Questo può essere più impegnativo con i carichi di lavoro ML che combinano la propagazione avanti e indietro del classico modello di rete neurale ad alta intensità di GPU con attività ad alta intensità di CPU, come l'elaborazione e l'aumento dei dati nella visione artificiale o l'esecuzione di una simulazione ambientale nell'apprendimento per rinforzo. Questi carichi di lavoro possono finire per essere vincolati alla CPU, dove avere più CPU comporterebbe una maggiore velocità effettiva e una formazione più rapida ed economica poiché gli acceleratori esistenti sono parzialmente inattivi. In alcuni casi, i colli di bottiglia della CPU possono essere risolti passando a un altro tipo di istanza con un rapporto CPU:GPU più elevato. Tuttavia, ci sono situazioni in cui il passaggio a un altro tipo di istanza potrebbe non essere possibile a causa dell'architettura, dell'archiviazione o delle dipendenze di rete della famiglia di istanze.

In tali situazioni, devi aumentare la quantità di potenza della CPU combinando i tipi di istanza: istanze con GPU e CPU. Riassumendo, questo si traduce in un rapporto CPU:GPU complessivamente più elevato. Fino a poco tempo, i lavori di formazione SageMaker erano limitati ad avere istanze di un unico tipo di istanza scelto. Con i cluster eterogenei di SageMaker, i data scientist possono eseguire facilmente un processo di formazione con più tipi di istanza, il che consente di scaricare alcune delle attività CPU esistenti dalle istanze GPU a istanze CPU dedicate ottimizzate per il calcolo, con conseguente maggiore utilizzo della GPU e maggiore velocità e costi. formazione efficiente. Inoltre, con la potenza aggiuntiva della CPU, puoi fare in modo che le attività di preelaborazione che tradizionalmente venivano eseguite offline come passaggio preliminare all'allenamento diventino parte del tuo lavoro di addestramento. Ciò rende più veloce l'iterazione e la sperimentazione sia sulla preelaborazione dei dati che sui presupposti di addestramento DNN e sugli iperparametri.

Ad esempio, considera un potente tipo di istanza GPU, ml.p4d.24xlarge (96 vCPU, 8 x NVIDIA A100 GPU), con un rapporto CPU:GPU di 12:1. Supponiamo che il tuo lavoro di formazione necessiti di 20 vCPU per preelaborare dati sufficienti per mantenere una GPU utilizzata al 100%. Pertanto, per mantenere tutte le 8 GPU utilizzate al 100%, è necessario un tipo di istanza da 160 vCPU. Tuttavia, ml.p4d.24xlarge è a corto di 64 vCPU, o il 40%, limitando l'utilizzo della GPU al 60%, come illustrato a sinistra del diagramma seguente. L'aggiunta di un'altra istanza ml.p4d.24xlarge aiuterebbe? No, perché il rapporto CPU:GPU del lavoro rimarrebbe lo stesso.

Con cluster eterogenei, possiamo aggiungere due ml.c5.18xlarge (72 vCPU), come mostrato a destra del diagramma. La vCPU totale netta in questo cluster è 210 (96+2*72), portando a un rapporto CPU:GPU a 30:1. Ognuna di queste istanze ottimizzate per il calcolo verrà scaricata con un'attività di preelaborazione dei dati ad alta intensità di CPU e consentirà un utilizzo efficiente della GPU. Nonostante il costo aggiuntivo di ml.c5.18xlarge, il maggiore utilizzo della GPU consente un'elaborazione più rapida e quindi vantaggi in termini di prezzo più elevati.

Quando utilizzare cluster eterogenei e altre alternative

In questa sezione, spieghiamo come identificare un collo di bottiglia della CPU e discutiamo di risolverlo utilizzando il tipo di istanza scale-up rispetto a cluster eterogenei.

Il modo rapido per identificare un collo di bottiglia della CPU è monitorare CPU e GPU metriche di utilizzo per i lavori di formazione SageMaker in Amazon Cloud Watch. È possibile accedere a queste viste da Console di gestione AWS all'interno del collegamento ipertestuale delle metriche dell'istanza della pagina del lavoro di formazione. Scegli le metriche pertinenti e passa dalla risoluzione di 5 minuti a quella di 1 minuto. Tieni presente che la scalabilità è del 100% per vCPU o GPU, quindi il tasso di utilizzo per un'istanza con 4 vCPU/GPU potrebbe raggiungere il 400%. La figura seguente è uno di questi esempi dai parametri CloudWatch, in cui la CPU è utilizzata per circa il 100%, indicando un collo di bottiglia della CPU, mentre la GPU è sottoutilizzata.

Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Per una diagnosi dettagliata, eseguire i lavori di formazione con Debugger di Amazon SageMaker per profilare lo stato di utilizzo delle risorse, le statistiche e le operazioni del framework, aggiungendo una configurazione del profiler quando costruisci uno stimatore SageMaker utilizzando SageMaker Python SDK. Dopo aver inviato il lavoro di formazione, rivedere il risultato rapporto del profiler per i colli di bottiglia della CPU.

Se concludi che il tuo lavoro potrebbe trarre vantaggio da un rapporto di calcolo CPU:GPU più elevato, considera prima di tutto il ridimensionamento a un altro tipo di istanza nella stessa famiglia di istanze, se disponibile. Ad esempio, se stai addestrando il tuo modello su ml.g5.8xlarge (32 vCPU, 1 GPU), considera la scalabilità fino a ml.g5.16xlarge (64 vCPU, 1 GPU). Oppure, se stai addestrando il tuo modello utilizzando l'istanza multi-GPU ml.g5.12xlarge (48 vCPU, 4 GPU), valuta la possibilità di scalare fino a ml.g5.24xlarge (96 vCPU, 4 GPU). Fare riferimento al G5 specifica della famiglia di istanza per maggiori dettagli.

A volte, la scalabilità verticale non è un'opzione, perché non esiste un tipo di istanza con un rapporto vCPU:GPU più elevato nella stessa famiglia di istanze. Ad esempio, se stai addestrando il modello su ml.trn1.32xlarge, ml.p4d.24xlarge o ml.g5.48xlarge, dovresti considerare cluster eterogenei per l'addestramento del modello SageMaker.

Oltre all'espansione, vorremmo notare che esistono alternative aggiuntive a un cluster eterogeneo, come NVIDIA DALI, che scarica la preelaborazione dell'immagine sulla GPU. Per ulteriori informazioni, fare riferimento a Superare i colli di bottiglia nella preelaborazione dei dati con TensorFlow Data Service, NVIDIA DALI e altri metodi.

Per semplificare il processo decisionale, fare riferimento al seguente diagramma di flusso.

Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Come utilizzare i cluster eterogenei di SageMaker

Per iniziare rapidamente, puoi passare direttamente agli esempi TensorFlow o PyTorch forniti come parte di questo post.

In questa sezione, ti spiegheremo come utilizzare un cluster eterogeneo SageMaker con un semplice esempio. Partiamo dal presupposto che tu sappia già come addestrare un modello con SageMaker Python SDK e la classe Estimator. In caso contrario, fare riferimento a Utilizzo di SageMaker Python SDK prima di continuare

Prima di questa funzione, hai inizializzato la classe Estimator del lavoro di formazione con il InstanceCount e InstanceType, che presuppone implicitamente che tu abbia un solo tipo di istanza (un cluster omogeneo). Con il rilascio dei cluster eterogenei, abbiamo introdotto il nuovo sagemaker.instance_group.InstanceGroup classe. Rappresenta un gruppo di una o più istanze di un tipo di istanza specifico, progettato per svolgere un ruolo logico (come elaborazione dati o ottimizzazione della rete neurale. Puoi avere due o più gruppi e specificare un nome personalizzato per ogni gruppo di istanze, l'istanza tipo e il numero di istanze per ciascun gruppo di istanze. Per ulteriori informazioni, fare riferimento a Utilizzo di SageMaker Python SDK ed Utilizzo delle API SageMaker di basso livello.

Dopo aver definito i gruppi di istanze, è necessario modificare lo script di addestramento per leggere SageMaker informazioni sull'ambiente di formazione che include una configurazione di cluster eterogenea. La configurazione contiene informazioni come i gruppi di istanze correnti, gli host correnti in ciascun gruppo e in quale gruppo risiede l'host corrente con la relativa classifica. Puoi creare la logica nello script di addestramento per assegnare i gruppi di istanze a determinate attività di addestramento ed elaborazione dati. Inoltre, lo script di addestramento deve occuparsi della comunicazione di gruppo tra istanze o dei meccanismi di caricamento distribuito dei dati (ad esempio, tf.servizio.dati in TensorFlow o generico server-client gRPC) o qualsiasi altro framework (ad esempio, Apache Spark).

Esaminiamo un semplice esempio di avvio di un lavoro di formazione eterogeneo e lettura della configurazione dell'ambiente in fase di esecuzione.

  1. Durante la definizione e l'avvio del processo di addestramento, configuriamo due gruppi di istanze utilizzati come argomenti per lo stimatore SageMaker:
    from sagemaker.instance_group import InstanceGroup
    data_group = InstanceGroup("data_group", "ml.c5.18xlarge", 2)
    dnn_group = InstanceGroup("dnn_group", "ml.p4d.24xlarge", 1)
    
    from sagemaker.pytorch import PyTorch
    estimator = PyTorch(...,
        entry_point='launcher.py',
        instance_groups=[data_group, dnn_group]
    )
  2. Nello script di addestramento del punto di ingresso (denominato launcher.py), leggiamo la configurazione eterogenea del cluster in base al fatto che l'istanza eseguirà il codice di preelaborazione o DNN:
    from sagemaker_training import environment
    env = environment.Environment()
    if env.current_instance_group == 'data_group': ...;

Con questo, riassumiamo le attività che SageMaker svolge per tuo conto e le attività di cui sei responsabile.

SageMaker esegue le seguenti attività:

  1. Fornire diversi tipi di istanza in base alla definizione del gruppo di istanze.
  2. Fornire canali di input su tutti o gruppi di istanze specifici.
  3. Distribuisci gli script di addestramento e le dipendenze alle istanze.
  4. Configura un cluster MPI su un gruppo di istanze specifico, se definito.

Sei responsabile delle seguenti attività:

  1. Modifica lo script del processo di avvio dell'addestramento per specificare i gruppi di istanze.
  2. Implementare una pipeline di dati distribuiti (ad esempio, tf.data.service).
  3. Modifica lo script del punto di ingresso (vedi launcher.py nel notebook di esempio) per essere un unico punto di ingresso che verrà eseguito su tutte le istanze, rilevare in quale gruppo di istanze è in esecuzione e attivare il comportamento pertinente (come l'elaborazione dei dati o l'ottimizzazione DNN).
  4. Al termine del ciclo di addestramento, devi assicurarti che il processo del punto di ingresso venga terminato su tutte le istanze in tutti i gruppi di istanze. Questo è importante perché SageMaker attende che tutte le istanze terminino l'elaborazione prima di contrassegnare il lavoro come completato e interrompere la fatturazione. Il launcher.py script nei notebook di esempio TensorFlow e PyTorch fornisce un'implementazione di riferimento per segnalare alle istanze del gruppo di dati di uscire quando le istanze del gruppo DNN terminano il loro lavoro.

Notebook di esempio per cluster eterogenei di SageMaker

In questa sezione forniamo una sintesi del quaderni di esempio per entrambi i framework TensorFlow e PyTorch ML. Nei taccuini puoi trovare i dettagli di implementazione, procedure dettagliate su come funziona il codice, frammenti di codice che puoi riutilizzare negli script di addestramento, diagrammi di flusso e analisi di confronto dei costi.

Nota che in entrambi gli esempi, non dovresti aspettarti che il modello converga in modo significativo. Il nostro intento è solo quello di misurare la pipeline di dati e il throughput di ottimizzazione della rete neurale espresso in epoch/step time. È necessario eseguire il benchmark con il proprio modello e set di dati per ottenere vantaggi in termini di rapporto prezzo/prestazioni che corrispondano al proprio carico di lavoro.

Cluster eterogeneo che utilizza un caricatore di dati distribuito basato su tf.data.service (TensorFlow)

La sezione taccuino mostra come implementare un cluster eterogeneo per la formazione SageMaker utilizzando TensorFlow tf.data.service pipeline di dati distribuiti basata. Formiamo un modello di visione artificiale di deep learning Resnet50 che richiede un aumento dei dati ad alta intensità di CPU. Utilizza Horvod per il parallelismo dei dati distribuiti multi-GPU.

Eseguiamo il carico di lavoro in due configurazioni: prima come cluster omogeneo, singola istanza ml.p4d.24xlarge, utilizzando uno standard tf.data pipeline che mostra i colli di bottiglia della CPU che portano a un minore utilizzo della GPU. Nella seconda esecuzione, si passa da un singolo tipo di istanza a due gruppi di istanze utilizzando un cluster eterogeneo SageMaker. Questa esecuzione scarica parte dell'elaborazione dei dati su istanze CPU aggiuntive (utilizzando tf.data.service).

Quindi confrontiamo le configurazioni omogenee ed eterogenee e troviamo i vantaggi chiave in termini di rapporto prezzo/prestazioni. Come mostrato nella tabella seguente, il processo eterogeneo (86 ms/passo) è 2.2 volte più veloce da addestrare rispetto al lavoro omogeneo (192 ms/passo), rendendo il training di un modello il 46% più economico.

Esempio 1 (TF) ml.p4d.24xl ml.c5.18xl Prezzo Orario* Tempo di passaggio medio Costo per passaggio Miglioramento delle prestazioni dei prezzi
omogeneo 1 0 $37.688 ms 192 $0.201 .
Eterogeneo 1 2 $45.032 ms 86 $0.108 46%

* Il prezzo all'ora si basa su us-east-1 Prezzi su richiesta di SageMaker

Questa velocità è resa possibile dall'utilizzo della vCPU aggiuntiva, fornita dal gruppo di dati, e da una preelaborazione più rapida. Vedi il taccuino per maggiori dettagli e grafici.

Cluster eterogeneo che utilizza un caricatore di dati distribuito basato su client-server gRPC (PyTorch)

La sezione taccuino mostra un carico di lavoro di esempio utilizzando un cluster eterogeneo per l'addestramento di SageMaker utilizzando un caricatore di dati distribuito basato su client-server gRPC. Questo esempio utilizza una singola GPU. Usiamo il modello PyTorch basato su quanto segue esempio ufficiale MNIST. Il codice di addestramento è stato modificato per essere pesante sulla preelaborazione dei dati. Formiamo questo modello in modalità cluster omogenee ed eterogenee e confrontiamo la performance dei prezzi.

In questo esempio, abbiamo presupposto che il carico di lavoro non possa trarre vantaggio da più GPU e abbia una dipendenza da un'architettura GPU specifica (NVIDIA V100). Abbiamo svolto lavori di formazione sia omogenei che eterogenei e abbiamo riscontrato vantaggi chiave in termini di rapporto qualità-prezzo, come mostrato nella tabella seguente. Il lavoro eterogeneo (1.19 s/fase) è 6.5 volte più veloce da addestrare rispetto al lavoro omogeneo (0.18 s/fase), rendendo il 77% più economico addestrare un modello.

Esempio 2 (PT) ml.p3.2xl ml.c5.9xl Prezzo Orario* Tempo di passaggio medio Costo per passaggio Miglioramento delle prestazioni dei prezzi
omogeneo 1 0 $3.825 ms 1193 $0.127 .
Eterogeneo 1 1 $5.661 ms 184 $0.029 77%

* Il prezzo all'ora si basa su us-east-1 Prezzi su richiesta di SageMaker

Ciò è possibile perché con un numero di CPU più elevato, potremmo utilizzare 32 caricatori di dati (rispetto agli 8 con ml.p3.2xlarge) per preelaborare i dati e mantenere la GPU vicino al 100% utilizzata a intervalli frequenti. Vedi il taccuino per maggiori dettagli e grafici.

Cluster eterogenei a Mobileye

Mobileye, una società Intel, sviluppa ADAS (Advanced Driver Assistance Systems) e tecnologie per veicoli autonomi con l'obiettivo di rivoluzionare il settore dei trasporti, rendere le strade più sicure e salvare vite umane. Queste tecnologie sono abilitate utilizzando sofisticati modelli di computer vision (CV) addestrati utilizzando SageMaker su grandi quantità di dati archiviati Servizio di archiviazione semplice Amazon (Amazon S3). Questi modelli utilizzano tecniche di rete neurale di deep learning all'avanguardia.

Abbiamo notato che per uno dei nostri modelli CV, il collo di bottiglia della CPU era causato principalmente da un'intensa preelaborazione dei dati che portava a GPU sottoutilizzate. Per questo carico di lavoro specifico, abbiamo iniziato a cercare soluzioni alternative, valutato tecnologie di pipeline di dati distribuite con cluster eterogenei basati su istanze EC2 e abbiamo elaborato implementazioni di riferimento per entrambi TensorFlow ed PyTorch. Il rilascio del cluster eterogeneo SageMaker ci consente di eseguire questo e carichi di lavoro simili su SageMaker per ottenere migliori vantaggi in termini di rapporto prezzo/prestazioni.

Considerazioni

Con il lancio della funzionalità del cluster eterogeneo, SageMaker offre molta più flessibilità nel mescolare e abbinare i tipi di istanza all'interno del tuo lavoro di formazione. Tuttavia, considerare quanto segue quando si utilizza questa funzione:

  • La funzionalità del cluster eterogeneo è disponibile tramite SageMaker PyTorch ed TensorFlow classi di stimatori quadro. I framework supportati sono PyTorch v1.10 o successivo e TensorFlow v2.6 o successivo.
  • Tutti i gruppi di istanze condividono la stessa immagine Docker.
  • Tutti i gruppi di istanze condividono lo stesso script di addestramento. Pertanto, lo script di addestramento deve essere modificato per rilevare a quale gruppo di istanze appartiene e il fork viene eseguito di conseguenza.
  • I nomi host delle istanze di addestramento (ad esempio, alog-1, algo-2 e così via) vengono assegnati in modo casuale e non indicano a quale gruppo di istanze appartengono. Per ottenere il ruolo dell'istanza, ti consigliamo di ottenere l'appartenenza al gruppo di istanze durante il runtime. Ciò è rilevante anche durante la revisione dei log in Cloud Watch, perché il nome del flusso di log [training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp] ha il nome host.
  • Una strategia di formazione distribuita (solitamente un cluster MPI) può essere applicata solo a un gruppo di istanze.
  • SageMaker Piscine calde gestite e SageMaker Modalità locale attualmente non può essere utilizzato con formazione di cluster eterogenei.

Conclusione

In questo post, abbiamo discusso quando e come utilizzare la funzionalità di cluster eterogeneo della formazione SageMaker. Abbiamo dimostrato un miglioramento del rapporto prezzo/prestazioni del 46% su un caso d'uso reale e ti abbiamo aiutato a iniziare rapidamente con il caricatore di dati distribuito (tf.data.service e gRPC client-server). Puoi utilizzare queste implementazioni con modifiche minime al codice negli script di addestramento esistenti.

Per iniziare, prova il nostro quaderni di esempio. Per ulteriori informazioni su questa funzione, fare riferimento a Allenati utilizzando un cluster eterogeneo.


Circa gli autori

Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di 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.

Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Hrushikesh Gangur è uno dei principali architetti di soluzioni per le startup AI/ML con esperienza sia in ML Training che in AWS Networking. Aiuta le startup nelle tecnologie di Autonomous Vehicle, Robotics, CV, NLP, MLOps, ML Platform e Robotics Process Automation a gestire il proprio business in modo efficiente ed efficace su AWS. Prima di entrare in AWS, Hrushikesh ha acquisito oltre 20 anni di esperienza nel settore principalmente in ambito cloud e piattaforme dati.

Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Gal Oshri è un Senior Product Manager nel team Amazon SageMaker. Ha 7 anni di esperienza lavorando su strumenti, framework e servizi di Machine Learning.

Migliora il rapporto prezzo/prestazioni dell'addestramento del tuo modello utilizzando i cluster eterogenei di Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Chaim Rand è uno sviluppatore di algoritmi di machine learning che lavora su tecnologie di deep learning e computer vision per soluzioni di veicoli autonomi presso Mobileye, una società Intel. Dai un'occhiata al suo blog.

Timestamp:

Di più da Apprendimento automatico di AWS