In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker

Questo post è stato co-scritto da Christopher Diaz, Sam Kinard, Jaime Hidalgo e Daniel Suarez di CCC Intelligent Solutions.

In questo post, discutiamo come Soluzioni intelligenti CCC (CCC) combinato Amazon Sage Maker con altri servizi AWS per creare una soluzione personalizzata in grado di ospitare i tipi di modelli complessi di intelligenza artificiale (AI) previsti. CCC è una piattaforma software-as-a-service (SaaS) leader per l'economia multimiliardaria delle assicurazioni contro danni e danni che alimenta operazioni per assicuratori, riparatori, case automobilistiche, fornitori di componenti, istituti di credito e altro ancora. La tecnologia cloud CCC collega più di 30,000 aziende digitalizzando flussi di lavoro, commercio ed esperienze cliente mission-critical. Leader affidabile in AI, Internet of Things (IoT), esperienza del cliente e gestione della rete e del flusso di lavoro, CCC offre innovazioni che fanno progredire la vita delle persone quando conta di più.

La sfida

CCC elabora annualmente più di 1 trilione di dollari di transazioni di sinistri. Poiché l'azienda continua a evolversi per integrare l'intelligenza artificiale nel suo catalogo di prodotti esistenti e nuovi, ciò richiede approcci sofisticati per addestrare e implementare modelli di ensemble di machine learning (ML) multimodali per risolvere complesse esigenze aziendali. Si tratta di una classe di modelli che incapsulano algoritmi proprietari e competenze nel dominio della materia che CCC ha affinato nel corso degli anni. Questi modelli dovrebbero essere in grado di acquisire nuovi livelli di dati sfumati e regole dei clienti per creare singoli risultati di previsione. In questo post del blog, impareremo come CCC ha sfruttato l'hosting di Amazon SageMaker e altri servizi AWS per distribuire o ospitare più modelli multimodali in una pipeline di inferenza di insieme.

Come mostrato nel diagramma seguente, un ensemble è una raccolta di due o più modelli orchestrati per essere eseguiti in modo lineare o non lineare per produrre una singola previsione. Se impilati in modo lineare, i singoli modelli di un insieme possono essere richiamati direttamente per le previsioni e successivamente consolidati per l'unificazione. A volte, i modelli di ensemble possono anche essere implementati come pipeline di inferenza seriale.

Per il nostro caso d'uso, la pipeline dell'ensemble è rigorosamente non lineare, come illustrato nel diagramma seguente. Le pipeline di ensemble non lineari sono teoricamente direttamente grafici aciclici (DAG). Per il nostro caso d'uso, questa pipeline DAG aveva sia modelli indipendenti che vengono eseguiti in parallelo (Servizi B, C) sia altri modelli che usano le previsioni dei passaggi precedenti (Servizio D).

Una pratica che deriva dalla cultura orientata alla ricerca di CCC è la revisione continua delle tecnologie che possono essere sfruttate per portare più valore ai clienti. Mentre CCC affrontava questa sfida d'insieme, la dirigenza ha lanciato un'iniziativa di proof-of-concept (POC) per valutare a fondo le offerte di AWS per scoprire, in particolare, se Amazon SageMaker e altri strumenti AWS potessero gestire l'hosting di singoli modelli di intelligenza artificiale in ambienti complessi e non lineari ensemble.

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

L'insieme ha spiegato: In questo contesto, un insieme è un gruppo di 2 o più modelli di intelligenza artificiale che lavorano insieme per produrre 1 previsione complessiva.

Domande che guidano la ricerca

Amazon SageMaker può essere utilizzato per ospitare insiemi complessi di modelli di intelligenza artificiale che lavorano insieme per fornire una previsione complessiva? In tal caso, SageMaker può offrire altri vantaggi pronti all'uso, come maggiore automazione, affidabilità, monitoraggio, scalabilità automatica e misure di riduzione dei costi?

Trovare modi alternativi per implementare i modelli di intelligenza artificiale di CCC utilizzando i progressi tecnologici dei fornitori di servizi cloud consentirà a CCC di portare le soluzioni di intelligenza artificiale sul mercato più velocemente della concorrenza. Inoltre, avere più di un'architettura di distribuzione offre flessibilità quando si trova l'equilibrio tra costi e prestazioni in base alle priorità aziendali.

