Hoe CCC Intelligent Solutions een aangepaste benadering creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker

Hoe CCC Intelligent Solutions een aangepaste benadering creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker

Dit bericht is mede geschreven door Christopher Diaz, Sam Kinard, Jaime Hidalgo en Daniel Suarez van CCC Intelligent Solutions.

In dit bericht bespreken we hoe CCC intelligente oplossingen (KCC) gecombineerd Amazon Sage Maker met andere AWS-services om een ​​oplossing op maat te creëren die geschikt is voor het hosten van de beoogde soorten complexe kunstmatige intelligentie (AI) -modellen. CCC is een toonaangevend software-as-a-service (SaaS)-platform voor de eigendoms- en ongevallenverzekeringseconomie met een waarde van meerdere biljoenen dollars, die de activiteiten van verzekeraars, reparateurs, autofabrikanten, leveranciers van onderdelen, kredietverstrekkers en meer aandrijft. CCC-cloudtechnologie verbindt meer dan 30,000 bedrijven die bedrijfskritische workflows, handel en klantervaringen digitaliseren. Als betrouwbare leider op het gebied van AI, Internet of Things (IoT), klantervaring en netwerk- en workflowbeheer, levert CCC innovaties die het leven van mensen vooruit helpen wanneer het er het meest toe doet.

De uitdaging

CCC verwerkt jaarlijks meer dan $ 1 biljoen claimtransacties. Naarmate het bedrijf blijft evolueren om AI te integreren in zijn bestaande en nieuwe productcatalogus, vereist dit geavanceerde benaderingen voor het trainen en implementeren van multimodale machine learning (ML) ensemble-modellen voor het oplossen van complexe zakelijke behoeften. Dit is een klasse modellen die bedrijfseigen algoritmen en domeinexpertise omvat die CCC in de loop der jaren heeft aangescherpt. Deze modellen zouden in staat moeten zijn om nieuwe lagen van genuanceerde gegevens en klantregels op te nemen om enkelvoudige voorspellingsresultaten te creëren. In deze blogpost leren we hoe CCC gebruikmaakte van Amazon SageMaker-hosting en andere AWS-services om meerdere multimodale modellen in te zetten of te hosten in een ensemble-inferentiepijplijn.

Zoals te zien is in het volgende diagram, is een ensemble een verzameling van twee of meer modellen die zo zijn georkestreerd dat ze op een lineaire of niet-lineaire manier worden uitgevoerd om één enkele voorspelling te produceren. Wanneer ze lineair worden gestapeld, kunnen de individuele modellen van een ensemble direct worden aangeroepen voor voorspellingen en later worden geconsolideerd voor unificatie. Soms kunnen ensemblemodellen ook worden geïmplementeerd als een seriële inferentiepijplijn.

