Hvordan CCC Intelligent Solutions skabte en tilpasset tilgang til hosting af komplekse AI-modeller ved hjælp af Amazon SageMaker

Hvordan CCC Intelligent Solutions skabte en tilpasset tilgang til hosting af komplekse AI-modeller ved hjælp af Amazon SageMaker

Dette indlæg er skrevet af Christopher Diaz, Sam Kinard, Jaime Hidalgo og Daniel Suarez fra CCC Intelligent Solutions.

I dette indlæg diskuterer vi hvordan CCC intelligente løsninger (CCC) kombineret Amazon SageMaker med andre AWS-tjenester for at skabe en skræddersyet løsning, der er i stand til at være vært for de typer af komplekse kunstige intelligens-modeller (AI), der er forudset. CCC er en førende software-as-a-service-platform (SaaS) til ejendoms- og ulykkesforsikringsøkonomi på flere milliarder dollar, der driver operationer for forsikringsselskaber, reparatører, bilproducenter, reservedelsleverandører, långivere og mere. CCC cloud-teknologi forbinder mere end 30,000 virksomheder, der digitaliserer missionskritiske arbejdsgange, handel og kundeoplevelser. En betroet leder inden for AI, Internet of Things (IoT), kundeoplevelse og netværks- og workflowstyring, CCC leverer innovationer, der holder folks liv fremad, når det betyder mest.

Udfordringen

CCC behandler mere end 1 billion USD skadestransaktioner årligt. Efterhånden som virksomheden fortsætter med at udvikle sig for at integrere kunstig intelligens i sit eksisterende og nye produktkatalog, kræver dette sofistikerede tilgange til at træne og implementere multimodal machine learning (ML) ensemblemodeller til løsning af komplekse forretningsbehov. Disse er en klasse af modeller, der indkapsler proprietære algoritmer og emnedomæneekspertise, som CCC har finpudset gennem årene. Disse modeller skulle være i stand til at indtage nye lag af nuancerede data og kunderegler for at skabe enkelte forudsigelsesresultater. I dette blogindlæg vil vi lære, hvordan CCC udnyttede Amazon SageMaker-hosting og andre AWS-tjenester til at implementere eller hoste flere multimodale modeller i en ensemble-inferenspipeline.

Som vist i det følgende diagram er et ensemble en samling af to eller flere modeller, der er orkestreret til at køre på en lineær eller ikke-lineær måde for at producere en enkelt forudsigelse. Når de stables lineært, kan de individuelle modeller af et ensemble direkte påberåbes til forudsigelser og senere konsolideres til forening. Til tider kan ensemblemodeller også implementeres som en seriel inferenspipeline.

