Cum CCC Intelligent Solutions a creat o abordare personalizată pentru găzduirea modelelor complexe de IA folosind Amazon SageMaker

Cum CCC Intelligent Solutions a creat o abordare personalizată pentru găzduirea modelelor complexe de IA folosind Amazon SageMaker

Această postare este co-scrisă de Christopher Diaz, Sam Kinard, Jaime Hidalgo și Daniel Suarez de la CCC Intelligent Solutions.

În această postare, discutăm cum Soluții inteligente CCC (CCC) combinate Amazon SageMaker cu alte servicii AWS pentru a crea o soluție personalizată capabilă să găzduiască tipurile de modele complexe de inteligență artificială (AI) preconizate. CCC este o platformă software-as-a-service (SaaS) lider pentru economia de asigurări de proprietăți și accidente de mai multe trilioane de dolari, care alimentează operațiunile pentru asigurători, reparatori, producători de automobile, furnizori de piese, creditori și multe altele. Tehnologia cloud CCC conectează peste 30,000 de companii care digitalizează fluxurile de lucru critice, comerțul și experiențele clienților. Lider de încredere în inteligența artificială, Internetul obiectelor (IoT), experiența clienților și gestionarea rețelelor și a fluxului de lucru, CCC oferă inovații care fac ca viața oamenilor să meargă înainte atunci când contează cel mai mult.

Provocarea

CCC procesează mai mult de 1 trilion de dolari tranzacții de daune anual. Pe măsură ce compania continuă să evolueze pentru a integra AI în catalogul său de produse existent și nou, acest lucru necesită abordări sofisticate pentru a instrui și a implementa modele de ansamblu multimodal de învățare automată (ML) pentru a rezolva nevoile complexe de afaceri. Acestea sunt o clasă de modele care încapsulează algoritmi proprietari și expertiza în domeniu pe care CCC le-a perfecționat de-a lungul anilor. Aceste modele ar trebui să fie capabile să ingereze noi straturi de date nuanțate și reguli pentru clienți pentru a crea rezultate unice de predicție. În această postare pe blog, vom afla cum CCC a folosit găzduirea Amazon SageMaker și alte servicii AWS pentru a implementa sau găzdui mai multe modele multimodale într-o conductă de inferență de ansamblu.

După cum se arată în diagrama următoare, un ansamblu este o colecție de două sau mai multe modele care sunt orchestrate pentru a rula într-un mod liniar sau neliniar pentru a produce o singură predicție. Când sunt stivuite liniar, modelele individuale ale unui ansamblu pot fi invocate direct pentru predicții și ulterior consolidate pentru unificare. Uneori, modelele de ansamblu pot fi implementate și ca o conductă de inferență în serie.

Pentru cazul nostru de utilizare, conducta de ansamblu este strict neliniară, așa cum este prezentat în diagrama următoare. Conductele de ansamblu neliniare sunt teoretic grafice direct aciclice (DAG). Pentru cazul nostru de utilizare, această conductă DAG a avut atât modele independente care sunt rulate în paralel (Serviciile B, C), cât și alte modele care utilizează predicții din pașii anteriori (Serviciul D).

O practică care iese din cultura bazată pe cercetare la CCC este revizuirea continuă a tehnologiilor care pot fi valorificate pentru a aduce mai multă valoare clienților. În timp ce CCC s-a confruntat cu această provocare de ansamblu, conducerea a lansat o inițiativă de dovadă a conceptului (POC) pentru a evalua în detaliu ofertele de la AWS pentru a descoperi, în special, dacă Amazon SageMaker și alte instrumente AWS ar putea gestiona găzduirea modelelor individuale de IA în mod complex, neliniar. ansambluri.

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

Ansamblul a explicat: În acest context, un ansamblu este un grup de 2 sau mai multe modele AI care lucrează împreună pentru a produce o predicție generală.

Întrebări care conduc cercetarea

Poate fi utilizat Amazon SageMaker pentru a găzdui ansambluri complexe de modele AI care lucrează împreună pentru a oferi o singură predicție generală? Dacă da, poate SageMaker să ofere și alte beneficii imediate, cum ar fi automatizare sporită, fiabilitate, monitorizare, scalare automată și măsuri de economisire a costurilor?

Găsirea unor modalități alternative de implementare a modelelor AI ale CCC folosind progresele tehnologice de la furnizorii de cloud îi va permite CCC să aducă pe piață soluții AI mai rapid decât concurența. În plus, având mai mult de o arhitectură de implementare oferă flexibilitate atunci când găsiți echilibrul între cost și performanță pe baza priorităților de afaceri.

