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 dell’inferenza per i modelli Amazon SageMaker AI
Con Amazon SageMaker AI, puoi migliorare le prestazioni dei tuoi modelli di IA generativa applicando tecniche di ottimizzazione dell’inferenza. Ottimizzare i modelli consente di ottenere un miglior rapporto costo-prestazioni per il tuo caso d’uso. Quando ottimizzi un modello, scegli quale delle tecniche di ottimizzazione supportate applicare, tra cui la quantizzazione, la decodifica speculativa e la compilazione. Dopo aver ottimizzato il modello, puoi eseguire una valutazione per visualizzare le metriche prestazionali relative a latenza, throughput e prezzo.
Per molti modelli, SageMaker AI fornisce anche varie versioni preottimizzate, ognuna delle quali soddisfa le diverse esigenze delle applicazioni in termini di latenza e throughput. Per tali modelli, è possibile implementare una delle versioni ottimizzate senza dover prima ottimizzare il modello autonomamente.
Tecniche di ottimizzazione
Amazon SageMaker AI supporta le tecniche di ottimizzazione indicate di seguito.
Compilazione
La compilazione ottimizza il modello per ottenere le migliori prestazioni disponibili sul tipo di hardware scelto senza compromettere la precisione. È possibile applicare la compilazione di modelli per ottimizzare gli LLM per hardware accelerato, come le istanze GPU, le istanze AWS Trainium o le istanze AWS Inferentia.
Quando ottimizzi un modello con la compilazione, usufruisci dei vantaggi offerti da una compilazione anticipata. I tempi di implementazione del modello e la latenza del dimensionamento automatico si riducono, perché i pesi del modello non richiedono la compilazione just-in-time quando il modello viene implementato su una nuova istanza.
Se scegli di compilare il modello per un’istanza GPU, SageMaker AI esegue la compilazione utilizzando la libreria TensorRT-LLM. Se scegli di compilare il modello per un’istanza AWS Trainium o AWS Inferentia, SageMaker AI esegue la compilazione utilizzando AWS Neuron SDK.
Quantizzazione
La quantizzazione è una tecnica che consente di ridurre i requisiti hardware di un modello utilizzando un tipo di dati meno preciso per i pesi e le attivazioni. Dopo aver ottimizzato un modello con la quantizzazione, è possibile ospitarlo su GPU meno costose e più disponibili. Tuttavia, il modello quantizzato potrebbe essere meno preciso del modello di origine ottimizzato.
I formati di dati supportati da SageMaker AI per la quantizzazione variano da modello a modello. I formati supportati sono i seguenti:
-
INT4-AWQ: formato di dati a 4 bit. La quantizzazione del peso sensibile all’attivazione (AWQ) è una tecnica di quantizzazione per LLM efficiente, accurata, a basso numero di bit e basata solo sul peso.
-
FP8: Floating Point a 8 bit (FP8) è un formato a bassa precisione per numeri in virgola mobile. Bilancia l’efficienza della memoria e la precisione del modello rappresentando valori con un minor numero di bit rispetto al formato a virgola mobile FP16 standard.
-
INT8-SmoothQuant: formato di dati a 8 bit. SmoothQuant è un metodo di quantizzazione a precisione mista che scala congiuntamente le attivazioni e i pesi, bilanciando i rispettivi intervalli dinamici.
Decodifica speculativa
La decodifica speculativa è una tecnica che consente di accelerare il processo di decodifica di LLM di grandi dimensioni. Ottimizza i modelli per la latenza senza compromettere la qualità del testo generato.
Questa tecnica utilizza un modello più piccolo ma più veloce, chiamato modello di bozza. Il modello di bozza genera token candidati, che vengono poi convalidati dal modello di destinazione, più grande ma più lento. A ogni iterazione, il modello di bozza genera più token candidati. Il modello di destinazione verifica i token e, se rileva che un determinato token non è accettabile, lo rifiuta e lo rigenera. Quindi, il modello di destinazione verifica i token e ne genera una piccola quantità.
Il modello di bozza è notevolmente più veloce del modello di destinazione. Genera rapidamente tutti i token e quindi li invia in batch al modello di destinazione per la verifica. Il modello di destinazione li valuta tutti in parallelo, accelerando così la risposta finale.
SageMaker AI offre una bozza di modello predefinita che puoi utilizzare, in modo da non dover crearne uno tuo. Se preferisci utilizzare il tuo modello di bozza personalizzato, SageMaker AI supporta anche questa opzione.
Caricamento rapido dei modelli
La tecnica di caricamento rapido dei modelli prepara un LLM in modo che SageMaker AI possa caricarlo su un’istanza ML più rapidamente.
Per preparare il modello, SageMaker AI ne esegue lo sharding in anticipo, dividendolo in parti che possono risiedere ciascuna su una GPU separata per l’inferenza distribuita. Inoltre, SageMaker AI memorizza i pesi del modello in blocchi di dimensioni uguali che può caricare contemporaneamente sull’istanza.
Quando SageMaker AI carica sull’istanza il modello ottimizzato, ne trasmette i pesi direttamente da Amazon S3 alle GPU dell’istanza. Nella trasmissione dei pesi in streaming, SageMaker AI omette diverse fasi dispendiose in termini di tempo che di norma sono necessarie. Queste fasi includono il download su disco degli artefatti del modello da Amazon S3, il caricamento degli artefatti del modello nella memoria host e lo sharding del modello sull’host prima di caricare definitivamente gli shard sulle GPU.
Dopo aver ottimizzato il modello per un caricamento più rapido, puoi accelerarne l’implementazione su un endpoint di SageMaker AI. Inoltre, se configuri l’endpoint per utilizzare il dimensionamento automatico, questo aumenta orizzontalmente in modo più rapido per adattarsi all’aumento del traffico.