Sulla base dei nostri requisiti, abbiamo finalizzato il seguente elenco di funzionalità come elenco di controllo per un'architettura di distribuzione di livello di produzione:

  • Supporto per ensemble complessi
  • Tempo di attività garantito per tutti i componenti
  • Ridimensionamento automatico personalizzabile per i modelli IA distribuiti
  • Conservazione dell'input e dell'output del modello AI
  • Metriche di utilizzo e registri per tutti i componenti
  • Meccanismi di risparmio

Con la maggior parte delle soluzioni AI di CCC che si basano su modelli di visione artificiale, era necessaria una nuova architettura per supportare file di immagini e video che continuano ad aumentare in risoluzione. C'era una forte necessità di progettare e implementare questa architettura come modello asincrono.

Dopo cicli di ricerca e sforzi iniziali di benchmarking, CCC ha stabilito che SageMaker era la soluzione perfetta per soddisfare la maggior parte dei loro requisiti di produzione, in particolare il tempo di attività garantito che SageMaker fornisce per la maggior parte dei suoi componenti di inferenza. La funzionalità predefinita degli endpoint di inferenza asincrona di Amazon SageMaker che salva input/output in Amazon S3 semplifica l'attività di conservazione dei dati generati da insiemi complessi. Inoltre, con ogni modello di intelligenza artificiale ospitato dal proprio endpoint, la gestione delle policy di ridimensionamento automatico a livello di modello o endpoint diventa più semplice. Semplificando la gestione, un potenziale vantaggio in termini di risparmio sui costi è che i team di sviluppo possono dedicare più tempo all'ottimizzazione delle politiche di ridimensionamento per ridurre al minimo l'overprovisioning delle risorse di elaborazione.

Avendo deciso di procedere con l'utilizzo di SageMaker come componente cardine dell'architettura, ci siamo anche resi conto che SageMaker può far parte di un'architettura ancora più ampia, integrata con molti altri servizi serverless gestiti da AWS. Questa scelta era necessaria per facilitare le esigenze di orchestrazione e osservabilità di ordine superiore di questa complessa architettura.

In primo luogo, per rimuovere i limiti delle dimensioni del payload e ridurre notevolmente il rischio di timeout durante gli scenari di traffico elevato, CCC ha implementato un'architettura che esegue le previsioni in modo asincrono utilizzando Endpoint di inferenza asincrona SageMaker insieme ad altri servizi gestiti da AWS come elementi costitutivi di base. Inoltre, l'interfaccia utente del sistema segue il modello di progettazione "spara e dimentica". In altre parole, una volta che un utente ha caricato il proprio input nel sistema, non è necessario fare altro. Riceveranno una notifica quando la previsione sarà disponibile. La figura seguente illustra una panoramica di alto livello della nostra architettura asincrona basata su eventi. Nella prossima sezione, esaminiamo a fondo il flusso di esecuzione dell'architettura progettata.

Soluzione passo passo

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Passo 1

Un cliente fa una richiesta al Gateway API AWS punto finale. Il contenuto della richiesta contiene il nome del servizio AI da cui hanno bisogno di una previsione e il metodo di notifica desiderato.

Questa richiesta è passata a a Lambda funzione chiamata Nuova previsione, i cui compiti principali sono:

  • Verifica se il servizio richiesto dal cliente è disponibile.
  • Assegna un ID previsione univoco alla richiesta. Questo ID previsione può essere utilizzato dall'utente per verificare lo stato della previsione durante l'intero processo.
  • Genera un file Amazon S3 URL prefirmato che l'utente dovrà utilizzare nel passaggio successivo per caricare il contenuto di input della richiesta di previsione.
  • Crea una voce in Amazon DynamoDB con le informazioni della richiesta ricevuta.

La funzione Lambda restituirà quindi una risposta tramite l'endpoint API Gateway con un messaggio che include l'ID previsione assegnato alla richiesta e l'URL prefirmato di Amazon S3.

Passo 2

Il client carica in modo sicuro il contenuto dell'input di previsione in un bucket S3 utilizzando l'URL prefirmato generato nel passaggio precedente. Il contenuto di input dipende dal servizio AI e può essere composto da immagini, dati tabulari o una combinazione di entrambi.

Passo 3

Il bucket S3 è configurato per attivare un evento quando l'utente carica il contenuto di input. Questa notifica viene inviata a una coda Amazon SQS e gestita da una funzione Lambda chiamata Input di processo. Input di processo Lambda otterrà le informazioni relative a tale ID previsione da DynamoDB per ottenere il nome del servizio a cui deve essere effettuata la richiesta.