Pe baza cerințelor noastre, am finalizat următoarea listă de caracteristici ca o listă de verificare pentru o arhitectură de implementare la nivel de producție:

  • Suport pentru ansambluri complexe
  • Timp de funcționare garantat pentru toate componentele
  • Scalare automată personalizabilă pentru modelele AI implementate
  • Păstrarea intrării și ieșirii modelului AI
  • Valori de utilizare și jurnalele pentru toate componentele
  • Mecanisme de economisire a costurilor

Având în vedere că majoritatea soluțiilor AI ale CCC se bazează pe modele de viziune computerizată, a fost necesară o nouă arhitectură pentru a suporta fișiere de imagine și video care continuă să crească în rezoluție. A existat o nevoie puternică de a proiecta și implementa această arhitectură ca model asincron.

După cicluri de cercetare și eforturi inițiale de analiză comparativă, CCC a stabilit că SageMaker se potrivea perfect pentru a satisface majoritatea cerințelor lor de producție, în special timpul de funcționare garantat pe care SageMaker îl oferă pentru majoritatea componentelor sale de inferență. Caracteristica implicită a punctelor finale Amazon SageMaker Asynchronous Inference care salvează intrări/ieșiri în Amazon S3 simplifică sarcina de păstrare a datelor generate din ansambluri complexe. În plus, fiecare model AI fiind găzduit de propriul punct final, gestionarea politicilor de scalare automată la nivel de model sau punct final devine mai ușoară. Prin simplificarea managementului, un potențial beneficiu de economisire a costurilor este că echipele de dezvoltare pot aloca mai mult timp pentru reglarea fină a politicilor de scalare pentru a minimiza supraprovizionarea resurselor de calcul.

După ce am decis să continuăm cu utilizarea SageMaker ca componentă esențială a arhitecturii, am realizat, de asemenea, că SageMaker poate face parte dintr-o arhitectură și mai mare, completată cu multe alte servicii gestionate de AWS fără server. Această alegere a fost necesară pentru a facilita nevoile de orchestrare și observabilitate de ordin superior ale acestei arhitecturi complexe.

În primul rând, pentru a elimina limitările privind dimensiunea sarcinii utile și pentru a reduce considerabil riscul de expirare în timpul scenariilor cu trafic ridicat, CCC a implementat o arhitectură care rulează predicții asincron folosind Puncte finale SageMaker Asynchronous Inference împreună cu alte servicii gestionate de AWS ca elemente de bază. În plus, interfața cu utilizatorul pentru sistem urmează modelul de design „foc și uita”. Cu alte cuvinte, odată ce un utilizator și-a încărcat intrarea în sistem, nu mai trebuie făcut nimic. Aceștia vor fi anunțați când predicția este disponibilă. Figura de mai jos ilustrează o imagine de ansamblu la nivel înalt a arhitecturii noastre asincrone bazate pe evenimente. În secțiunea următoare, să facem o scufundare profundă în fluxul de execuție al arhitecturii proiectate.

Soluție pas cu pas

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

Etapa 1

Un client face o cerere către AWS API Gateway punct final. Conținutul solicitării conține numele serviciului AI de la care au nevoie de o predicție și metoda dorită de notificare.

Această cerere este transmisă unui Lambda funcție numită Noua predictie, ale căror principale sarcini sunt:

  • Verificați dacă serviciul solicitat de client este disponibil.
  • Atribuiți un ID de predicție unic cererii. Acest ID de predicție poate fi utilizat de utilizator pentru a verifica starea predicției pe parcursul întregului proces.
  • Generați un Amazon S3 adresă URL presemnată pe care utilizatorul va trebui să o folosească în următorul pas pentru a încărca conținutul de intrare al solicitării de predicție.
  • Creați o intrare în Amazon DynamoDB cu informatiile cererii primite.

Funcția Lambda va returna apoi un răspuns prin punctul final API Gateway cu un mesaj care include ID-ul de predicție atribuit solicitării și adresa URL presemnată Amazon S3.

Etapa 2

Clientul încarcă în siguranță conținutul de intrare de predicție într-un compartiment S3 folosind adresa URL presemnată generată în pasul anterior. Conținutul de intrare depinde de serviciul AI și poate fi compus din imagini, date tabulare sau o combinație a ambelor.

Etapa 3

