Distribuzione con Amazon SageMaker

Amazon SageMaker semplifica la generazione di previsioni fornendo tutto il necessario per distribuire modelli di machine learning in produzione e monitorarne la qualità.

Funzionalità

Monitoraggio del modello

I modelli di machine learning sono in genere addestrati e valutati utilizzando dati storici, ma la loro qualità peggiora dopo essere stati distribuiti in produzione. Questo perché la distribuzione dei dati inviati ai modelli per le previsioni può variare dalla distribuzione dei dati utilizzati durante l'addestramento. La validità dei risultati della previsione può cambiare nel tempo e possono essere introdotti a monte errori che possono influire sulla qualità del modello. Per evitare ciò, è necessario monitorare la qualità dei modelli in produzione, identificare rapidamente i problemi e intraprendere azioni correttive come la valutazione o il riaddestramento dei modelli. Per raggiungere questo obiettivo è necessario creare strumenti per archiviare i dati relativi alle previsioni in modo sicuro, e in seguito implementare varie tecniche statistiche per analizzare questi dati e valutare la qualità del modello. Infine, è necessario rilevare deviazioni nella qualità del modello per intraprendere le giuste azioni correttive. In alternativa alla creazione di strumenti aggiuntivi, può essere eseguito con una frequenza regolare il riaddestramento dei modelli, ma ciò può essere costoso.

Amazon SageMaker Model Monitor elimina la necessità di creare strumenti per monitorare i modelli in produzione e rilevare quando è necessario intraprendere azioni correttive. SageMaker Model Monitor monitora costantemente la qualità dei modelli di machine learning in produzione e avvisa l'utente in caso di variazioni nella qualità del modello.

SageMaker Model Monitor analizza i dati raccolti con una frequenza regolare in base alle regole integrate o alle regole personalizzate fornite dall'utente per determinare se vi sono violazioni di tali regole. Le regole integrate possono essere utilizzate per analizzare i dati tabulari e rilevare problemi comuni come valori anomali nei dati di previsione, deriva nelle distribuzioni di dati rispetto ai dataset di addestramento e modifiche dell'accuratezza delle previsioni basate su osservazioni dal mondo reale. SageMaker Model Monitor può essere utilizzato in SageMaker Studio e le metriche possono essere inviate ad Amazon CloudWatch in modo da poter impostare allarmi per il controllo e il riaddestramento dei modelli. È possibile visualizzare gli avvisi per comprendere quali dati stanno causando la deriva in modo da poter adattare di conseguenza i dati di addestramento. Le richieste e le risposte di previsione vengono archiviate in modo sicuro per tutti i modelli distribuiti in SageMaker senza richiedere modifiche al codice.

Monitoraggio modelli

Distribuzione con un clic

Con Amazon SageMaker basta un clic per distribuire in produzione il modello formato, così è possibile iniziare a generare previsioni su dati in tempo reale o in batch. Il modello può essere distribuito con un solo clic su istanze di Amazon ML con dimensionamento automatico in diverse zone di disponibilità per ottenere ridondanza elevata. È sufficiente specificare il tipo e il numero massimo e minimo di istanze: SageMaker di occuperà del resto. SageMaker avvierà le istanze, distribuirà il modello e configurerà l'endpoint HTTPS protetto per l'applicazione. L'applicazione dovrà semplicemente includere una chiamata API all'endpoint per ottenere inferenze a bassa latenza e throughput elevato. Questa architettura permette di integrare nuovi modelli nell'applicazione in pochi minuti, perché non sarà più necessario intervenire sul codice dell'applicazione per modificare il modello.

Trasformazione in batch

Fino ad ora per elaborare batch di dati per l'inferenza non in tempo reale era necessario ridimensionare grandi dataset in porzioni più piccole e gestire endpoint in tempo reale. Questo può essere costoso e soggetto a errori. Con la funzione Batch Transform di Amazon SageMaker, non è necessario suddividere il dataset in più blocchi o gestire endpoint in tempo reale. La trasformazione in batch permette di eseguire analisi predittive su batch di dati di piccole e grandi dimensioni. È possibile richiedere analisi predittive con una semplice API per un numero elevato di record di dati, eseguendone la trasformazione in modo rapido e semplice. Per eseguire analisi esplorative, i dati possono avere dimensioni che vanno dai pochi byte ai petabyte o qualsiasi altro valore in questo intervallo.

Addestra una volta, distribuisci ovunque

Per ottenere prestazioni di inferenza elevate su una vasta gamma di dispositivi edge, in genere è necessario dedicare settimane o mesi all'ottimizzazione manuale di un modello per ciascun dispositivo di destinazione poiché ogni configurazione hardware presenta un insieme unico di funzionalità e restrizioni. Con Amazon SageMaker Neo puoi addestrare modelli di apprendimento automatico ed eseguirli ovunque nel cloud e sull'edge.

