Ottimizzazione delle prestazioni dei modelli con SageMaker Neo - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottimizzazione delle prestazioni dei modelli con SageMaker Neo

Neo è una funzionalità di Amazon SageMaker AI che consente di effettuare l’addestramento di modelli di machine learning una sola volta e di eseguirli ovunque nel cloud e nell’edge.

Se utilizzi SageMaker Neo per la prima volta, ti consigliamo di consultare la sezione Nozioni di base sui dispositivi Edge per ottenere istruzioni dettagliate su come compilare e implementare su un dispositivo edge.

Cos'è SageMaker Neo?

In genere, è difficile ottimizzare i modelli di machine learning per inferenza su più piattaforme perché occorre calibrare manualmente i modelli per la configurazione hardware e software specifica di ciascuna piattaforma. Per ottenere prestazioni ottimali per un determinato carico di lavoro, è necessario conoscere, tra gli altri, l'architettura hardware, il set di istruzioni, i modelli di accesso alla memoria e le forme dei dati di input. Per lo sviluppo software tradizionale, strumenti quali compilatori e profiler semplificano il processo. Per il machine learning, la maggior parte degli strumenti sono specifici per il framework o l'hardware. Ciò costringe l'utente a un processo basato su tentativi ed errori manuale che è inaffidabile e non produttivo.

Neo ottimizza automaticamente i modelli Gluon, Keras, MXNet, PyTorch, TensorFlow, Tensorflow-Lite e ONNX per l'inferenza su macchine Android, Linux e Windows basate su processori Ambarella, ARM, Intel, Nvidia, NXP, Qualcomm, Texas Instruments e Xilinx. Neo è testato con modelli di visione artificiale disponibili nei modelli zoo attraverso i framework. SageMaker Neo supporta la compilazione e l'implementazione per due piattaforme principali: istanze cloud (inclusa Inferentia) e dispositivi edge.

Per ulteriori informazioni sui framework supportati e sui tipi di istanze cloud su cui è possibile eseguire la distribuzione, consulta Tipi di istanze e framework supportati per le istanze cloud.

Per ulteriori informazioni sui framework supportati, sui dispositivi edge, sui sistemi operativi, sulle architetture di chip e sui modelli di machine learning comuni testati da SageMaker AI Neo per i dispositivi edge, consulta Framework, dispositivi, sistemi e architetture supportati per i dispositivi edge.

Come funziona

Neo è costituito da un compilatore e un runtime. Innanzitutto, l'API di compilazione Neo legge modelli esportati da vari framework. Converte le funzioni e le operazioni specifiche del framework in una rappresentazione intermedia indipendente dal framework. Inoltre, esegue una serie di ottimizzazioni. Quindi genera codice binario per le operazioni ottimizzate, le scrive in una libreria di oggetti condivisi e salva la definizione del modello e i parametri in file separati. Neo fornisce, inoltre, un runtime per ogni piattaforma di destinazione che carica ed esegue il modello compilato.

Funzionamento di Neo in SageMaker AI.

Puoi creare un processo di compilazione Neo dalla console SageMaker AI, dall’AWS Command Line Interface (AWS CLI), da un notebook Python o dall’SDK SageMaker AI. Per informazioni su come compilare un modello, consulta Compilazione di modelli con Neo. Con pochi comandi dell'interfaccia a riga di comando, una chiamata API o pochi clic puoi convertire un modello per la piattaforma scelta. Puoi implementare rapidamente il modello in un endpoint SageMaker AI o un dispositivo AWS IoT Greengrass.

Neo può ottimizzare i modelli con parametri in FP32 o quantizzati a INT8 o con larghezza FP a 16 bit.