Bucket-ul S3 este configurat să declanșeze un eveniment atunci când utilizatorul încarcă conținutul de intrare. Această notificare este trimisă la o coadă Amazon SQS și gestionată de o funcție Lambda numită Intrarea procesului. Intrarea procesului Lambda va obține informațiile legate de acel ID de predicție de la DynamoDB pentru a obține numele serviciului către care urmează să se facă cererea.

Acest serviciu poate fi fie un singur model AI, caz în care Intrarea procesului Lambda va face o solicitare către punctul final SageMaker care găzduiește modelul respectiv (Pasul 3-A) sau poate fi un serviciu AI de ansamblu, caz în care Intrarea procesului Lambda va face o cerere către mașina de stare a funcțiilor pas care găzduiește logica ansamblului (Pasul 3-B).

În oricare dintre opțiuni (model AI unic sau serviciu AI de ansamblu), când predicția finală este gata, aceasta va fi stocată în compartimentul S3 corespunzător, iar apelantul va fi notificat prin metoda specificată la Pasul 1 (mai multe detalii despre notificări în Pasul 4).

Pasul 3-A

Dacă ID-ul de predicție este asociat unui singur model AI, Intrarea procesului Lambda va face o solicitare către punctul final SageMaker care deservește modelul. În acest sistem, sunt acceptate două tipuri de puncte finale SageMaker:

  • asincronă: Intrarea procesului Lambda face cererea către punctul final asincron SageMaker. Răspunsul imediat include locația S3 în care SageMaker va salva rezultatul predicției. Această solicitare este asincronă, urmând modelul fire-and-forget și nu blochează fluxul de execuție al funcției Lambda.
  • sincronic: Intrarea procesului Lambda face cererea către punctul final sincron SageMaker. Deoarece este o solicitare sincronă, Process Input așteaptă răspunsul și, odată obținut, îl stochează în S3 într-un mod analog în care ar face punctele finale asincrone SageMaker.

În ambele cazuri (puncte finale sincrone sau asincrone), predicția este procesată într-un mod echivalent, stocând rezultatul într-un bucket S3. Când punctul final asincron SageMaker finalizează o predicție, este declanșat un eveniment Amazon SNS. Acest comportament este replicat și pentru punctele finale sincrone cu logică suplimentară în funcția Lambda.

Pasul 3-B

Dacă ID-ul de predicție este asociat cu un ansamblu AI, Intrarea procesului Lambda va face cererea către funcția de pas asociată acelui ansamblu AI. După cum am menționat mai sus, un ansamblu AI este o arhitectură bazată pe un grup de modele AI care lucrează împreună pentru a genera o singură predicție generală. Orchestrarea unui ansamblu AI se face printr-o funcție step.

Funcția de pas are un pas pentru fiecare serviciu AI care cuprinde ansamblul. Fiecare pas va invoca o funcție Lambda care va pregăti intrarea serviciului AI corespunzătoare utilizând diferite combinații ale conținutului de ieșire din apelurile anterioare ale serviciului AI ale pașilor anteriori. Apoi face un apel către fiecare serviciu AI care, în acest context, poate fi un singur model AI sau un alt ansamblu AI.

Aceeași funcție Lambda, numită GetTransformCall folosit pentru a gestiona predicțiile intermediare ale unui ansamblu AI este utilizat în întreaga funcție de pas, dar cu parametri de intrare diferiți pentru fiecare pas. Această intrare include numele serviciului AI care urmează să fie apelat. De asemenea, include definiția de mapare pentru a construi intrarea pentru serviciul AI specificat. Acest lucru se face folosind o sintaxă personalizată pe care Lambda o poate decoda, care, în rezumat, este un dicționar JSON în care valorile ar trebui înlocuite cu conținutul din predicțiile AI anterioare. Lambda va descărca aceste predicții anterioare de pe Amazon S3.

La fiecare pas, GetTransformCall Lambda citește din Amazon S3 ieșirile anterioare care sunt necesare pentru a construi intrarea serviciului AI specificat. Apoi va invoca Noua predicție Codul Lambda utilizat anterior la Pasul 1 și furnizează numele serviciului, metoda de apel invers („funcția pas”) și simbolul necesar pentru apel invers în sarcina utilă a cererii, care este apoi salvat în DynamoDB ca o nouă înregistrare de predicție. Lambda stochează, de asemenea, intrarea creată a acelei etape într-o găleată S3. În funcție de faptul dacă acea etapă este un singur model AI sau un ansamblu AI, Lambda face o solicitare către un punct final SageMaker sau către o funcție pas diferită care gestionează un ansamblu AI care este o dependență a ansamblului părinte.