Questo servizio può essere un singolo modello AI, nel qual caso il Input di processo Lambda invierà una richiesta all'endpoint SageMaker che ospita quel modello (Passaggio 3-A), oppure può essere un servizio AI di insieme, nel qual caso il Input di processo Lambda effettuerà una richiesta alla macchina a stati delle funzioni step che ospitano la logica dell'insieme (Step 3-B).

In entrambe le opzioni (modello AI singolo o servizio AI di ensemble), quando la previsione finale è pronta, verrà archiviata nel bucket S3 appropriato e il chiamante riceverà una notifica tramite il metodo specificato nel passaggio 1 (maggiori dettagli sulle notifiche nel passaggio 4).

Passaggio 3-A

Se l'ID previsione è associato a un singolo modello AI, il Input di processo Lambda effettuerà una richiesta all'endpoint SageMaker che serve il modello. In questo sistema sono supportati due tipi di endpoint SageMaker:

  • asincrono: Il Input di processo Lambda effettua la richiesta all'endpoint asincrono SageMaker. La risposta immediata include la posizione S3 in cui SageMaker salverà l'output della previsione. Questa richiesta è asincrona, segue il modello fire-and-forget e non blocca il flusso di esecuzione della funzione Lambda.
  • Sincrono: Il Input di processo Lambda effettua la richiesta all'endpoint sincrono di SageMaker. Poiché si tratta di una richiesta sincrona, Process Input attende la risposta e, una volta ottenuta, la archivia in S3 in modo analogo a quanto farebbero gli endpoint asincroni di SageMaker.

In entrambi i casi (endpoint sincroni o asincroni), la previsione viene elaborata in modo equivalente, archiviando l'output in un bucket S3. Quando l'endpoint asincrono SageMaker completa una previsione, viene attivato un evento Amazon SNS. Questo comportamento viene replicato anche per gli endpoint sincroni con logica aggiuntiva nella funzione Lambda.

Passaggio 3-B

Se l'ID previsione è associato a un insieme AI, il Input di processo Lambda effettuerà la richiesta alla funzione step associata a tale AI Ensemble. Come accennato in precedenza, un insieme di intelligenza artificiale è un'architettura basata su un gruppo di modelli di intelligenza artificiale che lavorano insieme per generare un'unica previsione complessiva. L'orchestrazione di un ensemble AI avviene tramite una funzione step.

La funzione step ha un passaggio per servizio AI che comprende l'ensemble. Ogni passaggio richiamerà una funzione Lambda che preparerà l'input del servizio AI corrispondente utilizzando diverse combinazioni del contenuto di output dalle precedenti chiamate al servizio AI dei passaggi precedenti. Quindi effettua una chiamata a ciascun servizio di intelligenza artificiale che in questo contesto può essere un singolo modello di intelligenza artificiale o un altro insieme di intelligenza artificiale.

La stessa funzione Lambda, chiamata GetTransformCall utilizzato per gestire le previsioni intermedie di un AI Ensemble viene utilizzato in tutta la funzione step, ma con parametri di input diversi per ogni passaggio. Questo input include il nome del servizio AI da chiamare. Include anche la definizione di mappatura per costruire l'input per il servizio AI specificato. Questo viene fatto utilizzando una sintassi personalizzata che Lambda può decodificare, che in sintesi è un dizionario JSON in cui i valori devono essere sostituiti con il contenuto delle precedenti previsioni AI. Lambda scaricherà queste previsioni precedenti da Amazon S3.

In ogni passaggio, il GetTransformCall Lambda legge da Amazon S3 gli output precedenti necessari per creare l'input del servizio AI specificato. Quindi invocherà il file Nuova previsione Il codice lambda utilizzato in precedenza nel passaggio 1 e fornisce il nome del servizio, il metodo di callback ("funzione passo") e il token necessari per il callback nel payload della richiesta, che viene quindi salvato in DynamoDB come nuovo record di previsione. Il Lambda memorizza anche l'input creato di quella fase in un bucket S3. A seconda che quella fase sia un singolo modello AI o un insieme AI, Lambda invia una richiesta a un endpoint SageMaker o a una funzione di passaggio diversa che gestisce un insieme AI che è una dipendenza dell'insieme padre.

