Amazon SageMaker Neo
Esegui modelli di ML ovunque con prestazioni 25 volte superiori
Amazon SageMaker Neo consente agli sviluppatori di ottimizzare modelli di machine learning (ML) per eseguire un’inferenza in SageMaker nel cloud e nei dispositivi supportati a livello di edge.
L’inferenza di ML è il processo di utilizzo di un modello addestrato di machine learning per fare previsioni. Dopo aver addestrato un modello per ottenere un’elevata precisione, per raggiungere elevate prestazioni gli sviluppatori impiegano spesso molto tempo ed energie per ottimizzarlo. Per eseguire l’inferenza nel cloud ottenendo una migliore capacità di trasmissione, gli sviluppatori ricorrono spesso ad ampie istanze con molta memoria e potenti capacità di elaborazione a costi maggiori. Per eseguire l’inferenza nei dispositivi edge con capacità di calcolo e memoria limitate, gli sviluppatori impiegano spesso mesi a ottimizzare manualmente il modello per ottenere prestazioni accettabili entro i limiti hardware del dispositivo.
Amazon SageMaker Neo ottimizza automaticamente i modelli di machine learning per eseguire l’inferenza nelle istanze cloud e nei dispositivi edge con maggiore velocità e senza perdita di accuratezza. Si inizia con un modello di machine learning già creato con DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX o XGBoost e addestrato in Amazon SageMaker o altrove. Dopodiché è possibile selezionare la piattaforma hardware di destinazione, che può essere un'istanza di hosting in SageMaker o un dispositivo edge basato su processori Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip o Texas Instruments. Con un solo clic, SageMaker Neo ottimizza il modello addestrato e lo compila in un eseguibile. Il compilatore usa un modello di machine learning per applicare le ottimizzazioni che consentono di estrarre le migliori prestazioni disponibili per il tuo modello nell’istanza cloud o nel dispositivo edge. Puoi quindi distribuire il modello come endpoint di SageMaker o nei dispositivi edge supportati e iniziare a fare previsioni.
Per eseguire l’inferenza nel cloud, SageMaker Neo velocizza l’inferenza e riduce i costi creando un container ottimizzato nell’hosting di SageMaker. Per eseguire l’inferenza a livello di edge, SageMaker Neo risparmia agli sviluppatori mesi di ottimizzazione manuale ottimizzando automaticamente il modello per il sistema operativo e l’hardware del processore selezionati.
Amazon SageMaker Neo utilizza Apache TVM e altri compilatori e librerie di accelerazione fornite dai partner per offrire le migliori prestazioni disponibili per un dato modello e hardware. AWS contribuisce al progetto Apache TVM con il codice del compilatore e al progetto open-source Neo-AI con il codice di runtime, con licenza Apache Software, per consentire ai fornitori di processori e ai produttori di dispositivi di innovare rapidamente in un runtime contenuto e comune.
Come funziona
Vantaggi
Migliora le prestazioni fino a 25 volte
Amazon SageMaker Neo ottimizza automaticamente i modelli di machine learning con prestazioni fino a 25 volte superiori in termini di velocità e senza perdita di accuratezza. SageMaker Neo utilizza la toolchain più adatta per il tuo modello e la tua piattaforma hardware di destinazione fornendo una API standard semplice per la compilazione del modello.
Dimensioni di runtime ridotte di un decimo
Amazon SageMaker Neo utilizza un decimo delle dimensioni di un framework di deep learning come TensorFlow o PyTorch. Anziché installare il framework nel tuo hardware di destinazione, carichi la libreria compatta eseguibile di Neo nella tua applicazione di ML. lnoltre a differenza di un framework compatto come TensorFlow-Lite, il runtime di Neo può eseguire un modello addestrato in uno qualsiasi dei framework supportati dal compilatore di Neo.
Tempi di produzione più rapidi
Con soli pochi clic nella sua console, Amazon SageMaker Neo facilita la preparazione del tuo modello per la distribuzione praticamente su qualsiasi piattaforma hardware. Avrai tutti i vantaggi della calibrazione manuale senza alcuno sforzo.
Caratteristiche principali
Ottimizza l’inferenza senza compromettere l’accuratezza
Al fine di ottimizzare il tuo modello per l’hardware di destinazione, Amazon SageMaker Neo utilizza tecniche basate sulla ricerca nei compilatori di machine learning. Applicando automaticamente queste tecniche di ottimizzazione sistematica, SageMaker Neo velocizza i tuoi modelli senza perdita di accuratezza.
Supporta i principali framework di machine learning
Amazon SageMaker Neo converte un modello dal formato specifico del framework di DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX o XGBoost in una rappresentazione comune, ottimizza i calcoli e genera un eseguibile specifico per l’hardware per l’istanza di hosting di SageMaker o il dispositivo edge di destinazione.
Fornisce un runtime ridotto con API standard
Il runtime di Amazon SageMaker Neo occupa 1 MB di storage e 2 MB di memoria, molto meno dello spazio di storage e di memoria di un framework, e fornisce una normale e semplice API per eseguire un modello compilato che ha origine in qualsiasi framework.
Supporta le principali piattaforme di destinazione
Il runtime di Amazon SageMaker Neo è supportato dai sistemi operativi Android, Linux e Windows e dai processori Ambarella, ARM, Intel, Nvidia, NXP, Qualcomm e Texas Instruments. SageMaker Neo converte inoltre i modelli PyTorch e TensorFlow nel formato Core ML per l'implementazione in macOS, iOS, iPadOS, watchOS e tvOS nei dispositivi Apple.
Container ottimizzati per l’esecuzione di inferenze per istanze di hosting di Amazon SageMaker
Per eseguire un’inferenza nel cloud, Amazon SageMaker Neo fornisce container ottimizzati, tra i quali MXNet, PyTorch e TensorFlow, integrati nel suo runtime. In precedenza, SageMaker Neo non sarebbe riuscito a compilare i modelli che utilizzavano operatori non supportati. Ora SageMaker Neo ottimizza ogni modello nella misura in cui il compilatore supporta gli operatori nel modello e usa il framework per eseguire il resto del modello non compilato. Di conseguenza, nei container ottimizzati per l’esecuzione di inferenze puoi eseguire qualunque modello MXNet, PyTorch o TensorFlow e ottenere migliori prestazioni per i modelli che è possibile compilare.
Partizionamento dei modelli per hardware eterogeneo
Amazon SageMaker Neo sfrutta le librerie di acceleratori fornite dai partner per offrire le migliori prestazioni disponibili per un modello di deep learning su piattaforme hardware eterogenee con un acceleratore hardware e una CPU. Le librerie di accelerazione come Ambarella CV Tools, Nvidia Tensor RT e Texas Instruments TIDL supportano ciascuna una serie specifica di funzioni e operatori. SageMaker Neo automaticamente suddivide il tuo modello in modo che la parte con gli operatori supportata dall’acceleratore può essere eseguita sull’acceleratore mentre il resto del modello viene eseguito sulla CPU. In tal modo SageMaker Neo utilizza in gran parte l’acceleratore hardware, incrementando i tipi di modelli che è possibile eseguire sull’hardware e migliorando le prestazioni del modello nella misura in cui i suoi operatori sono supportati dall’acceleratore.
Supporto per le istanze INF1 di Amazon SageMaker
Amazon SageMaker Neo ora compila modelli per i target per istanze INF1 di Amazon SageMaker. L’hosting di SageMaker fornisce un servizio di gestione delle inferenze sulle istanze INF1, basate sul chip AWS Inferentia. SageMaker Neo fornisce la compilazione del modello standard API utilizzando dietro le quinte il compilatore Neuron specifico per il processore Inferentia, semplificando il compito di preparare un modello per la distribuzione nell’istanza INF1 di SageMaker e offrendo le migliori prestazioni disponibili e un risparmio sui costi dell’istanza INF1.
Blog
Harvesting success using Amazon SageMaker to power Bayer’s digital farming unit
Marisa Messina | 05 AGO 2019
Amazon SageMaker Neo Enables Pioneer’s Machine Learning in Cars
Satadal Bhattacharjee | 11 GIU 2019
Amazon SageMaker Neo Helps Detect Objects and Classify Images on Edge Devices
Satadal Bhattacharjee | 12 GIU 2019
AWS launches open source Neo-AI project to accelerate ML deployments on edge devices
Sukwon Kim and Vin Sharma | 23 gennaio 2019