Odată ce solicitarea este făcută, funcția de pas intră într-o stare în așteptare până când primește simbolul de apel invers care indică faptul că poate trece la etapa următoare. Acțiunea de trimitere a unui token de apel invers este efectuată de o funcție Lambda numită notificări (mai multe detalii în Pasul 4) când predicția intermediară este gata. Acest proces se repetă pentru fiecare etapă definită în funcția de pas până când predicția finală este gata.

Etapa 4

Când o predicție este gata și stocată în compartimentul S3, este declanșată o notificare SNS. Acest eveniment poate fi declanșat în diferite moduri, în funcție de flux:

  1. Automat când un punct final asincron SageMaker finalizează o predicție.
  2. Ca ultimul pas al funcției pas.
  3. By Intrarea procesului or GetTransformCall Lambda când un punct final SageMaker sincron a returnat o predicție.

Pentru B și C, creăm un mesaj SNS similar cu ceea ce A trimite automat.

O funcție Lambda numită notificări este abonată la acest subiect SNS. Notificările Lambda vor primi informațiile legate de ID-ul de predicție de la DynamoDB, va actualiza intrarea cu valoarea de stare la „finalizat” sau „eroare” și va efectua acțiunea necesară în funcție de modul de apel invers salvat în înregistrarea bazei de date.

Dacă această predicție este o predicție intermediară a unui ansamblu AI, așa cum este descris în pasul 3-B, modul de apel invers asociat acestei predicții va fi „funcție de pas”, iar înregistrarea bazei de date va avea un simbol de apel invers asociat cu pasul specific din functie de pas. Notificările Lambda vor efectua un apel către API-ul AWS Step Functions folosind metoda „SendTaskSuccess” sau „SendTaskFailure”. Acest lucru va permite ca funcția de pas să continue la pasul următor sau să iasă.

Dacă predicția este rezultatul final al funcției de pas și modul de apel invers este „Webhook” [sau e-mail, brokeri de mesaje (Kafka), etc.], atunci notificările Lambda vor notifica clientul în modul specificat. În orice moment, utilizatorul poate solicita starea predicției sale. Solicitarea trebuie să includă ID-ul de predicție care a fost atribuit la Pasul 1 și să trimită către adresa URL corectă din API Gateway pentru a direcționa solicitarea către funcția Lambda numită rezultate obținute.

Rezultatele Lambda va face o cerere către DynamoDB, obținând starea solicitării și returnând informațiile utilizatorului. Dacă starea predicţiei este eroare, atunci detaliile relevante despre defecțiune vor fi incluse în răspuns. Dacă starea de predicție este succes, va fi returnată o adresă URL S3 presemnată pentru ca utilizatorul să descarce conținutul predicției.

Rezultate

Rezultatele preliminare ale testării de performanță sunt promițătoare și susțin argumentul ca CCC să extindă implementarea acestei noi arhitecturi de implementare.

Observații notabile:

  • Testele dezvăluie puterea în procesarea cererilor în lot sau concurente, cu un randament ridicat și o rată de eșec de 0% în cazul scenariilor de trafic ridicat.
  • Cozile de mesaje asigură stabilitate în sistem în timpul afluxurilor bruște de solicitări, până când declanșatoarele de scalare pot furniza resurse de calcul suplimentare. La creșterea traficului de trei ori, latența medie a solicitărilor a crescut doar cu 3%.
  • Prețul stabilității este o latență crescută din cauza supraîncărcării de comunicare între diferitele componente ale sistemului. Atunci când traficul utilizatorilor este peste pragul de referință, latența adăugată poate fi parțial atenuată prin furnizarea de mai multe resurse de calcul, dacă performanța este o prioritate mai mare față de cost.
  • Punctele finale de inferență asincrone ale SageMaker permit ca numărul de instanțe să fie scalat la zero, menținând în același timp punctul final activ pentru a primi cereri. Această funcționalitate permite implementărilor să continue să ruleze fără a suporta costuri de calcul și să se extindă de la zero atunci când este necesar în două scenarii: implementări de servicii utilizate în medii de testare mai scăzute și cele care au trafic minim fără a necesita procesare imediată.

Concluzie