SageMaker Neo utilizza il machine learning per ottimizzare automaticamente un modello addestrato per funzionare fino a due volte più velocemente e consuma meno di un decimo del footprint di memoria, senza perdita di precisione per l'ambiente di distribuzione di destinazione. Inizia con un modello di machine learning creato con MXNet, TensorFlow, PyTorch o XGBoost e addestrato con Amazon SageMaker. Quindi scegli la piattaforma hardware di destinazione su cui desideri distribuire il modello. Con un solo clic, SageMaker Neo compilerà il modello addestrato in un file eseguibile. Il compilatore usa una rete neurale per scoprire e applicare tutte le ottimizzazioni specifiche di prestazioni che permetteranno di eseguire il tuo modello più efficientemente sulla piattaforma hardware di destinazione. Il modello può quindi essere distribuito per iniziare a effettuare stime nel cloud o nell'edge. Le funzionalità di elaborazione locale e di predizione ML possono essere trasportate nell'edge con AWS IoT Greengrass.

Per facilitare le distribuzioni edge, AWS Greengrass supporta i modelli ottimizzati con Neo, consentendoti di distribuire i tuoi modelli direttamente sull'edge con aggiornamenti over-the-air. Neo è inoltre disponibile come codice open source tramite il progetto Neo-IA con la licenza software Apache, permettendo agli sviluppatori di personalizzare il software per diversi dispositivi e applicazioni.

2X

PRESTAZIONI

1/10

DIMENSIONI DEL FRAMEWORK ORIGINALE

Integrazione con Kubernetes

Kubernetes è un sistema open source utilizzato per l'automatizzazione di distribuzione, il ridimensionamento e la gestione di applicazioni nei container. Molti clienti vogliono utilizzare le funzionalità completamente gestite di Amazon SageMaker per il machine learning, ma vogliono anche che i team della piattaforma e dell'infrastruttura continuino a utilizzare Kubernetes per l'orchestrazione e la gestione di pipeline. SageMaker risponde a questo requisito consentendo agli utenti di Kubernetes di addestrare e distribuire modelli in SageMaker utilizzando le operazioni e le pipeline di SageMaker-Kubeflow. Con operatori e pipeline, gli utenti di Kubernetes possono accedere agli strumenti e ai programmi completamente gestiti di SageMaker ML, nativamente da Kubeflow. Ciò elimina la necessità di gestire e ottimizzare manualmente l'infrastruttura ML in Kubernetes, pur mantenendo il controllo dell'orchestrazione generale attraverso Kubernetes. Utilizzando gli operatori e le pipeline di SageMaker per Kubernetes, è possibile ottenere i vantaggi di un servizio completamente gestito per il machine learning in Kubernetes, senza spostare i carichi di lavoro.

Elaborazione dei dati oltre l'addestramento

I carichi di lavoro ML nella vita reale in genere richiedono più oltre all'addestramento e alle previsioni. I dati devono essere pre-elaborati e post-elaborati, a volte in più passaggi. Potrebbe essere necessario addestrare e distribuire utilizzando una sequenza di algoritmi che devono collaborare per fornire previsioni da dati non elaborati. Amazon SageMaker consente di distribuire le pipeline di inferenza per poter inviare dati di input non elaborati ed eseguire la pre-elaborazione, le previsioni e la post-elaborazione su richieste di inferenza in batch e in tempo reale. Le pipeline di inferenza possono essere formate da qualsiasi framework di machine learning, algoritmi integrati o container personalizzati utilizzabili in Amazon SageMaker. È possibile creare pipeline di elaborazione dati e di creazione di feature con una serie di trasformatori di featuredisponibili nei container dei framework SparkML e Scikit-learn in Amazon SageMaker e distribuirle come parte delle pipeline di inferenza per riutilizzare il codice di elaborazione dati e per una gestione semplificata dei processi di machine learning.

Endpoint multi-modello

Sempre più aziende stanno addestrando modelli di machine learning basati sui dati dei singoli utenti. Per esempio, un servizio di streaming musicale addestrerà modelli personalizzati basati sulla cronologia musicale di ciascun ascoltatore per personalizzare i consigli musicali o un servizio di taxi addestrerà modelli personalizzati basati sui modelli di traffico di ciascuna città per prevedere i tempi di attesa degli automobilisti. La creazione di modelli ML personalizzati per ciascun caso d'uso comporta una maggiore precisione di inferenza, ma i costi di distribuzione e gestione dei modelli aumentano in modo significativo. Queste sfide diventano più pronunciate quando non tutti i modelli sono accessibili alla stessa velocità ma devono essere sempre disponibili.

Gli endpoint multi-modello di Amazon SageMaker offrono un modo scalabile ed economico per distribuire un gran numero di modelli personalizzati di machine learning. Gli endpoint multi-modello SageMaker consentono di distribuire più modelli con un solo clic su un singolo endpoint e di renderli disponibili utilizzando un unico container di servizio. È sufficiente specificare il tipo e il numero massimo e minimo di istanze: SageMaker si occuperà del resto. SageMaker avvierà le istanze, distribuirà il modello e configurerà l'endpoint HTTPS protetto per l'applicazione. L'applicazione dovrà semplicemente includere una chiamata API all'endpoint per ottenere inferenze a bassa latenza e throughput elevato.

Sposta i tuoi modelli di machine learning dalla sperimentazione alla produzione

Scopri come distribuire i modelli ML in produzione usando SageMaker

Sviluppo di modelli addestrati con Keras o TensorFlow utilizzando Amazon SageMaker

Scopri come distribuire modelli addestrati con Keras o TensorFlow utilizzando Amazon SageMaker

Crea modelli di ML personalizzati con Amazon SageMaker

Segui questi esempi su GitHub e automatizza la costruzione, l'addestramento e la distribuzione di modelli ML personalizzati.