Una volta effettuata la richiesta, la funzione passo entra in uno stato in sospeso finché non riceve il token di richiamata che indica che può passare alla fase successiva. L'azione di invio di un token di richiamata viene eseguita da una funzione Lambda chiamata notifiche (maggiori dettagli nel passaggio 4) quando la previsione intermedia è pronta. Questo processo viene ripetuto per ogni fase definita nella funzione a gradino finché non è pronta la previsione finale.

Passo 4

Quando una previsione è pronta e archiviata nel bucket S3, viene attivata una notifica SNS. Questo evento può essere attivato in diversi modi a seconda del flusso:

  1. Automaticamente quando un endpoint asincrono SageMaker completa una previsione.
  2. Come l'ultimo passo della funzione passo.
  3. By Input di processo or GetTransformCall Lambda quando un endpoint SageMaker sincrono ha restituito una previsione.

Per B e C, creiamo un messaggio SNS simile a quello che A invia automaticamente.

Una funzione Lambda chiamata notifiche è sottoscritta a questo argomento SNS. Le notifiche Lambda otterranno le informazioni relative all'ID di previsione da DynamoDB, aggiorneranno la voce con valore di stato su "completato" o "errore" ed eseguiranno l'azione necessaria a seconda della modalità di callback salvata nel record del database.

Se questa previsione è una previsione intermedia di un insieme AI, come descritto nel passaggio 3-B, la modalità di callback associata a questa previsione sarà "step function" e il record del database avrà un token di callback associato al passaggio specifico nel funzione passo. Le notifiche Lambda effettuano una chiamata all'API AWS Step Functions utilizzando il metodo "SendTaskSuccess" o "SendTaskFailure". Ciò consentirà alla funzione di passaggio di continuare al passaggio successivo o di uscire.

Se la previsione è l'output finale della funzione step e la modalità di callback è "Webhook" [o e-mail, broker di messaggi (Kafka), ecc.], le notifiche Lambda avviserà il client nel modo specificato. In qualsiasi momento, l'utente può richiedere lo stato della propria previsione. La richiesta deve includere l'ID previsione assegnato nel passaggio 1 e puntare all'URL corretto all'interno di API Gateway per instradare la richiesta alla funzione Lambda chiamata sul risultato.

I risultati Lambda effettuerà una richiesta a DynamoDB, ottenendo lo stato della richiesta e restituendo le informazioni all'utente. Se lo stato della previsione è errore, i dettagli pertinenti sull'errore verranno inclusi nella risposta. Se lo stato della previsione è il successo, verrà restituito un URL S3 prefirmato per consentire all'utente di scaricare il contenuto della previsione.

Risultati

I risultati preliminari dei test delle prestazioni sono promettenti e supportano l'idea che CCC estenda l'implementazione di questa nuova architettura di distribuzione.

Notevoli osservazioni:

  • I test rivelano la forza nell'elaborazione di richieste batch o simultanee con un throughput elevato e un tasso di errore dello 0% durante scenari di traffico elevato.
  • Le code di messaggi forniscono stabilità all'interno del sistema durante flussi improvvisi di richieste fino a quando i trigger di ridimensionamento non possono fornire risorse di calcolo aggiuntive. Quando si aumenta il traffico di 3 volte, la latenza media delle richieste aumenta solo del 5%.
  • Il prezzo della stabilità è l'aumento della latenza a causa dell'overhead di comunicazione tra i vari componenti del sistema. Quando il traffico degli utenti è al di sopra della soglia di base, la latenza aggiunta può essere parzialmente mitigata fornendo più risorse di elaborazione se le prestazioni hanno una priorità maggiore rispetto ai costi.
  • Gli endpoint di inferenza asincrona di SageMaker consentono di ridimensionare il numero di istanze a zero mantenendo l'endpoint attivo per ricevere le richieste. Questa funzionalità consente alle distribuzioni di continuare a funzionare senza incorrere in costi di calcolo e di scalare da zero quando necessario in due scenari: distribuzioni di servizi utilizzate in ambienti di test inferiori e quelle con traffico minimo senza richiedere un'elaborazione immediata.

Conclusione

Come osservato durante il processo POC, il design innovativo creato congiuntamente da CCC e AWS fornisce una solida base per l'utilizzo di Amazon SageMaker con altri servizi gestiti da AWS per ospitare complessi complessi di IA multimodali e orchestrare pipeline di inferenza in modo efficace e senza soluzione di continuità. Sfruttando le funzionalità pronte all'uso di Amazon SageMaker come l'inferenza asincrona, CCC ha maggiori opportunità di concentrarsi su attività business-critical specializzate. Nello spirito della cultura orientata alla ricerca di CCC, questa nuova architettura continuerà ad evolversi man mano che CCC apre la strada, insieme ad AWS, allo sviluppo di nuove potenti soluzioni di intelligenza artificiale per i clienti.

