Con rapidi progressi nei campi dell’apprendimento automatico (ML) e dell’intelligenza artificiale (AI), è importante distribuire in modo efficiente il modello AI/ML negli ambienti di produzione.
Questo publish sul weblog discute una pipeline ML end-to-end AWS Sagemaker Ciò sfrutta il calcolo senza server, l’elaborazione dei dati basati su eventi e le integrazioni API esterne. L’architettura a valle garantisce scalabilità, efficienza dei costi e tempo in tempo reale Accesso alle applicazioni.
In questo weblog, attraverseremo l’architettura, spiegheremo le decisioni di progettazione ed esamineremo i servizi AWS chiave utilizzati per costruire questo sistema.
Panoramica dell’architettura
La pipeline ML basata su AWS è costituita da più componenti che comunicano tra loro per eseguire l’esecuzione del modello, l’archiviazione dei dati, l’elaborazione e l’esposizione API. Il flusso di lavoro embody:
- Ml Mannequin Execution in AWS Sagemaker
- Archiviazione di dati in AWS S3, DynamoDB e Snowflake
- Elaborazione basata su eventi che utilizza AWS Lambda e AWS Coule
- Integrazione API in tempo reale con AWS Lambda e bilanciamento del carico dell’applicazione
- Instradamento del traffico verso le applicazioni tramite AWS Route 53
Passaggio 1: in esecuzione del modello ML su AWS Sagemaker
Il componente principale del sistema è il modello ML che funziona periodicamente su AWS Sagemaker per generare previsioni. Questo è anche chiamato elaborazione batch.
La pipeline SageMaker:
- Utilizza dati preelaborati e risultati delle esecuzioni precedenti.
- Applica gli algoritmi ML per l’inferenza.
- Scrive l’output in entrambi i formati JSON e Delta in un secchio S3.
Perché salvare i dati nei formati JSON e Delta?
- JSON è leggero e può essere facilmente consumato da AWS DynamoDB per interrogazioni in tempo reale.
- Il formato Delta consente un caricamento efficiente dei dati nel fiocco di neve per analisi e reporting.
Passaggio 2: elaborazione e archiviazione dei dati basati su eventi
Una volta che SageMaker scrive l’output su un secchio S3, un set off basato su eventi eseguirà automaticamente i passaggi successivi.
- La notifica dell’evento S3 invoca una funzione AWS Lambda, non appena viene creato il nuovo file “Finished” nella posizione S3 corrispondente, in cui è stato configurato il set off.
- La funzione Lambda invoca il lavoro di colla AWS che:
- Elabora e carica i dati JSON dalla posizione S3 in DynamoDB.
- Copie Delta Knowledge a Snowflake.
Perché utilizzare la colla AWS per l’ingestione dei dati?
- AWS Lambda ha un timeout massimo di 15 minuti.
- L’elaborazione e il caricamento di enormi quantità di dati potrebbero richiedere più di 15 minuti.
- Le trasformazioni di colla ETL assicurano che venga garantita l’ingestione di dati strutturati e puliti.
Passaggio 3: elaborazione API e accesso in tempo reale
Ora, i dati archiviati in DynamoDB È necessario accedere a applicazioni esterne. È fatto usando le API. Possiamo utilizzare una funzione AWS Lambda per ospitare il codice API.
- La funzione API Lambda viene invocata quando l’applicazione fa una richiesta.
- La funzione API Lambda:
- Question DynamoDB con i risultati del modello ML più recenti.
- Si integra con le API in tempo reale (servizi di terze parti) per migliorare i risultati.
- Elabora tutte queste informazioni e genera una risposta API.
Passaggio 4: esposizione API utilizzando il bilanciamento del carico dell’applicazione (ALB)
Per gestire il traffico API, la funzione Lambda è collegata a un Bilanciatore del carico dell’applicazione AWS (CAMICE).
Perché utilizzare un bilanciamento del carico dell’applicazione?
- Alb rotta il traffico verso la funzione Lambda pertinente.
- Autoscale in base al numero di richieste API, garantendo un’elevata disponibilità.
- Distribuisce il traffico in modo efficiente attraverso più istanze Lambda.
- Proteggere gli endpoint API eseguendo l’autenticazione e richiedere il filtro.
Passaggio 5: chiamate API di routing utilizzando la Route 53
Integriamo AWS Route 53 con ALB per ottenere un endpoint API coerente.
- La rotta 53 gestisce la risoluzione del nome di dominio, assicurandosi che le applicazioni possano facilmente connettersi all’API.
- Supporta inoltre la mappatura del dominio personalizzato, consentendo advert altri crew di utilizzare un URL API intuitivo anziché accedere direttamente agli endpoint ALB.
- Se l’API Lambda viene distribuita in più regioni, la Route 53 può essere configurata per instradare il traffico in modo efficiente, garantendo l’affidabilità e il failover anche durante i periodi advert alto traffico.
Caratteristiche più critiche di questa architettura
- Scalabilità – Servizi AWS come SageMaker, Lambda, colla e DynamoDB Implegano dinamicamente
- Ottimizzazione dei costi -L’uso di DynamoDB su richiesta, Lambda senza server e elaborazione basata su eventi garantisce un efficiente utilizzo delle risorse
- Elaborazione in tempo reale -Fornisce accesso in tempo reale all’output ML con API a bassa latenza
- Integrazione senza soluzione di continuità -Supporta l’integrazione con altre API in tempo reale, migliorando così i risultati
- Collaborazione a crew incrociata – L’esportazione di dati in Snowflake aiuta le aziende e altri crew a eseguire analisi contro le previsioni ML
Miglioramenti e considerazioni futuri
- Elaborazione in streaming -Sostituzione dei flussi batch con kafka o kinesis per l’elaborazione dei dati in tempo reale.
- Riqualificazione del modello automatizzato – Utilizzare pipeline SageMaker per la riqualificazione del modello automatizzato.
Conclusione
Questa architettura ML basata su AWS fornisce una pipeline scalabile, automatizzata ed efficiente per l’esecuzione di modelli ML, generare previsioni e servire risposte API in tempo reale. Utilizzando servizi AWS come SageMaker, Lambda, colla, DynamoDB, ALB e Route 53, il sistema garantisce l’efficienza dei costi, le prestazioni elevate e la disponibilità di dati in tempo reale per le applicazioni a valle.
Mi piacerebbe sentire i tuoi pensieri!