Voor onze use-case is de ensemble-pijplijn strikt niet-lineair, zoals weergegeven in het volgende diagram. Niet-lineaire ensemblepijplijnen zijn theoretisch direct acyclische grafieken (DAG's). Voor onze use case had deze DAG-pijplijn zowel onafhankelijke modellen die parallel worden uitgevoerd (Services B, C) als andere modellen die voorspellingen uit eerdere stappen gebruiken (Service D).

Een praktijk die voortkomt uit de onderzoeksgedreven cultuur bij CCC is de voortdurende evaluatie van technologieën die kunnen worden gebruikt om klanten meer waarde te bieden. Toen CCC voor deze ensemble-uitdaging stond, lanceerde het leiderschap een proof-of-concept (POC)-initiatief om het aanbod van AWS grondig te beoordelen om met name te ontdekken of Amazon SageMaker en andere AWS-tools de hosting van individuele AI-modellen in complexe, niet-lineaire ensembles.

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Ensemble uitgelegd: In deze context is een ensemble een groep van 2 of meer AI-modellen die samenwerken om 1 algemene voorspelling te produceren.

Vragen die het onderzoek sturen

Kan Amazon SageMaker worden gebruikt om complexe ensembles van AI-modellen te hosten die samenwerken om één algemene voorspelling te geven? Zo ja, kan SageMaker out-of-the-box andere voordelen bieden, zoals verhoogde automatisering, betrouwbaarheid, monitoring, automatisch schalen en kostenbesparende maatregelen?

Door alternatieve manieren te vinden om de AI-modellen van CCC in te zetten met behulp van de technologische vooruitgang van cloudproviders, kan CCC AI-oplossingen sneller op de markt brengen dan de concurrentie. Bovendien biedt het hebben van meer dan één implementatiearchitectuur flexibiliteit bij het vinden van de balans tussen kosten en prestaties op basis van zakelijke prioriteiten.

Op basis van onze vereisten hebben we de volgende lijst met functies afgerond als checklist voor een implementatiearchitectuur op productieniveau:

  • Ondersteuning voor complexe ensembles
  • Gegarandeerde uptime voor alle componenten
  • Aanpasbare automatische schaling voor geïmplementeerde AI-modellen
  • Behoud van invoer en uitvoer van AI-modellen
  • Gebruiksstatistieken en logboeken voor alle componenten
  • Kostenbesparende mechanismen

Aangezien de meeste AI-oplossingen van CCC afhankelijk zijn van computervisiemodellen, was er een nieuwe architectuur nodig om beeld- en videobestanden te ondersteunen waarvan de resolutie steeds hoger wordt. Er was een sterke behoefte om deze architectuur als een asynchroon model te ontwerpen en te implementeren.

Na onderzoekscycli en initiële benchmarking-inspanningen, stelde CCC vast dat SageMaker perfect geschikt was om aan de meeste van hun productievereisten te voldoen, met name de gegarandeerde uptime die SageMaker biedt voor de meeste van zijn inferentiecomponenten. De standaardfunctie van Amazon SageMaker Asynchronous Inference-eindpunten die invoer/uitvoer in Amazon S3 opslaan, vereenvoudigt de taak van het bewaren van gegevens die zijn gegenereerd uit complexe ensembles. Omdat elk AI-model wordt gehost door een eigen eindpunt, wordt het beheer van automatisch schalingsbeleid op model- of eindpuntniveau bovendien eenvoudiger. Door het beheer te vereenvoudigen, kunnen ontwikkelteams meer tijd besteden aan het verfijnen van het schalingsbeleid om overprovisioning van rekenresources tot een minimum te beperken.

Nadat we besloten hadden om door te gaan met het gebruik van SageMaker als het centrale onderdeel van de architectuur, realiseerden we ons ook dat SageMaker deel kan uitmaken van een nog grotere architectuur, aangevuld met vele andere serverloze door AWS beheerde services. Deze keuze was nodig om de hogere-orde orkestratie- en waarneembaarheidsbehoeften van deze complexe architectuur te vergemakkelijken.

Ten eerste heeft CCC een architectuur geïmplementeerd die voorspellingen asynchroon uitvoert om de beperkingen van de payload-grootte weg te nemen en het time-outrisico tijdens scenario's met veel verkeer sterk te verminderen. SageMaker asynchrone inferentie-eindpunten gekoppeld aan andere door AWS beheerde services als de belangrijkste bouwstenen. Bovendien volgt de gebruikersinterface voor het systeem het fire-and-forget-ontwerppatroon. Met andere woorden, zodra een gebruiker zijn invoer naar het systeem heeft geüpload, hoeft er niets meer te gebeuren. Ze worden op de hoogte gebracht wanneer de voorspelling beschikbaar is. De onderstaande afbeelding illustreert een overzicht op hoog niveau van onze asynchrone gebeurtenisgestuurde architectuur. Laten we in het volgende gedeelte dieper ingaan op de uitvoeringsstroom van de ontworpen architectuur.

Stapsgewijze oplossing

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Stap 1

Een klant doet een verzoek aan de AWS API Gateway eindpunt. De inhoud van het verzoek bevat de naam van de AI-dienst waarvan zij een voorspelling nodig hebben en de gewenste wijze van notificatie.

Dit verzoek wordt doorgegeven aan a Lambda functie aangeroepen nieuwe voorspelling, waarvan de belangrijkste taken zijn:

  • Controleer of de door de klant gevraagde service beschikbaar is.
  • Wijs een unieke voorspellings-ID toe aan de aanvraag. Deze voorspellings-ID kan door de gebruiker worden gebruikt om de status van de voorspelling gedurende het hele proces te controleren.
  • Genereer een Amazon S3 vooraf ondertekende URL die de gebruiker in de volgende stap moet gebruiken om de invoerinhoud van het voorspellingsverzoek te uploaden.
  • Maak een vermelding in Amazon DynamoDB met de informatie van het ontvangen verzoek.

De Lambda-functie retourneert vervolgens een antwoord via het API Gateway-eindpunt met een bericht dat de voorspellings-ID bevat die aan het verzoek is toegewezen en de vooraf ondertekende URL van Amazon S3.

Stap 2

De client uploadt de inhoud van de voorspellingsinvoer veilig naar een S3-bucket met behulp van de vooraf ondertekende URL die in de vorige stap is gegenereerd. Input-inhoud is afhankelijk van de AI-service en kan zijn samengesteld uit afbeeldingen, tabelgegevens of een combinatie van beide.

Stap 3

De S3-bucket is geconfigureerd om een ​​gebeurtenis te activeren wanneer de gebruiker de invoerinhoud uploadt. Deze melding wordt verzonden naar een Amazon SQS-wachtrij en afgehandeld door een Lambda-functie genaamd Procesinvoer. De Procesinvoer Lambda zal de informatie met betrekking tot die voorspellings-ID van DynamoDB verkrijgen om de naam te krijgen van de service waarnaar het verzoek moet worden gedaan.

Deze service kan een enkel AI-model zijn, in welk geval de Procesinvoer Lambda zal een verzoek indienen bij het SageMaker-eindpunt dat dat model host (stap 3-A), of het kan een AI-ensemble-service zijn, in welk geval de Procesinvoer Lambda zal een verzoek indienen bij de statusmachine van de stapfuncties die de ensemblelogica hosten (stap 3-B).

In beide opties (single AI-model of ensemble AI-service), wanneer de definitieve voorspelling klaar is, wordt deze opgeslagen in de juiste S3-bucket en wordt de beller op de hoogte gebracht via de methode die is gespecificeerd in stap 1 (meer details over meldingen in stap 4).

Stap 3-A

Als de voorspellings-ID is gekoppeld aan een enkel AI-model, wordt het Procesinvoer Lambda zal een verzoek indienen bij het SageMaker-eindpunt dat het model bedient. In dit systeem worden twee soorten SageMaker-eindpunten ondersteund:

  • AsynchronousDe Procesinvoer Lambda doet het verzoek aan het asynchrone eindpunt van SageMaker. De onmiddellijke reactie omvat de S3-locatie waar SageMaker de voorspellingsuitvoer zal opslaan. Dit verzoek is asynchroon, volgt het fire-and-forget-patroon en blokkeert de uitvoeringsstroom van de Lambda-functie niet.
  • GelijktijdigDe Procesinvoer Lambda doet het verzoek aan het synchrone eindpunt van SageMaker. Omdat het een synchroon verzoek is, wacht Process Input op het antwoord, en eenmaal verkregen, slaat het het op in S3 op een analoge manier als asynchrone eindpunten van SageMaker.

In beide gevallen (synchrone of asynchrone eindpunten) wordt de voorspelling op een gelijkwaardige manier verwerkt, waarbij de uitvoer wordt opgeslagen in een S3-bucket. Wanneer het asynchrone SageMaker-eindpunt een voorspelling voltooit, wordt een Amazon SNS-gebeurtenis geactiveerd. Dit gedrag wordt ook gerepliceerd voor synchrone eindpunten met aanvullende logica in de Lambda-functie.

Stap 3-B

Als de voorspellings-ID is gekoppeld aan een AI-ensemble, wordt het Procesinvoer Lambda zal het verzoek doen aan de stapfunctie die aan dat AI-ensemble is gekoppeld. Zoals hierboven vermeld, is een AI-ensemble een architectuur die is gebaseerd op een groep AI-modellen die samenwerken om één algemene voorspelling te genereren. De orkestratie van een AI-ensemble gebeurt via een stapfunctie.

De stapfunctie heeft één stap per AI-service waaruit het ensemble bestaat. Elke stap roept een Lambda-functie op die de invoer van de corresponderende AI-service voorbereidt met behulp van verschillende combinaties van de uitvoerinhoud van eerdere AI-serviceaanroepen van eerdere stappen. Vervolgens belt het naar elke AI-service die in deze context een enkel AI-model of een ander AI-ensemble kan zijn.

Dezelfde Lambda-functie, genaamd GetTransformCall gebruikt om de tussentijdse voorspellingen van een AI-ensemble af te handelen, wordt gebruikt in de hele stapfunctie, maar met verschillende invoerparameters voor elke stap. Deze invoer bevat de naam van de aan te roepen AI-service. Het bevat ook de toewijzingsdefinitie om de invoer voor de opgegeven AI-service te construeren. Dit wordt gedaan met behulp van een aangepaste syntaxis die de Lambda kan decoderen, wat kort samengevat een JSON-woordenboek is waarin de waarden moeten worden vervangen door de inhoud van de eerdere AI-voorspellingen. De Lambda zal deze eerdere voorspellingen downloaden van Amazon S3.

Bij elke stap wordt de GetTransformCall Lambda leest uit Amazon S3 de vorige outputs die nodig zijn om de input van de gespecificeerde AI-service te bouwen. Het zal dan een beroep doen op de Nieuwe voorspelling Lambda-code die eerder werd gebruikt in stap 1 en geeft de servicenaam, callback-methode ("step-functie") en token die nodig zijn voor de callback in de payload van het verzoek, die vervolgens wordt opgeslagen in DynamoDB als een nieuw voorspellingsrecord. De Lambda slaat de gecreëerde input van die stage ook op in een S3 bucket. Afhankelijk van of die fase een enkel AI-model of een AI-ensemble is, doet de Lambda een verzoek aan een SageMaker-eindpunt of een andere stapfunctie die een AI-ensemble beheert dat afhankelijk is van het bovenliggende ensemble.

Zodra het verzoek is gedaan, komt de stapfunctie in een status in afwachting totdat het het callback-token ontvangt dat aangeeft dat het naar de volgende fase kan gaan. De actie van het verzenden van een callback-token wordt uitgevoerd door een aangeroepen Lambda-functie meldingen (meer details in Stap 4) wanneer de tussentijdse voorspelling klaar is. Dit proces wordt herhaald voor elke fase die is gedefinieerd in de stapfunctie totdat de definitieve voorspelling gereed is.

Stap 4

Wanneer een voorspelling gereed is en is opgeslagen in de S3-bucket, wordt een SNS-melding geactiveerd. Deze gebeurtenis kan op verschillende manieren worden geactiveerd, afhankelijk van de stroom:

  1. Automatisch wanneer een asynchroon eindpunt van SageMaker een voorspelling voltooit.
  2. Als de allerlaatste stap van de stapfunctie.
  3. By Procesinvoer or GetTransformCall Lambda wanneer een synchroon SageMaker-eindpunt een voorspelling heeft geretourneerd.

Voor B en C maken we een SNS-bericht dat lijkt op wat A automatisch verzendt.

Een Lambda-functie genaamd meldingen is geabonneerd op dit SNS-onderwerp. De meldingen Lambda krijgt de informatie met betrekking tot de voorspellings-ID van DynamoDB, werkt het item met statuswaarde bij naar "voltooid" of "fout" en voert de nodige actie uit, afhankelijk van de callback-modus die is opgeslagen in het databaserecord.

Als deze voorspelling een tussentijdse voorspelling is van een AI-ensemble, zoals beschreven in stap 3-B, is de callback-modus die aan deze voorspelling is gekoppeld, de 'stapfunctie' en heeft het databaserecord een callback-token dat is gekoppeld aan de specifieke stap in de stap functie. De meldingen Lambda zal een oproep doen naar de AWS Step Functions API met behulp van de methode "SendTaskSuccess" of "SendTaskFailure". Hierdoor kan de stapfunctie doorgaan naar de volgende stap of uitgang.

Als de voorspelling de uiteindelijke uitvoer is van de step-functie en de callback-modus "Webhook" is [of e-mail, berichtmakelaars (Kafka), enz.], dan zullen de Lambda-meldingen de client op de gespecificeerde manier op de hoogte stellen. De gebruiker kan op elk moment de status van zijn voorspelling opvragen. Het verzoek moet de voorspellings-ID bevatten die is toegewezen in stap 1 en verwijzen naar de juiste URL binnen API Gateway om het verzoek te routeren naar de Lambda-functie genaamd .

De resultaten Lambda zal een verzoek indienen bij DynamoDB, de status van het verzoek verkrijgen en de informatie terugsturen naar de gebruiker. Als de status van de voorspelling is fout, dan worden de relevante details over de storing in het antwoord opgenomen. Als de voorspellingsstatus is succes, wordt een vooraf ondertekende S3-URL geretourneerd zodat de gebruiker de voorspellingsinhoud kan downloaden.

Resultaten

De voorlopige prestatietestresultaten zijn veelbelovend en ondersteunen CCC om de implementatie van deze nieuwe implementatiearchitectuur uit te breiden.

opmerkelijke observaties:

  • Tests tonen kracht bij het verwerken van batch- of gelijktijdige verzoeken met een hoge doorvoer en een faalpercentage van 0 procent tijdens scenario's met veel verkeer.
  • Berichtenwachtrijen zorgen voor stabiliteit binnen het systeem tijdens een plotselinge instroom van aanvragen totdat schaaltriggers extra rekenbronnen kunnen leveren. Bij een verdrievoudiging van het verkeer nam de gemiddelde latentie van verzoeken slechts met 3 procent toe.
  • De prijs van stabiliteit is een verhoogde latentie vanwege de communicatieoverhead tussen de verschillende systeemcomponenten. Wanneer het gebruikersverkeer boven de basislijndrempel ligt, kan de toegevoegde latentie gedeeltelijk worden beperkt door meer rekenresources te bieden als prestaties een hogere prioriteit hebben dan kosten.
  • Met de asynchrone inferentie-eindpunten van SageMaker kan het aantal instanties worden geschaald naar nul, terwijl het eindpunt actief blijft om verzoeken te ontvangen. Deze functionaliteit stelt implementaties in staat om door te gaan zonder rekenkosten en op te schalen vanaf nul wanneer dat nodig is in twee scenario's: service-implementaties die worden gebruikt in lagere testomgevingen en die met minimaal verkeer zonder dat onmiddellijke verwerking vereist is.

Conclusie

Zoals waargenomen tijdens het POC-proces, biedt het innovatieve ontwerp dat gezamenlijk is gemaakt door CCC en AWS een solide basis voor het gebruik van Amazon SageMaker met andere door AWS beheerde services om complexe multimodale AI-ensembles te hosten en inferentiepijplijnen effectief en naadloos te orkestreren. Door gebruik te maken van de kant-en-klare functionaliteiten van Amazon SageMaker, zoals Asynchronous Inference, heeft CCC meer mogelijkheden om zich te concentreren op gespecialiseerde bedrijfskritische taken. In de geest van de onderzoeksgedreven cultuur van CCC zal deze nieuwe architectuur blijven evolueren terwijl CCC samen met AWS het voortouw neemt bij het ontketenen van krachtige nieuwe AI-oplossingen voor klanten.

Voor gedetailleerde stappen over het maken, aanroepen en bewaken van asynchrone deductie-eindpunten, raadpleegt u de documentatie, die ook een bevat voorbeeld notebook om u op weg te helpen. Ga voor prijsinformatie naar: Amazon SageMaker-prijzen.

Voor voorbeelden van het gebruik van asynchrone inferentie met ongestructureerde gegevens zoals computervisie en natuurlijke taalverwerking (NLP), zie Voer computervisie-inferentie uit op grote video's met Amazon SageMaker asynchrone eindpunten en Verbeter hoogwaardig onderzoek met Hugging Face en Amazon SageMaker asynchrone inferentie-eindpunten, Respectievelijk.


Over de auteurs

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Christoffel Diaz is een hoofd R&D-ingenieur bij CCC Intelligent Solutions. Als lid van het R&D-team heeft hij aan verschillende projecten gewerkt, variërend van ETL-tooling, backend webontwikkeling, samenwerking met onderzoekers om AI-modellen op gedistribueerde systemen te trainen, en het faciliteren van de levering van nieuwe AI-diensten tussen onderzoeks- en operationele teams. Zijn recente focus lag op het onderzoeken van cloud tooling-oplossingen om verschillende aspecten van de levenscyclus van de AI-modelontwikkeling van het bedrijf te verbeteren. In zijn vrije tijd probeert hij graag nieuwe restaurants uit in zijn geboorteplaats Chicago en verzamelt hij zoveel LEGO-sets als er in zijn huis passen. Christopher behaalde zijn Bachelor of Science in Computer Science aan de Northeastern Illinois University.

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Winnaar Emmy Award Sam Kinard is Senior Manager Software Engineering bij CCC Intelligent Solutions. Hij is gevestigd in Austin, Texas en worstelt met het AI Runtime Team, dat verantwoordelijk is voor het leveren van de AI-producten van CCC met hoge beschikbaarheid en op grote schaal. In zijn vrije tijd geniet Sam van slaapgebrek vanwege zijn twee geweldige kinderen. Sam heeft een Bachelor of Science in Computer Science en een Bachelor of Science in Mathematics van de Universiteit van Texas in Austin.

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Jaime Hidalgo is Senior Systems Engineer bij CCC Intelligent Solutions. Voordat hij bij het AI-onderzoeksteam kwam, leidde hij de wereldwijde migratie van het bedrijf naar Microservices Architecture, waarbij hij de infrastructuur in AWS ontwierp, bouwde en automatiseerde om de implementatie van cloudproducten en -services te ondersteunen. Momenteel bouwt en ondersteunt hij een on-premises datacentercluster dat is gebouwd voor AI-training en ontwerpt en bouwt hij ook cloudoplossingen voor de toekomst van het bedrijf op het gebied van AI-onderzoek en -implementatie.

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Daniel Suarez is Data Science Engineer bij CCC Intelligent Solutions. Als lid van het AI Engineering-team werkt hij aan de automatisering en voorbereiding van AI-modellen bij de productie, evaluatie en monitoring van statistieken en andere aspecten van ML-operaties. Daniel behaalde een master in computerwetenschappen aan het Illinois Institute of Technology en een master en bachelor in telecommunicatie-engineering aan de Universidad Politecnica de Madrid.

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Arunprasath Shankar is een Senior AI/ML Specialist Solutions Architect bij AWS, die wereldwijde klanten helpt hun AI-oplossingen effectief en efficiënt in de cloud te schalen. In zijn vrije tijd kijkt Arun graag naar sciencefictionfilms en luistert hij naar klassieke muziek.

Hoe CCC Intelligent Solutions een aangepaste aanpak creëerde voor het hosten van complexe AI-modellen met behulp van Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Justin McWhirter is een Solutions Architect Manager bij AWS. Hij werkt met een team van geweldige Solutions Architects die klanten helpen een positieve ervaring te hebben bij het adopteren van het AWS-platform. Als hij niet aan het werk is, speelt Justin graag videogames met zijn twee jongens, ijshockey en offroad rijden in zijn jeep.

Tijdstempel:

Meer van AWS-machine learning