Per i passaggi dettagliati su come creare, richiamare e monitorare gli endpoint di inferenza asincrona, fare riferimento a documentazione, che contiene anche a taccuino di esempio per aiutarti a iniziare. Per informazioni sui prezzi, visitare Prezzi di Amazon SageMaker.

Per esempi sull'utilizzo dell'inferenza asincrona con dati non strutturati come la visione artificiale e l'elaborazione del linguaggio naturale (NLP), fare riferimento a Esegui l'inferenza di visione artificiale su video di grandi dimensioni con gli endpoint asincroni di Amazon SageMaker ed Migliora la ricerca di alto valore con gli endpoint di inferenza asincroni Hugging Face e Amazon SageMaker, Rispettivamente.


Informazioni sugli autori

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Cristoforo Diaz è Lead R&D Engineer presso CCC Intelligent Solutions. In qualità di membro del team di ricerca e sviluppo, ha lavorato a una varietà di progetti che vanno dagli strumenti ETL, allo sviluppo web back-end, collaborando con i ricercatori per addestrare modelli di intelligenza artificiale su sistemi distribuiti e facilitando la fornitura di nuovi servizi di intelligenza artificiale tra i team di ricerca e operativi. La sua recente attenzione si è concentrata sulla ricerca di soluzioni di strumenti cloud per migliorare vari aspetti del ciclo di vita dello sviluppo del modello di intelligenza artificiale dell'azienda. Nel suo tempo libero, si diverte a provare nuovi ristoranti nella sua città natale di Chicago e collezionare tutti i set LEGO che la sua casa può contenere. Christopher ha conseguito il Bachelor of Science in Computer Science presso la Northeastern Illinois University.

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Vincitore del premio Emmy Sam Kindard è Senior Manager di Software Engineering presso CCC Intelligent Solutions. Con sede ad Austin, in Texas, discute con l'AI Runtime Team, che è responsabile della fornitura dei prodotti AI di CCC ad alta disponibilità e su larga scala. Nel suo tempo libero, a Sam piace essere privato del sonno a causa dei suoi due meravigliosi figli. Sam ha un Bachelor of Science in Computer Science e un Bachelor of Science in Mathematics presso l'Università del Texas ad Austin.

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Jaime Hidalgo è Senior Systems Engineer presso CCC Intelligent Solutions. Prima di entrare a far parte del team di ricerca sull'intelligenza artificiale, ha guidato la migrazione globale dell'azienda all'architettura dei microservizi, progettando, costruendo e automatizzando l'infrastruttura in AWS per supportare l'implementazione di prodotti e servizi cloud. Attualmente, costruisce e supporta un cluster di data center on-premise creato per la formazione sull'IA e progetta e realizza anche soluzioni cloud per il futuro della ricerca e dell'implementazione dell'IA dell'azienda.

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Daniel Suarez è un Data Science Engineer presso CCC Intelligent Solutions. Come membro del team di AI Engineering, lavora all'automazione e alla preparazione di modelli di intelligenza artificiale nella produzione, valutazione e monitoraggio di metriche e altri aspetti delle operazioni di ML. Daniel ha conseguito un master in informatica presso l'Illinois Institute of Technology e un master e una laurea in ingegneria delle telecomunicazioni presso l'Universidad Politecnica de Madrid.

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Arunprasath Shankar è un Senior AI/ML Specialist Solutions Architect di AWS, che aiuta i clienti globali a scalare le loro soluzioni di AI in modo efficace ed efficiente nel cloud. Nel tempo libero, ad Arun piace guardare film di fantascienza e ascoltare musica classica.

In che modo CCC Intelligent Solutions ha creato un approccio personalizzato per l'hosting di modelli IA complessi utilizzando Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Justin Mc Whirter è un Solutions Architect Manager presso AWS. Lavora con un team di straordinari architetti di soluzioni che aiutano i clienti a vivere un'esperienza positiva durante l'adozione della piattaforma AWS. Quando non è al lavoro, a Justin piace giocare ai videogiochi con i suoi due ragazzi, giocare a hockey sul ghiaccio e fare fuoristrada con la sua Jeep.

Timestamp:

Di più da Apprendimento automatico di AWS