După cum s-a observat în timpul procesului POC, designul inovator creat în comun de CCC și AWS oferă o bază solidă pentru utilizarea Amazon SageMaker cu alte servicii gestionate AWS pentru a găzdui ansambluri AI multimodale complexe și pentru a orchestra conducte de inferență în mod eficient și fără probleme. Folosind funcționalitățile ieșite din cutie ale Amazon SageMaker, cum ar fi Asynchronous Inference, CCC are mai multe oportunități de a se concentra pe sarcini specializate critice pentru afaceri. În spiritul culturii CCC bazată pe cercetare, această arhitectură nouă va continua să evolueze pe măsură ce CCC va conduce drumul înainte, alături de AWS, în lansarea unor noi soluții AI puternice pentru clienți.

Pentru pași detaliați despre cum să creați, să invocați și să monitorizați punctele finale de inferență asincrone, consultați documentaţie, care conține și a caiet de probă pentru a vă ajuta să începeți. Pentru informații despre preț, vizitați Prețuri Amazon SageMaker.

Pentru exemple despre utilizarea inferenței asincrone cu date nestructurate, cum ar fi viziunea computerizată și procesarea limbajului natural (NLP), consultați Rulați inferențe de viziune computerizată pe videoclipuri mari cu puncte finale asincrone Amazon SageMaker și Îmbunătățiți cercetarea de mare valoare cu punctele finale de inferență asincrone Hugging Face și Amazon SageMaker, respectiv.


Despre Autori

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Christopher Diaz este inginer principal de cercetare și dezvoltare la CCC Intelligent Solutions. Ca membru al echipei de cercetare și dezvoltare, a lucrat la o varietate de proiecte, de la instrumente ETL, dezvoltare web backend, colaborare cu cercetători pentru a instrui modele AI pe sisteme distribuite și facilitarea furnizării de noi servicii AI între echipele de cercetare și operațiuni. Accentul său recent s-a concentrat pe cercetarea soluțiilor de instrumente cloud pentru a îmbunătăți diferite aspecte ale ciclului de viață al dezvoltării modelului AI al companiei. În timpul liber, îi place să încerce restaurante noi în orașul său natal, Chicago, și să strângă câte seturi LEGO încape în casa lui. Christopher și-a obținut licența în Științe în Informatică de la Universitatea Northeastern Illinois.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Câștigător al premiului Emmy Sam Kinard este manager senior de inginerie software la CCC Intelligent Solutions. Cu sediul în Austin, Texas, el se ceartă cu echipa AI Runtime, care este responsabilă pentru deservirea produselor AI CCC la disponibilitate ridicată și la scară largă. În timpul liber, lui Sam îi place să fie lipsit de somn din cauza celor doi copii minunați ai săi. Sam are o licență în Științe în Informatică și o licență în Științe în Matematică de la Universitatea Texas din 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 este inginer senior de sisteme la CCC Intelligent Solutions. Înainte de a se alătura echipei de cercetare AI, el a condus migrarea globală a companiei către arhitectura microservicii, proiectând, construind și automatizând infrastructura în AWS pentru a sprijini implementarea produselor și serviciilor cloud. În prezent, el construiește și susține un cluster de centre de date on-premise construit pentru instruirea AI și, de asemenea, proiectează și construiește soluții cloud pentru viitorul companiei în cercetarea și implementarea AI.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Daniel Suarez este inginer în știința datelor la CCC Intelligent Solutions. În calitate de membru al echipei AI Engineering, el lucrează la automatizarea și pregătirea modelelor AI în producția, evaluarea și monitorizarea metricilor și a altor aspecte ale operațiunilor ML. Daniel a primit un Master în Informatică de la Institutul de Tehnologie din Illinois și un Master și o licență în Inginerie Telecomunicații de la Universidad Politecnica din 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 este un Senior AI/ML Specialist Solutions Architect cu AWS, ajutând clienții globali să-și scaleze soluțiile AI în mod eficient și eficient în cloud. În timpul liber, lui Arun îi place să se uite la filme SF și să asculte muzică clasică.

­­How CCC Intelligent Solutions created a custom approach for hosting complex AI models using Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Justin McWhirter este manager de arhitect de soluții la AWS. Lucrează cu o echipă de arhitecți de soluții uimitoare care îi ajută pe clienți să aibă o experiență pozitivă în timp ce adoptă platforma AWS. Când nu este la serviciu, lui Justin îi place să joace jocuri video cu cei doi băieți ai săi, hochei pe gheață și off-road în Jeep-ul său.

Timestamp-ul:

Mai mult de la Învățare automată AWS