For vores brugssag er ensemblets pipeline strengt ikke-lineær, som afbildet i det følgende diagram. Ikke-lineære ensemblerørledninger er teoretisk direkte acykliske grafer (DAG'er). Til vores use case havde denne DAG-pipeline både uafhængige modeller, der køres parallelt (Service B, C) og andre modeller, der bruger forudsigelser fra tidligere trin (Service D).

En praksis, der kommer ud af den forskningsdrevne kultur hos CCC, er den løbende gennemgang af teknologier, der kan udnyttes til at bringe mere værdi til kunderne. Da CCC stod over for denne ensemble-udfordring, lancerede ledelsen et proof-of-concept (POC)-initiativ for grundigt at vurdere tilbuddene fra AWS for at opdage, specifikt, om Amazon SageMaker og andre AWS-værktøjer kunne administrere hosting af individuelle AI-modeller i komplekse, ikke-lineære ensembler.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ensemblet forklarede: I denne sammenhæng er et ensemble en gruppe af 2 eller flere AI-modeller, der arbejder sammen om at producere 1 overordnet forudsigelse.

Spørgsmål, der driver forskningen

Kan Amazon SageMaker bruges til at være vært for komplekse ensembler af AI-modeller, der arbejder sammen for at give én samlet forudsigelse? Hvis ja, kan SageMaker tilbyde andre fordele ud af boksen, såsom øget automatisering, pålidelighed, overvågning, automatisk skalering og omkostningsbesparende foranstaltninger?

At finde alternative måder at implementere CCC's AI-modeller på ved hjælp af de teknologiske fremskridt fra cloud-udbydere vil gøre det muligt for CCC at bringe AI-løsninger på markedet hurtigere end konkurrenterne. Derudover giver det at have mere end én implementeringsarkitektur fleksibilitet, når man skal finde balancen mellem omkostninger og ydeevne baseret på forretningsprioriteter.

Baseret på vores krav færdiggjorde vi følgende liste over funktioner som en tjekliste for en implementeringsarkitektur i produktionsklasse:

  • Support til komplekse ensembler
  • Garanteret oppetid for alle komponenter
  • Tilpasset automatisk skalering til implementerede AI-modeller
  • Bevarelse af AI-modellens input og output
  • Brugsmålinger og logfiler for alle komponenter
  • Omkostningsbesparende mekanismer

Da størstedelen af ​​CCC's AI-løsninger er afhængige af computervisionsmodeller, var der behov for en ny arkitektur for at understøtte billed- og videofiler, der fortsætter med at stige i opløsning. Der var et stort behov for at designe og implementere denne arkitektur som en asynkron model.

Efter cyklusser med forskning og indledende benchmarking-indsats, fastslog CCC, at SageMaker var en perfekt pasform til at opfylde de fleste af deres produktionskrav, især den garanterede oppetid, som SageMaker leverer til de fleste af dets slutningskomponenter. Standardfunktionen i Amazon SageMaker Asynchronous Inference-endepunkter, der gemmer input/output i Amazon S3, forenkler opgaven med at bevare data genereret fra komplekse ensembler. Når hver AI-model desuden hostes af sit eget slutpunkt, bliver det nemmere at administrere automatiske skaleringspolitikker på model- eller slutpunktsniveau. Ved at forenkle administrationen er en potentiel omkostningsbesparende fordel ved dette, at udviklingsteams kan allokere mere tid til at finjustere skaleringspolitikker for at minimere overforsyning af computerressourcer.

Efter at have besluttet at fortsætte med at bruge SageMaker som den centrale komponent i arkitekturen, indså vi også, at SageMaker kan være en del af en endnu større arkitektur, suppleret med mange andre serverløse AWS-administrerede tjenester. Dette valg var nødvendigt for at lette den højere ordens orkestrerings- og observerbarhedsbehov for denne komplekse arkitektur.

For det første, for at fjerne begrænsninger af nyttelaststørrelse og i høj grad reducere risikoen for timeout under scenarier med høj trafik, implementerede CCC en arkitektur, der kører forudsigelser asynkront vha. SageMaker Asynchronous Inference endpoints kombineret med andre AWS-administrerede tjenester som de centrale byggesten. Derudover følger brugergrænsefladen til systemet brand-og-glem designmønsteret. Med andre ord, når en bruger har uploadet deres input til systemet, skal der ikke gøres mere. De får besked, når forudsigelsen er tilgængelig. Nedenstående figur illustrerer et overblik over vores asynkrone begivenhedsdrevne arkitektur på højt niveau. Lad os i det kommende afsnit tage et dybt dyk ned i udførelsesstrømmen af ​​den designede arkitektur.

Trin-for-trin løsning

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Trin 1

En klient fremsætter en anmodning til AWS API Gateway endepunkt. Indholdet af anmodningen indeholder navnet på den AI-tjeneste, hvorfra de har brug for en forudsigelse, og den ønskede underretningsmetode.

Denne anmodning videregives til a Lambda funktion kaldet Ny forudsigelse, hvis hovedopgaver er at:

  • Tjek, om den ønskede service fra klienten er tilgængelig.
  • Tildel et unikt forudsigelses-id til anmodningen. Dette forudsigelses-id kan bruges af brugeren til at kontrollere status for forudsigelsen gennem hele processen.
  • Generer en Amazon S3 forudsigneret URL, som brugeren skal bruge i næste trin for at uploade inputindholdet i forudsigelsesanmodningen.
  • Opret en post i Amazon DynamoDB med oplysningerne om den modtagne anmodning.

Lambda-funktionen returnerer derefter et svar gennem API Gateway-slutpunktet med en meddelelse, der inkluderer forudsigelses-id'et, der er tildelt anmodningen, og Amazon S3 pre-signeret URL.

Trin 2

Klienten uploader sikkert forudsigelsesinputindholdet til en S3-bøtte ved hjælp af den forudsignerede URL, der blev genereret i det foregående trin. Inputindhold afhænger af AI-tjenesten og kan være sammensat af billeder, tabeldata eller en kombination af begge.

Trin 3

S3-bøtten er konfigureret til at udløse en hændelse, når brugeren uploader inputindholdet. Denne meddelelse sendes til en Amazon SQS-kø og håndteres af en Lambda-funktion kaldet Procesinput. Det Procesinput Lambda vil indhente oplysningerne relateret til dette forudsigelses-id fra DynamoDB for at få navnet på den tjeneste, som anmodningen skal sendes til.

Denne tjeneste kan enten være en enkelt AI-model, i hvilket tilfælde Procesinput Lambda sender en anmodning til SageMaker-slutpunktet, der er vært for denne model (trin 3-A), eller det kan være en ensemble AI-tjeneste, i hvilket tilfælde Procesinput Lambda vil fremsætte en anmodning til tilstandsmaskinen for de trinfunktioner, der er vært for ensemblelogikken (trin 3-B).

I begge muligheder (enkelt AI-model eller ensemble AI-tjeneste), når den endelige forudsigelse er klar, vil den blive gemt i den relevante S3-bøtte, og den, der ringer, vil blive underrettet via metoden specificeret i trin 1 (flere detaljer om meddelelser i trin 4).

Trin 3-A

Hvis forudsigelses-id'et er knyttet til en enkelt AI-model, vil Procesinput Lambda sender en anmodning til SageMaker-slutpunktet, der betjener modellen. I dette system understøttes to typer SageMaker-endepunkter:

  • Asynkron: The Procesinput Lambda sender anmodningen til SageMaker asynkrone slutpunkt. Det øjeblikkelige svar inkluderer S3-stedet, hvor SageMaker gemmer forudsigelsesoutputtet. Denne anmodning er asynkron, følger brand-og-glem-mønsteret og blokerer ikke for udførelsen af ​​Lambda-funktionen.
  • Synkron: The Procesinput Lambda sender anmodningen til SageMaker synkrone slutpunkt. Da det er en synkron anmodning, venter Process Input på svaret, og når det først er opnået, gemmer det det i S3 på en analog måde, som SageMaker asynkrone endepunkter ville gøre.

I begge tilfælde (synkrone eller asynkrone endepunkter) behandles forudsigelsen på en tilsvarende måde, idet outputtet lagres i en S3-bøtte. Når det asynkrone SageMaker-slutpunkt fuldfører en forudsigelse, udløses en Amazon SNS-hændelse. Denne adfærd replikeres også for synkrone endepunkter med yderligere logik i Lambda-funktionen.

Trin 3-B

Hvis forudsigelses-id'et er knyttet til et AI-ensemble, Procesinput Lambda sender anmodningen til den trinfunktion, der er knyttet til det pågældende AI-ensemble. Som nævnt ovenfor er et AI-ensemble en arkitektur baseret på en gruppe AI-modeller, der arbejder sammen om at generere en enkelt samlet forudsigelse. Orkestreringen af ​​et AI-ensemble sker gennem en step-funktion.

Trinfunktionen har et trin pr. AI-tjeneste, der omfatter ensemblet. Hvert trin vil påkalde en Lambda-funktion, der vil forberede dens tilsvarende AI-tjenestes input ved hjælp af forskellige kombinationer af outputindholdet fra tidligere AI-tjenestekald fra tidligere trin. Derefter foretager den et opkald til hver AI-tjeneste, som i denne sammenhæng kan være en enkelt AI-model eller et andet AI-ensemble.

Den samme Lambda funktion, kaldet GetTransformCall bruges til at håndtere de mellemliggende forudsigelser af et AI-ensemble, bruges gennem hele trinfunktionen, men med forskellige inputparametre for hvert trin. Dette input inkluderer navnet på den AI-tjeneste, der skal kaldes. Det inkluderer også kortlægningsdefinitionen til at konstruere input til den specificerede AI-tjeneste. Dette gøres ved hjælp af en brugerdefineret syntaks, som Lambdaen kan afkode, hvilket sammenfattet er en JSON-ordbog, hvor værdierne skal erstattes med indholdet fra de tidligere AI-forudsigelser. Lambdaen vil downloade disse tidligere forudsigelser fra Amazon S3.

I hvert trin er GetTransformCall Lambda læser fra Amazon S3 de tidligere udgange, der er nødvendige for at opbygge input fra den specificerede AI-tjeneste. Det vil derefter påberåbe sig Ny forudsigelse Lambdakode, der tidligere blev brugt i trin 1, og angiv tjenestenavnet, tilbagekaldsmetoden ("trinfunktion") og token, der er nødvendig for tilbagekaldet i anmodningens nyttelast, som derefter gemmes i DynamoDB som en ny forudsigelsespost. Lambdaen gemmer også det oprettede input fra det pågældende trin i en S3-spand. Afhængigt af om det trin er en enkelt AI-model eller et AI-ensemble, sender Lambdaen en anmodning til et SageMaker-slutpunkt eller en anden trinfunktion, der administrerer et AI-ensemble, der er en afhængighed af moderensemblet.

Når anmodningen er foretaget, går trinfunktionen ind i en afventende tilstand, indtil den modtager tilbagekaldstokenet, der indikerer, at den kan flytte til næste trin. Handlingen med at sende et tilbagekaldstoken udføres af en kaldet Lambda-funktion meddelelser (flere detaljer i trin 4), når den mellemliggende forudsigelse er klar. Denne proces gentages for hvert trin, der er defineret i trinfunktionen, indtil den endelige forudsigelse er klar.

Trin 4

Når en forudsigelse er klar og gemt i S3-bøtten, udløses en SNS-meddelelse. Denne hændelse kan udløses på forskellige måder afhængigt af flowet:

  1. Automatisk, når et SageMaker asynkront slutpunkt fuldfører en forudsigelse.
  2. Som det allersidste trin i trinfunktionen.
  3. By Procesinput or GetTransformCall Lambda, når et synkront SageMaker-endepunkt har returneret en forudsigelse.

For B og C opretter vi en SNS-besked svarende til, hvad A automatisk sender.

En Lambda-funktion kaldet notifikationer abonnerer på dette SNS-emne. Meddelelserne Lambda får oplysningerne relateret til forudsigelses-id'et fra DynamoDB, opdaterer posten med statusværdi til "fuldført" eller "fejl" og udfører den nødvendige handling afhængigt af tilbagekaldstilstanden, der er gemt i databaseposten.

Hvis denne forudsigelse er en mellemforudsigelse af et AI-ensemble, som beskrevet i trin 3-B, vil tilbagekaldstilstanden, der er knyttet til denne forudsigelse, være "trinfunktion", og databaseposten vil have et tilbagekaldstoken tilknyttet det specifikke trin i trinfunktion. Meddelelserne Lambda vil foretage et opkald til AWS Step Functions API ved hjælp af metoden "SendTaskSuccess" eller "SendTaskFailure." Dette vil tillade trinfunktionen at fortsætte til næste trin eller afslutte.

Hvis forudsigelsen er det endelige output af trinfunktionen, og tilbagekaldstilstanden er "Webhook" [eller e-mail, meddelelsesmæglere (Kafka), etc.], så vil meddelelserne Lambda underrette klienten på den angivne måde. På ethvert tidspunkt kan brugeren anmode om status for deres forudsigelse. Anmodningen skal indeholde det forudsigelses-id, der blev tildelt i trin 1 og pege på den korrekte URL i API Gateway for at dirigere anmodningen til Lambda-funktionen kaldet resultater.

Resultaterne Lambda sender en anmodning til DynamoDB, indhenter status for anmodningen og returnerer oplysningerne til brugeren. Hvis forudsigelsens status er fejl, så vil de relevante oplysninger om fejlen blive inkluderet i svaret. Hvis forudsigelsesstatus er succes, returneres en S3 pre-signeret URL, så brugeren kan downloade forudsigelsesindholdet.

Resultater

Foreløbige resultater af præstationstest er lovende og understøtter, at CCC kan udvide implementeringen af ​​denne nye implementeringsarkitektur.

Bemærkelsesværdige observationer:

  • Tests afslører styrke i at behandle batch- eller samtidige anmodninger med høj gennemstrømning og en fejlrate på 0 procent under scenarier med høj trafik.
  • Meddelelseskøer giver stabilitet i systemet under pludselige tilstrømninger af anmodninger, indtil skaleringstriggere kan levere yderligere computerressourcer. Når trafikken blev øget med 3x, steg den gennemsnitlige anmodningsforsinkelse kun med 5 procent.
  • Prisen på stabilitet er øget latenstid på grund af kommunikationsoverhead mellem de forskellige systemkomponenter. Når brugertrafik er over baseline-tærsklen, kan den tilføjede latenstid delvist afbødes ved at levere flere computerressourcer, hvis ydeevne er en højere prioritet over omkostninger.
  • SageMakers asynkrone slutningsendepunkter gør det muligt at skalere instanstællingen til nul, mens endepunktet holdes aktivt for at modtage anmodninger. Denne funktionalitet gør det muligt for implementeringer at fortsætte med at køre uden at pådrage sig beregningsomkostninger og skalere op fra nul, når det er nødvendigt i to scenarier: tjenesteimplementeringer, der bruges i lavere testmiljøer, og dem, der har minimal trafik uden at kræve øjeblikkelig behandling.

Konklusion

Som observeret under POC-processen, giver det innovative design i fællesskab skabt af CCC og AWS et solidt grundlag for at bruge Amazon SageMaker med andre AWS-administrerede tjenester til at hoste komplekse multimodale AI-ensembler og orkestrere inferenspipelines effektivt og problemfrit. Ved at udnytte Amazon SageMakers out-of-the-box-funktionaliteter som Asynchronous Inference har CCC flere muligheder for at fokusere på specialiserede forretningskritiske opgaver. I ånden af ​​CCC's forskningsdrevne kultur vil denne nye arkitektur fortsætte med at udvikle sig, efterhånden som CCC fører vejen frem, sammen med AWS, med at frigive kraftfulde nye AI-løsninger til kunder.

For detaljerede trin til, hvordan man opretter, kalder og overvåger asynkrone inferensendepunkter, henvises til dokumentation, som også indeholder en eksempel notesbog for at hjælpe dig i gang. For prisoplysninger, besøg Amazon SageMaker-priser.

For eksempler på brug af asynkron inferens med ustrukturerede data såsom computersyn og naturlig sprogbehandling (NLP), henvises til Kør computersynsslutning på store videoer med Amazon SageMaker asynkrone endepunkter , Forbedre forskning af høj værdi med Hugging Face og Amazon SageMaker asynkrone inferensendepunkter, henholdsvis.


Om forfatterne

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Christopher Diaz er en Lead R&D Engineer hos CCC Intelligent Solutions. Som medlem af R&D-teamet har han arbejdet på en række projekter lige fra ETL-værktøjer, backend-webudvikling, samarbejde med forskere for at træne AI-modeller på distribuerede systemer og facilitere leveringen af ​​nye AI-tjenester mellem forsknings- og driftsteams. Hans seneste fokus har været på at undersøge cloud-værktøjsløsninger for at forbedre forskellige aspekter af virksomhedens AI-modeludviklingslivscyklus. I sin fritid nyder han at prøve nye restauranter i sin hjemby Chicago og samle så mange LEGO-sæt, som hans hjem kan passe. Christopher tog sin Bachelor of Science i Computer Science fra Northeastern Illinois University.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Emmy Award vinder Sam Kinard er Senior Manager of Software Engineering hos CCC Intelligent Solutions. Baseret i Austin, Texas, skændes han med AI Runtime Team, som er ansvarlig for at betjene CCC's AI-produkter med høj tilgængelighed og stor skala. I sin fritid nyder Sam at blive søvnmangel på grund af sine to vidunderlige børn. Sam har en Bachelor of Science i Computer Science og en Bachelor of Science in Mathematics fra University of Texas i Austin.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jaime Hidalgo er senior systemingeniør hos CCC Intelligent Solutions. Før han kom til AI-forskerteamet, ledede han virksomhedens globale migrering til Microservices Architecture, design, opbygning og automatisering af infrastrukturen i AWS for at understøtte implementeringen af ​​cloud-produkter og -tjenester. I øjeblikket bygger og understøtter han en lokal datacenterklynge bygget til AI-træning og designer og bygger også cloud-løsninger til virksomhedens fremtid for AI-forskning og -implementering.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Daniel Suarez er Data Science Engineer hos CCC Intelligent Solutions. Som medlem af AI Engineering-teamet arbejder han med automatisering og forberedelse af AI-modeller i produktion, evaluering og overvågning af metrikker og andre aspekter af ML-operationer. Daniel modtog en kandidatgrad i datalogi fra Illinois Institute of Technology og en kandidat- og bachelorgrad i telekommunikationsteknik fra Universidad Politecnica de Madrid.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Arunprasath Shankar er en Senior AI/ML Specialist Solutions Architect med AWS, der hjælper globale kunder med at skalere deres AI-løsninger effektivt og effektivt i skyen. I sin fritid nyder Arun at se sci-fi-film og lytte til klassisk musik.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Justin McWhirter er Solutions Architect Manager hos AWS. Han arbejder sammen med et team af fantastiske Solutions Architects, der hjælper kunder med at få en positiv oplevelse, mens de adopterer AWS-platformen. Når han ikke er på arbejde, nyder Justin at spille videospil med sine to drenge, ishockey og at køre offroad i sin jeep.

Tidsstempel:

Mere fra AWS maskinindlæring