Machine learning (ML)-applicaties zijn complex om te implementeren en vereisen vaak de mogelijkheid om hyperschaalbaar te zijn, en hebben ultralage latentievereisten en strikte kostenbudgetten. Gebruiksgevallen zoals fraudedetectie, productaanbevelingen en verkeersvoorspelling zijn voorbeelden waarbij milliseconden ertoe doen en cruciaal zijn voor zakelijk succes. Er moet worden voldaan aan strikte Service Level Agreements (SLA's) en een typisch verzoek kan meerdere stappen vereisen, zoals voorverwerking, gegevenstransformatie, feature-engineering, logica voor modelselectie, modelaggregatie en nabewerking.
Het op schaal implementeren van ML-modellen met geoptimaliseerde kosten en rekenefficiëntie kan een ontmoedigende en omslachtige taak zijn. Elk model heeft zijn eigen verdiensten en afhankelijkheden op basis van de externe gegevensbronnen en de runtime-omgeving, zoals CPU/GPU-kracht van de onderliggende rekenbronnen. Een toepassing kan meerdere ML-modellen nodig hebben om één deductieverzoek te verwerken. In bepaalde scenario's kan een aanvraag over meerdere modellen stromen. Er is geen pasklare aanpak en het is belangrijk voor ML-beoefenaars om te zoeken naar beproefde methoden om terugkerende ML-hostinguitdagingen aan te pakken. Dit heeft geleid tot de evolutie van ontwerppatronen voor ML-modelhosting.
In dit bericht onderzoeken we algemene ontwerppatronen voor het bouwen van ML-applicaties Amazon Sage Maker.
Ontwerppatronen voor het bouwen van ML-applicaties
Laten we eens kijken naar de volgende ontwerppatronen die kunnen worden gebruikt voor het hosten van ML-toepassingen.
Op één model gebaseerde ML-applicaties
Dit is een geweldige optie wanneer uw ML-use-case een enkel model vereist om een verzoek te verwerken. Het model wordt geïmplementeerd op een speciale rekeninfrastructuur met de mogelijkheid om te schalen op basis van het invoerverkeer. Deze optie is ook ideaal wanneer de clienttoepassing een lage latentie (in de orde van grootte van milliseconden of seconden) heeft.
Op meerdere modellen gebaseerde ML-applicaties
Om hosting kosteneffectiever te maken, kunt u met dit ontwerppatroon meerdere modellen hosten op dezelfde tenantinfrastructuur. Meerdere ML-modellen kunnen de host- of containerresources delen, inclusief het cachen van de meest gebruikte ML-modellen in het geheugen, wat resulteert in een beter gebruik van geheugen en rekenresources. Afhankelijk van de typen modellen die u kiest om te implementeren, kan co-hosting van modellen de volgende methoden gebruiken:
- Hosting voor meerdere modellen – Met deze optie kunt u meerdere modellen hosten met behulp van een gedeelde servercontainer op één eindpunt. Deze functie is ideaal wanneer u een groot aantal vergelijkbare modellen heeft die u kunt bedienen via een gedeelde servercontainer en niet alle modellen tegelijkertijd hoeft te gebruiken.
- Hosting voor meerdere containers – Deze optie is ideaal wanneer u meerdere modellen hebt die op verschillende server-stacks draaien met vergelijkbare resourcebehoeften, en wanneer individuele modellen niet voldoende verkeer hebben om de volledige capaciteit van de eindpuntinstanties te benutten. Met multi-container hosting kunt u meerdere containers implementeren die verschillende modellen of frameworks gebruiken op één eindpunt. De modellen kunnen volledig heterogeen zijn, met hun eigen onafhankelijke serveerstapel.
- Modellensembles – In veel gevallen van productiegebruik kunnen er vaak veel stroomopwaartse modellen zijn die input leveren aan een bepaald stroomafwaarts model. Dit is waar ensembles nuttig zijn. Bij ensemblepatronen wordt de uitvoer van een of meer basismodellen gemengd om de generalisatiefout van de voorspelling. De basismodellen kunnen divers zijn en worden getraind door verschillende algoritmen. Modelensembles kunnen afzonderlijke modellen overtreffen omdat de voorspellingsfout van het model afneemt wanneer de ensemblebenadering wordt gebruikt.
Hieronder volgen veelvoorkomende gebruikssituaties van ensemblepatronen en de bijbehorende ontwerppatroondiagrammen:
- Scatter-verzamelen – In een spreidingspatroon wordt een verzoek om gevolgtrekking naar een aantal modellen geleid. Een aggregator wordt vervolgens gebruikt om de antwoorden te verzamelen en ze te destilleren tot een enkel gevolgtrekkingsantwoord. Een use-case voor beeldclassificatie kan bijvoorbeeld drie verschillende modellen gebruiken om de taak uit te voeren. Met het spreidingspatroon kunt u resultaten combineren van gevolgtrekkingen die op drie verschillende modellen zijn uitgevoerd en het meest waarschijnlijke classificatiemodel kiezen.
- Model aggregaat – In een aggregatiepatroon worden outputs van meerdere modellen gemiddeld. Voor classificatiemodellen worden de voorspellingen van meerdere modellen geëvalueerd om de klas te bepalen die de meeste stemmen heeft gekregen en wordt behandeld als de uiteindelijke output van het ensemble. Bijvoorbeeld, in een classificatieprobleem met twee klassen om een set fruit te classificeren als sinaasappels of appels, als twee modellen op een sinaasappel stemmen en één model op een appel, dan is de geaggregeerde output een sinaasappel. Aggregatie helpt onnauwkeurigheden in individuele modellen tegen te gaan en maakt de uitvoer nauwkeuriger.
- Dynamische selectie – Een ander patroon voor ensemblemodellen is het dynamisch uitvoeren van modelselectie voor de gegeven invoerattributen. Bijvoorbeeld, in een bepaalde input van afbeeldingen van fruit, als de input een sinaasappel bevat, zal model A gebruikt worden omdat het gespecialiseerd is voor sinaasappels. Als de invoer een appel bevat, wordt model B gebruikt omdat het gespecialiseerd is voor appels.
- ML-toepassingen voor seriële inferentie – Met een serieel inferentiepatroon, ook wel een inferentiepijplijn genoemd, hebben use cases vereisten om inkomende gegevens voor te verwerken voordat een vooraf getraind ML-model wordt aangeroepen voor het genereren van inferenties. Bovendien moeten de gegenereerde gevolgtrekkingen in sommige gevallen mogelijk verder worden verwerkt, zodat ze gemakkelijk kunnen worden gebruikt door downstream-toepassingen. Met een inferentiepijplijn kunt u dezelfde voorverwerkingscode hergebruiken die tijdens modeltraining is gebruikt om de deductieverzoekgegevens te verwerken die voor voorspellingen worden gebruikt.
- Bedrijfslogica – Bij de productie van ML is altijd bedrijfslogica betrokken. Zakelijke logische patronen omvatten alles wat nodig is om een ML-taak uit te voeren die geen ML-modeldeductie is. Dit omvat het laden van het model vanaf Amazon eenvoudige opslagservice (Amazon S3), bijvoorbeeld database-zoekopdrachten om de invoer te valideren, het verkrijgen van vooraf berekende functies uit de functiewinkel, enzovoort. Nadat deze bedrijfslogische stappen zijn voltooid, wordt de invoer doorgegeven aan ML-modellen.
ML-inferentie-opties
Voor modelimplementatie is het belangrijk om terug te werken vanuit uw use case. Wat is de frequentie van de voorspelling? Verwacht u live verkeer naar uw applicatie en real-time respons naar uw klanten? Heeft u veel modellen die zijn getraind voor verschillende subsets van gegevens voor dezelfde use case? Fluctueert het voorspellingsverkeer? Is latentie van gevolgtrekking een punt van zorg? Op basis van deze details kunnen alle voorgaande ontwerppatronen worden geïmplementeerd met behulp van de volgende implementatieopties:
- Real-time gevolgtrekking – Real-time inferentie is ideaal voor inferentie-workloads waarbij u real-time, interactieve vereisten met lage latentie hebt. Real-time ML-inferentieworkloads kunnen bestaan uit een op één model gebaseerde ML-toepassing, waarbij een toepassing slechts één ML-model nodig heeft om aan een enkel verzoek te voldoen, of een op meerdere modellen gebaseerde ML-toepassing, waarbij een toepassing meerdere ML-modellen nodig heeft om aan één enkel verzoek te voldoen. verzoek.
- Bijna realtime (asynchrone) gevolgtrekking – Met bijna realtime inferentie kunt u inkomende verzoeken in een wachtrij plaatsen. Dit kan worden gebruikt voor het uitvoeren van gevolgtrekkingen op invoer van honderden MB's. Het werkt in bijna realtime en stelt gebruikers in staat om de invoer te gebruiken voor inferentie en de uitvoer van het eindpunt uit een S3-bucket te lezen. Het kan vooral handig zijn in gevallen met NLP en computervisie, waar er grote payloads zijn die langere voorverwerkingstijden vereisen.
- Batch-gevolgtrekking – Batch-inferentie kan worden gebruikt om inferentie offline uit te voeren op een grote dataset. Omdat het offline draait, biedt batch-inferentie niet de laagste latentie. Hier wordt het gevolgtrekkingsverzoek verwerkt met een geplande of op een gebeurtenis gebaseerde trigger van een batchgevolgtrekkingstaak.
- Serverloze gevolgtrekking – Serverloze inferentie is ideaal voor workloads met periodes van inactiviteit tussen verkeersspurts en kan een paar seconden extra latentie (koude start) tolereren voor de eerste aanroep na een periode van inactiviteit. Bijvoorbeeld een chatbotdienst of een applicatie om formulieren te verwerken of data uit documenten te analyseren. In dit geval wilt u misschien een online deductieoptie die automatisch rekencapaciteit kan inrichten en schalen op basis van het aantal deductieverzoeken. En tijdens inactieve tijd zou het de rekencapaciteit volledig moeten kunnen uitschakelen, zodat u niet hoeft te betalen. Serverloze inferentie neemt het ongedifferentieerde zware werk van het selecteren en beheren van servers weg door automatisch rekenbronnen te starten en deze in en uit te schalen, afhankelijk van het verkeer.
Gebruik fitnessfuncties om de juiste ML-inferentieoptie te selecteren
Het is belangrijk om de juiste hostingoptie te kiezen, omdat dit van invloed is op de eindgebruikers die door uw applicaties worden weergegeven. Hiervoor lenen we het concept van fitness functies, die werd bedacht door Neal Ford en zijn collega's van AWS Partner ThoughtWorks in hun werk Evolutionaire architecturen bouwen. Fitnessfuncties bieden een prescriptieve beoordeling van verschillende hostingopties op basis van de doelstellingen van de klant. Fitnessfuncties helpen u de nodige gegevens te verkrijgen om de geplande evolutie van uw architectuur mogelijk te maken. Ze stellen meetbare waarden vast om te beoordelen hoe dicht uw oplossing bij het bereiken van uw gestelde doelen is. Fitnessfuncties kunnen en moeten worden aangepast naarmate de architectuur evolueert om een gewenst veranderingsproces te begeleiden. Dit biedt architecten een tool om hun teams te begeleiden met behoud van teamautonomie.
Er zijn vijf belangrijke fitnessfuncties waar klanten om geven als het gaat om het selecteren van de juiste ML-inferentieoptie voor het hosten van hun ML-modellen en -applicaties.
Fitness functie | Omschrijving |
Kosten |
Het implementeren en onderhouden van een ML-model en ML-applicatie op een schaalbaar framework is een cruciaal bedrijfsproces en de kosten kunnen sterk variëren, afhankelijk van de gemaakte keuzes over modelhostinginfrastructuur, hostingoptie, ML-frameworks, ML-modelkenmerken, optimalisaties, schaalbeleid, en meer. De workloads moeten de hardware-infrastructuur optimaal benutten om ervoor te zorgen dat de kosten binnen de perken blijven. Deze fitnessfunctie verwijst specifiek naar de infrastructuurkosten, die deel uitmaken van de totale eigendomskosten (TCO). De infrastructuurkosten zijn de gecombineerde kosten voor opslag, netwerk en rekenkracht. Het is ook van cruciaal belang om andere componenten van TCO te begrijpen, waaronder operationele kosten en beveiligings- en nalevingskosten. Operationele kosten zijn de gecombineerde kosten van het bedienen, bewaken en onderhouden van de ML-infrastructuur. De operationele kosten worden berekend als het aantal ingenieurs dat nodig is op basis van elk scenario en het jaarsalaris van ingenieurs, geaggregeerd over een bepaalde periode. Klanten die zelfbeheerde ML-oplossingen gebruiken, staan aan Amazon Elastic Compute-cloud (Amazone EC2), Amazon Elastic Container-service (Amazon ECS), en Amazon Elastic Kubernetes-service (Amazon EKS) moeten zelf operationele tooling bouwen. Klanten die SageMaker gebruiken, hebben aanzienlijk minder TCO. SageMaker-inferentie is een volledig beheerde service en biedt out-of-the-box mogelijkheden voor het implementeren van ML-modellen voor inferentie. U hoeft geen instanties in te richten, de status van instanties te bewaken, beveiligingsupdates of -patches te beheren, operationele statistieken uit te zenden of monitoring te bouwen voor uw ML-inferentieworkloads. Het heeft ingebouwde mogelijkheden om hoge beschikbaarheid en veerkracht te garanderen. SageMaker ondersteunt beveiliging met end-to-end encryptie in rust en onderweg, inclusief encryptie van het rootvolume en Amazon elastische blokwinkel (Amazon EBS)-volume, Amazon virtuele privécloud (Amazon VPC) ondersteuning, AWS PrivéLink, door de klant beheerde sleutels, AWS Identiteits- en toegangsbeheer (IAM) fijnmazige toegangscontrole, AWS CloudTrail audits, internode-encryptie voor training, op tags gebaseerde toegangscontrole, netwerkisolatie en Interactive Application Proxy. Al deze beveiligingsfuncties worden kant-en-klaar geleverd in SageMaker en kunnen bedrijven gedurende een periode van 3 jaar tientallen ontwikkelingsmaanden aan technische inspanning besparen. SageMaker is een HIPAA-geschikte service en is gecertificeerd onder PCI, SOC, GDPR en ISO. SageMaker ondersteunt ook FIPS-eindpunten. Voor meer informatie over TCO, zie De totale eigendomskosten van Amazon SageMaker. |
Inferentie latentie | Veel ML-modellen en -toepassingen zijn latentiekritisch, waarbij de inferentielatentie binnen de grenzen moet liggen die zijn gespecificeerd door een serviceniveaudoelstelling. Inferentielatentie is afhankelijk van een groot aantal factoren, waaronder de grootte en complexiteit van het model, het hardwareplatform, de softwareomgeving en de netwerkarchitectuur. Bij grotere en complexere modellen kan het bijvoorbeeld langer duren om gevolgtrekkingen uit te voeren. |
Doorvoer (transacties per seconde) | Voor modeldeductie is het optimaliseren van de doorvoer cruciaal voor het afstemmen van prestaties en het bereiken van de bedrijfsdoelstelling van de ML-toepassing. Omdat we snel vooruitgang boeken in alle aspecten van ML, inclusief low-level implementaties van wiskundige bewerkingen in chipontwerp, spelen hardwarespecifieke bibliotheken een grotere rol bij prestatieoptimalisatie. Verschillende factoren, zoals de grootte van de payload, netwerkhops, aard van hops, modelgrafiekfuncties, operators in het model en de CPU, GPU en het geheugenprofiel van de modelhostinginstanties zijn van invloed op de doorvoer van het ML-model. |
Configuratiecomplexiteit schalen | Het is van cruciaal belang dat de ML-modellen of -applicaties draaien op een schaalbaar raamwerk dat de vraag van wisselend verkeer aankan. Het zorgt ook voor een maximaal gebruik van CPU- en GPU-resources en voorkomt overprovisioning van compute-resources. |
Verwacht verkeerspatroon | ML-modellen of -applicaties kunnen verschillende verkeerspatronen hebben, variërend van continu real-time live verkeer tot periodieke pieken van duizenden verzoeken per seconde, en van zeldzame, onvoorspelbare verzoekpatronen tot offline batchverzoeken op grotere datasets. Achterwaarts werken vanuit het verwachte verkeerspatroon wordt aanbevolen om de juiste hostingoptie voor uw ML-model te selecteren. |
Modellen implementeren met SageMaker
SageMaker is een volledig beheerde AWS-service die elke ontwikkelaar en datawetenschapper de mogelijkheid biedt om snel ML-modellen op schaal te bouwen, trainen en implementeren. Met SageMaker-inferentie kunt u uw ML-modellen implementeren op gehoste eindpunten en deductieresultaten verkrijgen. SageMaker biedt een brede selectie aan hardware en functies om aan uw werklastvereisten te voldoen, waardoor u meer dan 70 instantietypes kunt selecteren met hardwareversnelling. SageMaker kan ook aanbevelingen doen voor het type inferentie-instantie met behulp van een nieuwe functie genaamd SageMaker Inference Recommender, voor het geval u niet zeker weet welke het meest optimaal is voor uw werklast.
U kunt implementatieopties kiezen die het beste aansluiten bij uw gebruiksscenario's, zoals real-time inferentie, asynchrone, batch- en zelfs serverloze eindpunten. Daarnaast biedt SageMaker verschillende implementatiestrategieën zoals kanarie, blauw / groen, schaduw, en A/B-testen voor modelimplementatie, samen met kosteneffectieve implementatie met eindpunten voor meerdere modellen, meerdere containers en elastische schaling. Met SageMaker-inferentie kunt u de prestatiestatistieken voor uw eindpunten bekijken in Amazon Cloud Watch, eindpunten automatisch schalen op basis van verkeer en update uw modellen in productie zonder enige beschikbaarheid te verliezen.
SageMaker biedt vier opties om uw model in te zetten, zodat u kunt beginnen met het maken van voorspellingen:
- Real-time gevolgtrekking – Dit is geschikt voor workloads met latentievereisten van milliseconden, payloads tot 6 MB en verwerkingstijden tot 60 seconden.
- Batch-transformatie – Dit is ideaal voor offline voorspellingen van grote hoeveelheden gegevens die vooraf beschikbaar zijn.
- Asynchrone gevolgtrekking – Dit is ontworpen voor workloads die geen latentievereisten van minder dan een seconde hebben, payloads tot 1 GB en verwerkingstijden tot 15 minuten.
- Serverloze gevolgtrekking – Met serverloze inferentie kunt u snel ML-modellen voor inferentie implementeren zonder dat u de onderliggende infrastructuur hoeft te configureren of te beheren. Bovendien betaalt u alleen voor de rekencapaciteit die wordt gebruikt om deductieverzoeken te verwerken, wat ideaal is voor intermitterende workloads.
Het volgende diagram kan u helpen de implementatieopties van het SageMaker-hostingmodel te begrijpen, samen met de bijbehorende fitnessfunctie-evaluaties.
Laten we elk van de implementatieopties in meer detail bekijken.
Realtime gevolgtrekking in SageMaker
SageMaker real-time inferentie wordt aanbevolen als u aanhoudend verkeer heeft en een lagere en consistente latentie nodig heeft voor uw verzoeken met payload-groottes tot 6 MB en verwerkingstijden tot 60 seconden. U implementeert uw model bij SageMaker-hostingservices en krijgt een eindpunt dat kan worden gebruikt voor gevolgtrekkingen. Deze eindpunten worden volledig beheerd en ondersteunen automatisch schalen. Realtime inferentie is populair voor use-cases waarbij u een synchrone respons met lage latentie en voorspelbare verkeerspatronen verwacht, zoals gepersonaliseerde aanbevelingen voor producten en services of use-cases voor het detecteren van transactiefraude.
Doorgaans stuurt een clienttoepassing verzoeken naar het SageMaker HTTPS-eindpunt om gevolgtrekkingen te verkrijgen van een geïmplementeerd model. U kunt meerdere varianten van een model implementeren op hetzelfde SageMaker HTTPS-eindpunt. Dit is handig voor het testen van varianten van een model in productie. Met automatisch schalen kunt u het aantal exemplaren dat voor een model is ingericht dynamisch aanpassen als reactie op veranderingen in uw werk belasting.
De volgende tabel biedt richtlijnen voor het evalueren van real-time gevolgtrekkingen van SageMaker op basis van de fitnessfuncties.
Fitness functie | Omschrijving |
Kosten |
Realtime eindpunten bieden een synchroon antwoord op deductieverzoeken. Omdat het eindpunt altijd actief is en beschikbaar is om real-time synchrone inferentiereacties te bieden, betaalt u voor het gebruik van de instantie. De kosten kunnen snel oplopen wanneer u meerdere eindpunten implementeert, vooral als de eindpunten de onderliggende instanties niet volledig benutten. Door de juiste instantie voor uw model te kiezen, zorgt u ervoor dat u de best presterende instantie tegen de laagste kosten voor uw modellen hebt. Automatisch schalen wordt aanbevolen om de capaciteit dynamisch aan te passen aan het verkeer om stabiele en voorspelbare prestaties te behouden tegen de mogelijk laagste kosten. SageMaker breidt de toegang uit tot op Graviton2 en Graviton3 gebaseerde ML-instantiefamilies. AWS Graviton processors zijn op maat gebouwd door Amazon Web Services met behulp van 64-bits Arm Neoverse-cores om de beste prijs-kwaliteitverhouding te leveren voor uw cloud-workloads die draaien op Amazon EC2. Met op Graviton gebaseerde instanties hebt u meer opties voor het optimaliseren van de kosten en prestaties bij het implementeren van uw ML-modellen op SageMaker. SageMaker ondersteunt ook Inf1-instanties, voor hoge prestaties en kosteneffectieve ML-inferentie. Met 1–16 AWS Inferentia-chips per instantie kunnen Inf1-instanties in prestaties worden geschaald en tot drie keer hogere doorvoer en tot 50% lagere kosten per gevolgtrekking leveren in vergelijking met de AWS GPU-gebaseerde instanties. Om Inf1-instanties in SageMaker te gebruiken, kunt u uw getrainde modellen compileren met behulp van Amazon SageMaker Neo en selecteer de Inf1-instanties om het gecompileerde model op SageMaker te implementeren. U kunt ook verkennen Spaarplannen voor SageMaker om te profiteren van kostenbesparingen tot 64% in vergelijking met de prijs op aanvraag. Wanneer u een eindpunt maakt, koppelt SageMaker een EBS-opslagvolume aan elke ML-rekeninstantie die het eindpunt host. De grootte van het opslagvolume is afhankelijk van het instantietype. Extra kosten voor real-time endpoints omvatten de kosten van GB-maanden van ingerichte opslag, plus GB-gegevens die zijn verwerkt in en GB-gegevens die zijn verwerkt uit de endpoint-instantie. |
Inferentie latentie | Realtime inferentie is ideaal wanneer u een permanent eindpunt nodig hebt met latentievereisten van milliseconden. Het ondersteunt payloads tot 6 MB en verwerkingstijden tot 60 seconden. |
Doorvoer |
Een ideale waarde van deductiedoorvoer is afhankelijk van factoren zoals het model, de invoergrootte van het model, de batchgrootte en het type eindpuntinstantie. Bekijk als best practice CloudWatch-statistieken voor invoerverzoeken en resourcegebruik en selecteer het juiste instantietype om een optimale doorvoer te bereiken. Een bedrijfstoepassing kan ofwel geoptimaliseerd zijn voor doorvoer of latentie. Dynamische batchverwerking kan bijvoorbeeld helpen de doorvoer voor latentiegevoelige apps te vergroten met behulp van realtime inferentie. Er zijn echter grenzen aan de batchgrootte, zonder welke de inferentielatentie zou kunnen worden beïnvloed. De inferentielatentie neemt toe naarmate u de batchgrootte vergroot om de doorvoer te verbeteren. Daarom is real-time inferentie een ideale optie voor latentiegevoelige toepassingen. SageMaker biedt opties voor asynchrone inferentie en batchtransformatie, die zijn geoptimaliseerd om een hogere doorvoer te bieden in vergelijking met real-time inferentie als de bedrijfsapplicaties een iets hogere latentie kunnen tolereren. |
Configuratiecomplexiteit schalen |
Ondersteuning voor real-time eindpunten van SageMaker automatisch schalen uit de doos. Wanneer de werklast toeneemt, brengt automatisch schalen meer instanties online. Wanneer de werklast afneemt, verwijdert automatisch schalen onnodige instanties, waardoor u uw rekenkosten kunt verlagen. Zonder automatische schaling moet u voorzieningen treffen voor piekverkeer of onbeschikbaarheid van risicomodellen. Tenzij het verkeer naar uw model gedurende de dag constant is, zal er overtollige ongebruikte capaciteit zijn. Dit leidt tot een laag gebruik en verspilling van middelen. Met SageMaker kunt u verschillende schaalopties configureren op basis van het verwachte verkeerspatroon. Eenvoudig schalen of target tracking schalen is ideaal wanneer u wilt schalen op basis van een specifieke CloudWatch-statistiek. U kunt dit doen door een specifieke metriek te kiezen en drempelwaarden in te stellen. De aanbevolen statistieken voor deze optie zijn gemiddeld Als u geavanceerde configuratie nodig heeft, kunt u een beleid voor stapsgewijze schaling instellen om het aantal te schalen instanties dynamisch aan te passen op basis van de grootte van de alarminbreuk. Dit helpt u bij het configureren van een agressievere reactie wanneer de vraag een bepaald niveau bereikt. U kunt een geplande schaaloptie gebruiken als u weet dat de vraag een bepaald schema volgt in de dag, week, maand of jaar. Dit helpt u bij het specificeren van een eenmalig schema of een terugkerend schema of cron-expressies samen met begin- en eindtijden, die de grenzen vormen van wanneer de automatische schalingsactie start en stopt. Raadpleeg voor meer informatie Inferentie-eindpunten voor automatisch schalen configureren in Amazon SageMaker en Laadtest en optimaliseer een Amazon SageMaker-eindpunt met behulp van automatisch schalen. |
Verkeerspatroon | Realtime inferentie is ideaal voor workloads met een continu of regelmatig verkeerspatroon. |
Asynchrone gevolgtrekking in SageMaker
SageMaker asynchrone inferentie is een nieuwe mogelijkheid in SageMaker die inkomende verzoeken in een wachtrij plaatst en asynchroon verwerkt. Deze optie is ideaal voor aanvragen met grote payloads (tot 1 GB), lange verwerkingstijden (tot 15 minuten) en near-real-time latentievereisten. Voorbeelden van workloads voor asynchrone inferentie zijn onder meer zorgbedrijven die biomedische afbeeldingen met een hoge resolutie of video's zoals echocardiogrammen verwerken om afwijkingen op te sporen. Deze applicaties ontvangen bursts van inkomend verkeer op verschillende tijdstippen van de dag en vereisen bijna realtime verwerking tegen lage kosten. De verwerkingstijden voor deze verzoeken kunnen variëren in de orde van minuten, waardoor het niet meer nodig is om real-time gevolgtrekkingen uit te voeren. In plaats daarvan kunnen invoerpayloads asynchroon worden verwerkt vanuit een objectopslag zoals Amazon S3 met automatische wachtrijen en een vooraf gedefinieerde gelijktijdigheidsdrempel. Na verwerking plaatst SageMaker het gevolgtrekkingsantwoord op de eerder geretourneerde Amazon S3-locatie. U kunt er optioneel voor kiezen om succes- of foutmeldingen te ontvangen via Amazon eenvoudige meldingsservice (Amazone SNS).
De volgende tabel biedt richtlijnen voor het evalueren van asynchrone gevolgtrekkingen van SageMaker op basis van de fitnessfuncties.
Fitness functie | Omschrijving |
Kosten | Asynchrone inferentie is een uitstekende keuze voor kostengevoelige workloads met grote payloads en burst-verkeer. Met asynchrone inferentie kunt u kosten besparen door het aantal instanties automatisch naar nul te schalen wanneer er geen verzoeken zijn om te verwerken, zodat u alleen betaalt wanneer uw eindpunt verzoeken verwerkt. Verzoeken die worden ontvangen wanneer er nul exemplaren zijn, worden in de wachtrij geplaatst voor verwerking nadat het eindpunt is opgeschaald. |
Inferentie latentie | Asynchrone inferentie is ideaal voor near-real-time latentievereisten. De verzoeken worden in een wachtrij geplaatst en verwerkt zodra de rekenkracht beschikbaar is. Dit resulteert doorgaans in tientallen milliseconden latentie. |
Doorvoer | Asynchrone inferentie is ideaal voor gebruiksscenario's die niet latentiegevoelig zijn, omdat applicaties geen concessies hoeven te doen aan doorvoer. Aanvragen worden niet verwijderd tijdens pieken in het verkeer, omdat het asynchrone deductie-eindpunt verzoeken in de wachtrij plaatst in plaats van ze te laten vallen. |
Configuratiecomplexiteit schalen |
SageMaker ondersteunt automatisch schalen voor asynchroon eindpunt. In tegenstelling tot real-time gehoste eindpunten, ondersteunen asynchrone inferentie-eindpunten het verkleinen van instanties naar nul door de minimale capaciteit in te stellen op nul. Voor asynchrone eindpunten raadt SageMaker u ten zeerste aan om een beleidsconfiguratie te maken voor het volgen van doelen voor een geïmplementeerd model (variant). Voor use-cases die een koude start van enkele minuten kunnen verdragen, kunt u optioneel het aantal endpoint-instanties terugschalen naar nul wanneer er geen openstaande verzoeken zijn en een back-up opschalen wanneer nieuwe verzoeken binnenkomen, zodat u alleen betaalt voor de duur dat de eindpunten verwerken actief verzoeken. |
Verkeerspatroon | Asynchrone eindpunten plaatsen binnenkomende aanvragen in een wachtrij en verwerken deze asynchroon. Ze zijn een goede optie voor intermitterende of onregelmatige verkeerspatronen. |
Batchgevolgtrekking in SageMaker
SageMaker-batchtransformatie is ideaal voor offline voorspellingen van grote hoeveelheden gegevens die vooraf beschikbaar zijn. De batchtransformatiefunctie is een krachtige en snelle methode voor het transformeren van gegevens en het genereren van gevolgtrekkingen. Het is ideaal voor scenario's waarin u te maken heeft met grote hoeveelheden gegevens, geen latentie van minder dan een seconde nodig heeft of de trainingsgegevens zowel moet voorbewerken als transformeren. Klanten in bepaalde domeinen, zoals reclame en marketing of gezondheidszorg, moeten vaak offline voorspellingen doen op hyperscale datasets waar hoge doorvoer vaak het doel van de use case is en latentie geen probleem is.
Wanneer een batch-transformatietaak start, initialiseert SageMaker rekeninstanties en verdeelt de gevolgtrekkingswerklast tussen hen. Het geeft de middelen vrij wanneer de taken zijn voltooid, dus u betaalt alleen voor wat tijdens de uitvoering van uw taak is gebruikt. Wanneer de taak is voltooid, slaat SageMaker de voorspellingsresultaten op in een S3-bucket die u opgeeft. Batch-inferentietaken zijn meestal goede kandidaten voor horizontaal schalen. Elke werknemer binnen een cluster kan met een andere subset van gegevens werken zonder dat informatie met andere werknemers hoeft te worden uitgewisseld. AWS biedt meerdere opslag- en rekenopties die horizontaal schalen mogelijk maken. Voorbeelden van workloads voor SageMaker-batchtransformatie omvatten offline toepassingen zoals banktoepassingen voor het voorspellen van klantverloop waarbij een offline taak kan worden gepland om periodiek te worden uitgevoerd.
De volgende tabel biedt richtlijnen voor het evalueren van SageMaker-batchtransformatie op basis van de fitnessfuncties.
Fitness functie | Omschrijving |
Kosten | Met SageMaker-batchtransformatie kunt u voorspellingen uitvoeren op grote of kleine batchgegevenssets. U betaalt voor het instantietype dat u kiest, op basis van de gebruiksduur. SageMaker beheert de levering van resources aan het begin van de taak en geeft deze vrij wanneer de taak is voltooid. Er zijn geen extra kosten voor gegevensverwerking. |
Inferentie latentie | U kunt op gebeurtenissen gebaseerde of geplande aanroepen gebruiken. De latentie kan variëren, afhankelijk van de grootte van de inferentiegegevens, de gelijktijdigheid van taken, de complexiteit van het model en de capaciteit van de rekeninstantie. |
Doorvoer |
Batchtransformatietaken kunnen worden uitgevoerd op een reeks datasets, van petabytes aan data tot zeer kleine datasets. Het is niet nodig om grotere datasets te verkleinen tot kleine stukjes data. U kunt batchtransformatietaken versnellen door optimale waarden te gebruiken voor parameters zoals MaxPayloadInMB, MaxConcurrentTransformsof BatchStrategie. De ideale waarde voor Batchverwerking kan de doorvoer verhogen en uw bronnen optimaliseren, omdat het helpt bij het voltooien van een groter aantal gevolgtrekkingen in een bepaalde tijd, ten koste van latentie. Om de modelimplementatie te optimaliseren voor een hogere doorvoer, is de algemene richtlijn om de batchgrootte te vergroten totdat de doorvoer afneemt. |
Configuratiecomplexiteit schalen | SageMaker-batchtransformatie wordt gebruikt voor offline gevolgtrekkingen die niet latentiegevoelig zijn. |
Verkeerspatroon | Voor offline deductie wordt een batchtransformatietaak gepland of gestart met behulp van een gebeurtenisgebaseerde trigger. |
Serverloze gevolgtrekking in SageMaker
Met SageMaker serverloze inferentie kunt u ML-modellen voor inferentie implementeren zonder dat u de onderliggende infrastructuur hoeft te configureren of te beheren. Op basis van het aantal inferentieverzoeken dat uw model ontvangt, voorziet SageMaker serverloze inferentie automatisch in, schaalt en schakelt rekencapaciteit uit. Als gevolg hiervan betaalt u alleen voor de rekentijd om uw inferentiecode uit te voeren en de hoeveelheid verwerkte gegevens, niet voor inactieve tijd. U kunt de ingebouwde algoritmen en ML-framework-serverende containers van SageMaker gebruiken om uw model te implementeren op een serverloos inferentie-eindpunt of ervoor kiezen om uw eigen container mee te nemen. Als het verkeer voorspelbaar en stabiel wordt, kunt u eenvoudig updaten van een serverloos inferentie-eindpunt naar een real-time SageMaker-eindpunt zonder dat u wijzigingen in uw containerimage hoeft aan te brengen. Met serverloze inferentie profiteert u ook van andere SageMaker-functies, waaronder ingebouwde statistieken zoals het aantal oproepen, fouten, latentie, hoststatistieken en fouten in CloudWatch.
De volgende tabel biedt richtlijnen voor het evalueren van serverloze inferentie van SageMaker op basis van de fitnessfuncties.
Fitness functie | Omschrijving |
Kosten | Met een pay-as-you-run-model is serverloze inferentie een kosteneffectieve optie als u onregelmatige of intermitterende verkeerspatronen hebt. U betaalt alleen voor de duur dat het eindpunt het verzoek verwerkt en u kunt dus kosten besparen als het verkeerspatroon intermitterend is. |
Inferentie latentie |
Serverloze eindpunten bieden een lage inferentielatentie (in de orde van milliseconden tot seconden), met de mogelijkheid om direct te schalen van tientallen naar duizenden inferenties binnen enkele seconden op basis van de gebruikspatronen, waardoor het ideaal is voor ML-toepassingen met intermitterend of onvoorspelbaar verkeer. Omdat serverloze eindpunten op verzoek rekenresources inrichten, kan uw eindpunt een paar seconden extra latentie (koude start) ervaren voor de eerste aanroep na een periode van inactiviteit. De koude starttijd is afhankelijk van de grootte van uw model, hoe lang het duurt om uw model te downloaden en de opstarttijd van uw container. |
Doorvoer | Bij het configureren van uw serverloze eindpunt kunt u de geheugengrootte en het maximale aantal gelijktijdige aanroepen opgeven. SageMaker serverloze inferentie wijst automatisch rekenbronnen toe in verhouding tot het geheugen dat u selecteert. Als u een grotere geheugengrootte kiest, heeft uw container toegang tot meer vCPU's. Als algemene regel geldt dat de geheugengrootte minstens zo groot moet zijn als de grootte van uw model. De geheugengroottes die u kunt kiezen zijn 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB en 6144 MB. Ongeacht de geheugengrootte die u kiest, serverloze endpoints hebben 5 GB tijdelijke schijfopslag beschikbaar. |
Configuratiecomplexiteit schalen | Serverloze endpoints starten automatisch rekenresources en schalen ze in en uit afhankelijk van het verkeer, waardoor het niet meer nodig is om instantietypes te kiezen of schalingsbeleid te beheren. Dit neemt het ongedifferentieerde zware werk van het selecteren en beheren van servers weg. |
Verkeerspatroon | Serverloze inferentie is ideaal voor workloads met onregelmatige of intermitterende verkeerspatronen. |
Modelleer hostingontwerppatronen in SageMaker
SageMaker-inferentie-eindpunten gebruiken Docker-containers voor het hosten van ML-modellen. Met containers kunt u software verpakken in gestandaardiseerde eenheden die consistent worden uitgevoerd op elk platform dat Docker ondersteunt. Dit zorgt voor overdraagbaarheid tussen platforms, onveranderlijke infrastructuurimplementaties en eenvoudiger wijzigingsbeheer en CI/CD-implementaties. SageMaker biedt vooraf gebouwde beheerde containers voor populaire frameworks zoals Apache MXNet, TensorFlow, PyTorch, Sklearn en Hugging Face. Raadpleeg voor een volledige lijst met beschikbare SageMaker-containerimages Beschikbare Deep Learning Containers-afbeeldingen. In het geval dat SageMaker geen ondersteunde container heeft, kunt u ook uw eigen container (BYOC) bouwen en uw eigen aangepaste image pushen, waarbij u de afhankelijkheden installeert die nodig zijn voor uw model.
Om een model op SageMaker te implementeren, hebt u een container nodig (door SageMaker beheerde framework-containers of BYOC) en een rekeninstantie om de container te hosten. SageMaker ondersteunt meerdere geavanceerde opties voor algemene ontwerppatronen voor het hosten van ML-modellen, waarbij modellen kunnen worden gehost op een enkele container of gezamenlijk kunnen worden gehost op een gedeelde container.
Een real-time ML-toepassing kan één model of meerdere modellen gebruiken om één voorspellingsverzoek te verwerken. Het volgende diagram toont verschillende inferentiescenario's voor een ML-toepassing.
Laten we een geschikte SageMaker-hostingoptie onderzoeken voor elk van de voorgaande inferentiescenario's. U kunt de fitnessfuncties raadplegen om te beoordelen of dit de juiste optie is voor de gegeven gebruikssituatie.
Het hosten van een op één model gebaseerde ML-applicatie
Er zijn verschillende opties om op één model gebaseerde ML-applicaties te hosten met behulp van SageMaker-hostingservices, afhankelijk van het implementatiescenario.
Eindpunt met één model
SageMaker-eindpunten met één model stellen u in staat om één model te hosten op een container die wordt gehost op speciale instanties voor lage latentie en hoge doorvoer. Deze eindpunten worden volledig beheerd en ondersteunen automatisch schalen. U kunt het eindpunt met één model configureren als een ingericht eindpunt waar u de configuratie van de eindpuntinfrastructuur doorgeeft, zoals het instantietype en aantal, of een serverloos eindpunt waar SageMaker automatisch rekenbronnen start en deze in- en uitschaalt afhankelijk van het verkeer, waardoor de noodzaak wordt geëlimineerd om instantietypen te kiezen of schalingsbeleid te beheren. Serverloze endpoints zijn voor toepassingen met intermitterend of onvoorspelbaar verkeer.
Het volgende diagram toont scenario's voor eindpuntafleiding met één model.
De volgende tabel bevat richtlijnen voor het evalueren van fitnessfuncties voor een ingericht eindpunt met één model. Raadpleeg de serverloze eindpuntsectie in dit bericht voor evaluaties van serverloze eindpuntfitnessfuncties.
Fitness functie | Omschrijving |
Kosten | U betaalt voor het gebruik van het instantietype dat u kiest. Omdat het endpoint altijd actief en beschikbaar is, kunnen de kosten snel oplopen. Door de juiste instantie voor uw model te kiezen, zorgt u ervoor dat u de best presterende instantie tegen de laagste kosten voor uw modellen hebt. Automatisch schalen wordt aanbevolen om de capaciteit dynamisch aan te passen aan het verkeer om stabiele en voorspelbare prestaties te behouden tegen de mogelijk laagste kosten. |
Inferentie latentie | Een eindpunt met één model biedt real-time, interactieve, synchrone inferentie met latentievereisten van milliseconden. |
Doorvoer | De doorvoer kan worden beïnvloed door verschillende factoren, zoals de invoergrootte van het model, de batchgrootte, het type eindpuntexemplaar, enzovoort. Het wordt aanbevolen om CloudWatch-statistieken voor invoerverzoeken en resourcegebruik te bekijken en het juiste instantietype te selecteren om een optimale doorvoer te bereiken. SageMaker biedt functies voor het beheren van bronnen en het optimaliseren van de inferentieprestaties bij het implementeren van ML-modellen. Jij kan optimaliseer de modelprestaties met Neo, of gebruik Inf1-instanties voor een betere doorvoer van uw door SageMaker gehoste modellen met behulp van een GPU-instantie voor uw eindpunt. |
Configuratiecomplexiteit schalen | Automatisch schalen wordt standaard ondersteund. SageMaker raadt aan een geschikt te kiezen schaalconfiguratie door uit te voeren belasting testen. |
Verkeerspatroon | Een eindpunt met één model is ideaal voor workloads met voorspelbare verkeerspatronen. |
Co-hosting van meerdere modellen
Als u te maken heeft met een groot aantal modellen, kan het implementeren van elk model op een afzonderlijk eindpunt met een speciale container en instantie leiden tot een aanzienlijke kostenstijging. Bovendien wordt het ook moeilijk om zoveel modellen in productie te beheren, met name wanneer u niet alle modellen tegelijkertijd hoeft aan te roepen, maar ze toch altijd beschikbaar wilt hebben. Door meerdere modellen samen te hosten op dezelfde onderliggende rekenresources, wordt het eenvoudig om ML-implementaties op schaal te beheren en worden uw hostingkosten verlaagd door meer gebruik van het eindpunt en de onderliggende rekenresources. SageMaker ondersteunt geavanceerde co-hostingopties voor modellen, zoals multi-model endpoint (MME) voor homogene modellen en multi-container endpoint (MCE) voor heterogene modellen. Homogene modellen gebruiken hetzelfde ML-framework op een gedeelde servicecontainer, terwijl u met heterogene modellen meerdere dienende containers kunt implementeren die verschillende modellen of frameworks gebruiken op één eindpunt.
Het volgende diagram toont model co-hostingopties met behulp van SageMaker.
SageMaker-eindpunten voor meerdere modellen
SageMaker MME's kunt u meerdere modellen hosten met behulp van een gedeelde servercontainer op één eindpunt. Dit is een schaalbare en kosteneffectieve oplossing om een groot aantal modellen in te zetten die inspelen op dezelfde use case, hetzelfde raamwerk of deductielogica. MME's kunnen verzoeken dynamisch verwerken op basis van het model dat door de beller wordt aangeroepen. Het vermindert ook de implementatieoverhead omdat SageMaker het laden van modellen in het geheugen beheert en ze schaalt op basis van de verkeerspatronen ernaartoe. Deze functie is ideaal wanneer u een groot aantal vergelijkbare modellen heeft die u kunt bedienen via een gedeelde servercontainer en niet alle modellen tegelijkertijd hoeft te gebruiken. Eindpunten met meerdere modellen maken ook time-sharing van geheugenresources voor al uw modellen mogelijk. Dit werkt het beste wanneer de modellen qua grootte en aanroeplatentie redelijk vergelijkbaar zijn, waardoor MME's de instanties effectief kunnen gebruiken in alle modellen. SageMaker MME's ondersteunen het hosten van modellen met zowel CPU- als GPU-ondersteuning. Door GPU-ondersteunde modellen te gebruiken, kunt u de implementatiekosten van uw model verlagen door meer gebruik te maken van het eindpunt en de onderliggende versnelde rekeninstanties. Voor een real-world use case van MME's, zie Hoe machine learning-inferentie te schalen voor SaaS-gebruikscasussen met meerdere tenants.
De volgende tabel geeft richtlijnen voor het evalueren van de fitnessfuncties voor MME's.
Fitness functie | Omschrijving |
Kosten |
MME's maken het gebruik van een gedeelde servercontainer mogelijk om duizenden modellen op één eindpunt te hosten. Dit verlaagt de hostingkosten aanzienlijk door het gebruik van endpoints te verbeteren in vergelijking met het gebruik van single-model endpoints. Als u bijvoorbeeld 10 modellen wilt implementeren met behulp van een ml.c5.large-instantie, gebaseerd op SageMaker-prijzen, zijn de kosten van het hebben van 10 persistente endpoints met één model: 10 * $ 0.102 = $ 1.02 per uur. Terwijl we met één MME die de 10 modellen host, 10 keer zoveel kosten besparen: 1 * $ 0.102 = $ 0.102 per uur. |
Inferentie latentie |
MME's cachen standaard veelgebruikte modellen in het geheugen en op schijf om inferentie met lage latentie te bieden. De in de cache opgeslagen modellen worden alleen van de schijf verwijderd of verwijderd wanneer een container onvoldoende geheugen of schijfruimte heeft om een nieuw gericht model te huisvesten. MME's maken het lui laden van modellen mogelijk, wat betekent dat modellen in het geheugen worden geladen wanneer ze voor de eerste keer worden aangeroepen. Dit optimaliseert het geheugengebruik; het veroorzaakt echter pieken in de reactietijd bij de eerste belasting, wat resulteert in een probleem met een koude start. Daarom zijn MME's ook zeer geschikt voor scenario's die af en toe koude start-gerelateerde latentieboetes kunnen tolereren die optreden bij het aanroepen van zelden gebruikte modellen. Om te voldoen aan de latency- en doorvoerdoelen van ML-applicaties, hebben GPU-instances de voorkeur boven CPU-instances (gezien de rekenkracht die GPU's bieden). Met MME-ondersteuning voor GPU kunt u duizenden deep learning-modellen implementeren achter één SageMaker-eindpunt. MME's kunnen meerdere modellen op een GPU-kern uitvoeren, GPU-instanties achter een eindpunt over meerdere modellen delen en modellen dynamisch laden en ontladen op basis van het binnenkomende verkeer. Hiermee kunt u aanzienlijk kosten besparen en de beste prijs-kwaliteitverhouding behalen. Als uw use case aanzienlijk hogere transacties per seconde (TPS) of latentievereisten vereist, raden we u aan de modellen op speciale eindpunten te hosten. |
Doorvoer |
Een ideale waarde van MME-inferentiedoorvoer is afhankelijk van factoren zoals het model, de grootte van de payload en het type endpoint-instantie. Met een grotere hoeveelheid instantiegeheugen kunt u meer modellen laden en klaar hebben om gevolgtrekkingsverzoeken te verwerken. U hoeft geen tijd te verspillen aan het laden van het model. Met een groter aantal vCPU's kunt u tegelijkertijd meer unieke modellen aanroepen. MME's laden en ontladen het model dynamisch van en naar het instantiegeheugen, wat van invloed kan zijn op de I/O-prestaties. SageMaker MME's met GPU werken met NVIDIA Triton Inference-server, een open-source inference serving-software die het inference serving-proces vereenvoudigt en hoge inference-prestaties biedt. SageMaker laadt het model in het geheugen van de NVIDIA Triton-container op een GPU-versnelde instantie en bedient het gevolgtrekkingsverzoek. De GPU-kern wordt gedeeld door alle modellen in een instantie. Als het model al in het containergeheugen is geladen, worden de volgende verzoeken sneller verwerkt omdat SageMaker het niet hoeft te downloaden en opnieuw te laden. Een goede prestatietest en -analyse wordt aanbevolen bij succesvolle productie-implementaties. SageMaker biedt CloudWatch-statistieken voor eindpunten met meerdere modellen, zodat u het gebruik van het eindpunt en de hitfrequentie van de cache kunt bepalen om uw eindpunt te helpen optimaliseren. |
Configuratiecomplexiteit schalen | SageMaker-eindpunten voor meerdere modellen bieden volledige ondersteuning voor automatisch schalen, waarmee replica's van modellen worden beheerd om ervoor te zorgen dat modellen worden geschaald op basis van verkeerspatronen. Het wordt echter aanbevolen om de juiste belasting te testen om de optimale grootte van de instanties voor het automatisch schalen van het eindpunt te bepalen. De juiste dimensionering van de MME-vloot is belangrijk om te voorkomen dat er te veel modellen worden gelost. Het laden van honderden modellen op een paar grotere instanties kan in sommige gevallen leiden tot beperking, en het gebruik van meer en kleinere instanties kan de voorkeur hebben. Om te profiteren van geautomatiseerde modelschaling in SageMaker, moet u ervoor zorgen dat u dat hebt gedaan instantie automatisch schalen instellen om extra instantiecapaciteit in te richten. Stel uw schalingsbeleid op eindpuntniveau in met aangepaste parameters of aanroepen per minuut (aanbevolen) om meer instanties toe te voegen aan het eindpuntpark. De aanroepfrequenties die worden gebruikt om een automatische schaalgebeurtenis te activeren, zijn gebaseerd op de verzamelde reeks voorspellingen voor de volledige reeks modellen die door het eindpunt worden bediend. |
Verkeerspatroon | MME's zijn ideaal wanneer u een groot aantal modellen van vergelijkbare grootte heeft die u kunt bedienen via een gedeelde serveercontainer en niet alle modellen tegelijkertijd hoeft te gebruiken. |
SageMaker eindpunten met meerdere containers
SageMaker MCE's ondersteuning voor het implementeren van maximaal 15 containers die verschillende modellen of frameworks gebruiken op een enkel eindpunt, en het onafhankelijk of achtereenvolgens aanroepen van deze containers voor low-latency inferentie en kostenbesparingen. De modellen kunnen volledig heterogeen zijn, met hun eigen onafhankelijke serveerstapel. Het veilig hosten van meerdere modellen van verschillende frameworks op één instantie kan u tot 90% kosten besparen.
De MCE-aanroeppatronen zijn als volgt:
- Inferentiepijplijnen – Containers in een MME kunnen worden aangeroepen in een lineaire volgorde, ook wel bekend als een seriële inferentiepijplijn. Ze worden meestal gebruikt om voorverwerking, modelinferentie en nabewerking te scheiden in onafhankelijke containers. De uitvoer van de huidige container wordt als invoer doorgegeven aan de volgende. Ze worden weergegeven als een enkel pijplijnmodel in SageMaker. Een inferentiepijplijn kan worden ingezet als een MME, waarbij een van de containers in de pijplijn dynamisch verzoeken kan verwerken op basis van het aangeroepen model.
- Directe aanroeping - Met directe aanroeping, kan een verzoek worden verzonden naar een specifieke inferentiecontainer die wordt gehost op een MCE.
De volgende tabel biedt richtlijnen voor het evalueren van de fitnessfuncties voor MCE's.
Fitness functie | Omschrijving |
Kosten | Met MCE's kunt u tot 15 verschillende ML-containers op één eindpunt uitvoeren en deze onafhankelijk aanroepen, waardoor u kosten bespaart. Deze optie is ideaal wanneer u meerdere modellen hebt die draaien op verschillende serving-stacks met vergelijkbare resourcebehoeften, en wanneer individuele modellen niet voldoende verkeer hebben om de volledige capaciteit van de eindpuntinstanties te benutten. MCE's zijn daarom kosteneffectiever dan endpoints met één model. MCE's bieden synchrone inferentierespons, wat betekent dat het eindpunt altijd beschikbaar is en dat u betaalt voor de uptime van de instantie. De kosten kunnen oplopen, afhankelijk van het aantal en het type instanties. |
Inferentie latentie | MCE's zijn ideaal voor het uitvoeren van ML-apps met verschillende ML-frameworks en algoritmen voor elk model die niet vaak worden gebruikt, maar toch low-latency inferentie vereisen. De modellen zijn altijd beschikbaar voor inferentie met lage latentie en er is geen probleem met een koude start. |
Doorvoer | MCE's zijn beperkt tot maximaal 15 containers op een eindpunt met meerdere containers en GPU-inferentie wordt niet ondersteund vanwege bronconflicten. Voor eindpunten met meerdere containers die de modus voor directe aanroep gebruiken, biedt SageMaker niet alleen metrische gegevens op instantieniveau zoals bij andere algemene eindpunten, maar ondersteunt het ook metrische gegevens per container. Bekijk als best practice CloudWatch-statistieken voor invoerverzoeken en resourcegebruik, en selecteer het juiste instantietype om een optimale doorvoer te bereiken. |
Configuratiecomplexiteit schalen | MCE's ondersteunen automatisch schalen. Om automatisch schalen te configureren, wordt echter aanbevolen dat het model in elke container een vergelijkbaar CPU-gebruik en latentie vertoont bij elk deductieverzoek. Dit wordt aanbevolen omdat als het verkeer naar het eindpunt met meerdere containers verschuift van een model met laag CPU-gebruik naar een model met hoog CPU-gebruik, maar het algehele gespreksvolume hetzelfde blijft, het eindpunt niet uitschaalt en er mogelijk niet genoeg instanties zijn om alle verzoeken aan het hoge CPU-gebruiksmodel af te handelen. |
Verkeerspatroon | MCE's zijn ideaal voor workloads met continue of regelmatige verkeerspatronen, voor hostingmodellen in verschillende frameworks (zoals TensorFlow, PyTorch of Sklearn) die mogelijk niet voldoende verkeer hebben om de volledige capaciteit van een endpoint-instantie te verzadigen. |
Het hosten van een op meerdere modellen gebaseerde ML-applicatie
Veel zakelijke toepassingen moeten meerdere ML-modellen gebruiken om één voorspellingsverzoek aan hun consumenten te kunnen leveren. Bijvoorbeeld een retailbedrijf dat aanbevelingen wil doen aan zijn gebruikers. De ML-toepassing in deze use case wil mogelijk verschillende aangepaste modellen gebruiken voor het aanbevelen van verschillende productcategorieën. Als het bedrijf personalisatie aan de aanbevelingen wil toevoegen door individuele gebruikersinformatie te gebruiken, neemt het aantal aangepaste modellen verder toe. Het hosten van elk aangepast model op een afzonderlijke rekeninstantie is niet alleen onbetaalbaar, maar leidt ook tot onderbenutting van de hostingresources als niet alle modellen vaak worden gebruikt. SageMaker biedt efficiënte hostingopties voor op meerdere modellen gebaseerde ML-applicaties.
Het volgende diagram toont hostingopties voor meerdere modellen voor één eindpunt met behulp van SageMaker.
Seriële inferentiepijplijn
Een inferentiepijplijn is een SageMaker-model dat is samengesteld uit een lineaire reeks van 2-15 containers die verzoeken om inferenties op gegevens verwerken. U gebruikt een inferentiepijplijn om elke combinatie van vooraf getrainde SageMaker ingebouwde algoritmen en uw eigen aangepaste algoritmen verpakt in Docker-containers te definiëren en te implementeren. U kunt een inferentiepijplijn gebruiken om preprocessing, voorspellingen en postprocessing data science-taken te combineren. De uitvoer van de ene container wordt als invoer doorgegeven aan de volgende. Bij het definiëren van de containers voor een pijplijnmodel geeft u ook de volgorde op waarin de containers worden uitgevoerd. Ze worden weergegeven als een enkel pijplijnmodel in SageMaker. De inferentiepijplijn kan worden ingezet als een MME, waarbij een van de containers in de pijplijn dynamisch verzoeken kan verwerken op basis van het model dat wordt aangeroepen. Je kunt ook een batch-transformatie taak met een inferentiepijplijn. Inferentiepijplijnen worden volledig beheerd.
De volgende tabel bevat richtlijnen voor het evalueren van de fitnessfuncties voor ML-modelhosting met behulp van een seriële inferentiepijplijn.
Fitness functie | Omschrijving |
Kosten | Met een seriële inferentiepijplijn kunt u maximaal 15 verschillende ML-containers op één eindpunt uitvoeren, wat leidt tot kosteneffectiviteit bij het hosten van de inferentiecontainers. Er zijn geen extra kosten verbonden aan het gebruik van deze functie. U betaalt alleen voor de instances die op een endpoint draaien. De kosten kunnen oplopen, afhankelijk van het aantal en het type instanties. |
Inferentie latentie | Wanneer een ML-toepassing wordt geïmplementeerd als een inferentiepijplijn, verlaten de gegevens tussen verschillende modellen de containerruimte niet. Functieverwerking en gevolgtrekkingen verlopen met een lage latentie omdat de containers zich op dezelfde EC2-instanties bevinden. |
Doorvoer | Binnen een inferentiepijplijnmodel behandelt SageMaker aanroepen als een reeks HTTP-verzoeken. De eerste container in de pijplijn handelt het eerste verzoek af, vervolgens wordt het tussenliggende antwoord als verzoek naar de tweede container verzonden, enzovoort, voor elke container in de pijplijn. SageMaker retourneert het laatste antwoord aan de klant. De doorvoer is afhankelijk van factoren zoals het model, de invoergrootte van het model, de batchgrootte en het type eindpuntinstantie. Bekijk als best practice CloudWatch-statistieken voor invoerverzoeken en resourcegebruik en selecteer het juiste instantietype om een optimale doorvoer te bereiken. |
Configuratiecomplexiteit schalen | Seriële inferentiepijplijnen ondersteunen automatisch schalen. Om automatisch schalen te configureren, wordt echter aanbevolen dat het model in elke container een vergelijkbaar CPU-gebruik en latentie vertoont bij elk deductieverzoek. Dit wordt aanbevolen omdat als het verkeer naar het eindpunt met meerdere containers verschuift van een model met laag CPU-gebruik naar een model met hoog CPU-gebruik, maar het algehele gespreksvolume hetzelfde blijft, het eindpunt niet uitschaalt en er mogelijk niet genoeg instanties zijn om alle verzoeken afhandelen naar het hoge CPU-gebruiksmodel. |
Verkeerspatroon |
Seriële inferentiepijplijnen zijn ideaal voor voorspelbare verkeerspatronen met modellen die opeenvolgend op hetzelfde eindpunt worden uitgevoerd. |
Modelensembles inzetten (Triton DAG):
SageMaker biedt integratie met NVIDIA Triton Inference-server door Triton Inference Server-containers. Deze containers omvatten NVIDIA Triton Inference Server, ondersteuning voor algemene ML-frameworks en handige omgevingsvariabelen waarmee u de prestaties op SageMaker kunt optimaliseren. Met NVIDIA Triton-containerimages kunt u eenvoudig ML-modellen bedienen en profiteren van de prestatie-optimalisaties, dynamische batching en multi-framework-ondersteuning van NVIDIA Triton. Triton helpt het gebruik van GPU en CPU te maximaliseren, waardoor de gevolgtrekkingskosten verder worden verlaagd.
In gevallen waarin ML-toepassingen verschillende modellen gebruiken om aan een voorspellingsverzoek te voldoen, en elk model een ander raamwerk gebruikt of wordt gehost op een afzonderlijke instantie, kan dit in zakelijke gebruikssituaties leiden tot meer werklast en kosten, evenals een toename van de algehele latentie. SageMaker NVIDIA Triton Inference Server ondersteunt de implementatie van modellen van alle belangrijke frameworks, zoals TensorFlow GraphDef, TensorFlow SavedModel, ONNX, PyTorch TorchScript, TensorRT en Python/C++-modelindelingen en meer. Triton-modellenensemble vertegenwoordigt een pijplijn van een of meer modellen of preprocessing- en postprocessing-logica, en de verbinding van input- en output-tensoren daartussen. Een enkel deductieverzoek aan een ensemble activeert de uitvoering van de volledige pijplijn. Triton heeft ook meerdere ingebouwde plannings- en batchalgoritmen die individuele deductieverzoeken combineren om de doorvoer van deductie te verbeteren. Deze plannings- en batchbeslissingen zijn transparant voor de klant die om gevolgtrekking vraagt. De modellen kunnen worden uitgevoerd op CPU's of GPU's voor maximale flexibiliteit en ter ondersteuning van heterogene computervereisten.
Het hosten van meerdere door GPU ondersteunde modellen op eindpunten met meerdere modellen wordt ondersteund via de SageMaker Triton-inferentieserver. De NVIDIA Triton Inference Server is uitgebreid om een MME API-contract, om te integreren met MME's. U kunt de NVIDIA Triton Inference Server gebruiken, die een modelrepositoryconfiguratie maakt voor verschillende framework-backends, om een MME met automatische schaling te implementeren. Met deze functie kunt u honderden hypergepersonaliseerde modellen schalen die zijn afgestemd op unieke eindgebruikerservaringen in AI-toepassingen. U kunt deze functie ook gebruiken om de noodzakelijke prijsprestaties voor uw inferentietoepassing te bereiken met behulp van fractionele GPU's. Raadpleeg voor meer informatie Voer meerdere deep learning-modellen uit op GPU met Amazon SageMaker multi-model endpoints.
De volgende tabel biedt richtlijnen voor het evalueren van de fitnessfuncties voor ML-modelhosting met behulp van MME's met GPU-ondersteuning op Triton-inferentiecontainers. Raadpleeg de eerdere secties in dit bericht voor eindpunten met één model en evaluaties van serverloze eindpuntfitnessfuncties.
Fitness functie | Omschrijving |
Kosten | SageMaker MME's met GPU-ondersteuning die Triton Inference Server gebruiken, bieden een schaalbare en kosteneffectieve manier om een groot aantal deep learning-modellen achter één SageMaker-eindpunt te implementeren. Met MME's delen meerdere modellen de GPU-instantie achter een eindpunt. Hierdoor kunt u de lineair stijgende kosten van het hosten van meerdere modellen doorbreken en de infrastructuur voor alle modellen hergebruiken. U betaalt voor de uptime van de instance. |
Inferentie latentie |
SageMaker met Triton Inference Server is speciaal gebouwd om de doorvoer en het hardwaregebruik te maximaliseren met ultralage (enkelcijferige milliseconden) inferentielatentie. Het heeft een breed scala aan ondersteunde ML-frameworks (waaronder TensorFlow, PyTorch, ONNX, XGBoost en NVIDIA TensorRT) en infrastructuur-backends, waaronder NVIDIA GPU's, CPU's en AWS Inferentie. Met MME-ondersteuning voor GPU met behulp van SageMaker Triton Inference Server, kunt u duizenden deep learning-modellen implementeren achter één SageMaker-eindpunt. SageMaker laadt het model in het geheugen van de NVIDIA Triton-container op een GPU-versnelde instantie en bedient het gevolgtrekkingsverzoek. De GPU-kern wordt gedeeld door alle modellen in een instantie. Als het model al in het containergeheugen is geladen, worden de volgende verzoeken sneller verwerkt omdat SageMaker het niet hoeft te downloaden en opnieuw te laden. |
Doorvoer |
MME's bieden mogelijkheden om meerdere deep learning- of ML-modellen tegelijkertijd op de GPU uit te voeren met Triton Inference Server. Hierdoor kunt u eenvoudig de NVIDIA Triton multi-framework, krachtige inferentieservice gebruiken met de volledig beheerde modelimplementatie van SageMaker. Triton ondersteunt alle NVIDIA GPU-, x86-, Arm® CPU- en AWS Inferentia-gebaseerde inferenties. Het biedt dynamische batching, gelijktijdige runs, optimale modelconfiguratie, modellenensemble en streaming audio- en video-ingangen om de doorvoer en het gebruik te maximaliseren. Andere factoren, zoals de grootte van het netwerk en de payload, kunnen een minimale rol spelen in de overhead die gepaard gaat met de gevolgtrekking. |
Configuratiecomplexiteit schalen |
MME's kunnen horizontaal schalen met behulp van een beleid voor automatisch schalen en extra GPU-rekeninstanties leveren op basis van statistieken zoals Met de Triton-inferentieserver kunt u eenvoudig een aangepaste container bouwen die uw model met Triton bevat en deze naar SageMaker brengen. SageMaker Inference handelt de verzoeken af en schaalt de container automatisch naarmate het gebruik toeneemt, waardoor modelimplementatie met Triton op AWS eenvoudiger wordt. |
Verkeerspatroon |
MME's zijn ideaal voor voorspelbare verkeerspatronen met modellen die als DAG's op hetzelfde eindpunt worden uitgevoerd. SageMaker zorgt voor verkeersvorming naar het MME-eindpunt en onderhoudt optimale modelkopieën op GPU-instanties voor de beste prijsprestaties. Het blijft verkeer routeren naar de instantie waar het model is geladen. Als de instantiebronnen hun capaciteit bereiken vanwege een hoog gebruik, verwijdert SageMaker de minst gebruikte modellen uit de container om bronnen vrij te maken voor het laden van vaker gebruikte modellen. |
Beste praktijken
Houd rekening met de volgende best practices:
- Hoge cohesie en lage koppeling tussen modellen – Host de modellen in dezelfde container met een hoge samenhang (stuurt single-business-functionaliteit aan) en kapsel ze samen in voor gemakkelijke upgrade en beheersbaarheid. Ontkoppel die modellen tegelijkertijd van elkaar (host ze in een andere container), zodat u eenvoudig één model kunt upgraden zonder andere modellen te beïnvloeden. Host meerdere modellen die verschillende containers achter één eindpunt gebruiken en vervolgens onafhankelijk aanroepen of voeg voor- en naverwerkingslogica voor modellen toe als een seriële inferentiepijplijn.
- Inferentie latentie – Groepeer de modellen die door single-businessfunctionaliteit worden aangestuurd en host ze in een enkele container om het aantal hops te minimaliseren en daarmee de algehele latentie te minimaliseren. Er zijn nog andere kanttekeningen, bijvoorbeeld als de gegroepeerde modellen meerdere kaders gebruiken; u kunt er ook voor kiezen om in meerdere containers te hosten, maar op dezelfde host te draaien om latentie te verminderen en kosten te minimaliseren.
- ML-modellen logisch groeperen met een hoge cohesie – De logische groep kan bestaan uit modellen die homogeen zijn (bijvoorbeeld alle XGBoost-modellen) of heterogeen (bijvoorbeeld enkele XGBoost- en enkele BERT-modellen). Het kan bestaan uit modellen die worden gedeeld door meerdere bedrijfsfunctionaliteiten of kan specifiek zijn voor het vervullen van slechts één bedrijfsfunctionaliteit.
- Gedeelde modellen – Als de logische groep uit gedeelde modellen bestaat, zullen het gemak van het upgraden van de modellen en latentie een belangrijke rol spelen bij het ontwerpen van de SageMaker-eindpunten. Als latentie bijvoorbeeld een prioriteit is, is het beter om alle modellen in één container achter één SageMaker-eindpunt te plaatsen om meerdere hops te voorkomen. Het nadeel is dat als een van de modellen moet worden geüpgraded, dit zal resulteren in een upgrade van alle relevante SageMaker-eindpunten die dit model hosten.
- Niet-gedeelde modellen – Als de logische groep alleen bestaat uit modellen die specifiek zijn voor bedrijfsfuncties en niet wordt gedeeld met andere groepen, worden de complexiteit van de verpakking en de latentiedimensies de sleutel om te bereiken. Het is raadzaam om deze modellen in een enkele container achter een enkel SageMaker-eindpunt te hosten.
- Efficiënt gebruik van hardware (CPU, GPU) – Groepeer op CPU gebaseerde modellen en host ze op dezelfde host zodat u de CPU efficiënt kunt gebruiken. Groepeer op dezelfde manier GPU-gebaseerde modellen zodat u ze efficiënt kunt gebruiken en schalen. Er zijn hybride workloads die zowel CPU als GPU op dezelfde host vereisen. Het hosten van de modellen met alleen CPU en alleen GPU op dezelfde host moet worden aangedreven door hoge cohesie- en toepassingslatentievereisten. Bovendien zijn kosten, schaalbaarheid en straal bij impact in geval van storing de belangrijkste factoren om naar te kijken.
- Fitnessfuncties – Gebruik fitnessfuncties als richtlijn voor het selecteren van een ML-hostingoptie.
Conclusie
Als het gaat om ML-hosting, is er geen one-size-fits-all aanpak. ML-beoefenaars moeten het juiste ontwerppatroon kiezen om hun ML-hostinguitdagingen aan te pakken. Het evalueren van de fitnessfuncties biedt prescriptieve richtlijnen voor het selecteren van de juiste ML-hostingoptie.
Raadpleeg de volgende berichten in deze serie voor meer informatie over elk van de hostingopties:
Over de auteurs
Dhawal Patel is een Principal Machine Learning Architect bij AWS. Hij heeft gewerkt met organisaties variërend van grote ondernemingen tot middelgrote startups aan problemen met betrekking tot gedistribueerde computing en kunstmatige intelligentie. Hij richt zich op Deep learning inclusief NLP en Computer Vision domeinen. Hij helpt klanten bij het bereiken van high-performance modelinferentie op SageMaker.
Deepali Rajale is AI/ML Specialist Technical Account Manager bij Amazon Web Services. Ze werkt samen met zakelijke klanten en biedt technische begeleiding bij het implementeren van machine learning-oplossingen met best practices. In haar vrije tijd houdt ze van wandelen, films kijken en uitgaan met familie en vrienden.
Saurabh Trikande is Senior Product Manager voor Amazon SageMaker Inference. Hij heeft een passie voor het werken met klanten en wordt gemotiveerd door het doel om machine learning te democratiseren. Hij richt zich op kernuitdagingen met betrekking tot het inzetten van complexe ML-applicaties, multi-tenant ML-modellen, kostenoptimalisaties en het toegankelijker maken van de inzet van deep learning-modellen. In zijn vrije tijd houdt Saurabh van wandelen, leren over innovatieve technologieën, TechCrunch volgen en tijd doorbrengen met zijn gezin.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/model-hosting-patterns-in-amazon-sagemaker-part-1-common-design-patterns-for-building-ml-applications-on-amazon-sagemaker/
- 1
- 10
- 100
- 11
- 39
- 7
- 70
- a
- vermogen
- in staat
- Over
- versneld
- toegang
- geraadpleegde
- beschikbaar
- accommoderen
- Account
- accuraat
- Bereiken
- het bereiken van
- over
- Actie
- actief
- toevoeging
- Extra
- Daarnaast
- adres
- bevorderen
- vergevorderd
- Voordeel
- ADVERTISING
- invloed hebben op
- Na
- aggregatie
- Aggregator
- agressief
- overeenkomsten
- AI
- AI / ML
- alarm
- algoritmen
- Alles
- Het toestaan
- toestaat
- al
- altijd
- Amazone
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- bedragen
- analyse
- analyseren
- en
- en infrastructuur
- jaar-
- Nog een
- apache
- api
- Apple
- Aanvraag
- toepassingen
- nadering
- passend
- apps
- architectuur
- ARM
- kunstmatig
- kunstmatige intelligentie
- aspecten
- beoordeling
- geassocieerd
- attributen
- audio
- audits
- auto
- geautomatiseerde
- Automatisch
- webmaster.
- beschikbaarheid
- Beschikbaar
- gemiddelde
- AWS
- terug
- met een rug
- Bankieren
- baseren
- gebaseerde
- omdat
- worden
- wordt
- vaardigheden
- achter
- wezen
- voordeel
- BEST
- 'best practices'
- Betere
- tussen
- biomedische
- Blok
- ontlening
- grenzen
- Box camera's
- overtreding
- Breken
- brengen
- Brengt
- Begrotingen
- bouw
- Gebouw
- bebouwd
- ingebouwd
- bedrijfsdeskundigen
- Business Applications
- Bedrijfsproces
- ondernemingen
- cache
- berekend
- Bellen
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- bezoeker
- kandidaten
- mogelijkheden
- Inhoud
- verzorging
- geval
- gevallen
- categorieën
- oorzaken
- zeker
- Certified
- uitdagingen
- verandering
- Wijzigingen
- kenmerken
- opgeladen
- Chatbot
- controle
- spaander
- keuze
- keuzes
- Kies
- het kiezen van
- klasse
- classificatie
- classificeren
- klant
- klanten
- Sluiten
- Cloud
- TROS
- code
- gemunt
- collega's
- verzamelen
- tegen te gaan
- combinatie van
- combineren
- gecombineerde
- Gemeen
- Bedrijven
- afstand
- vergeleken
- compleet
- compleet
- complex
- ingewikkeldheid
- nakoming
- componenten
- samengesteld
- compromis
- rekenkracht
- Berekenen
- computer
- Computer visie
- computergebruik
- concept
- Bezorgdheid
- gelijktijdig
- Configuratie
- versterken
- consequent
- geconsumeerd
- Consumenten
- Containers
- containers
- bevat
- voortzetten
- blijft
- doorlopend
- onder controle te houden
- Kern
- Overeenkomend
- Kosten
- kostenbesparingen
- kostenefficient
- Kosten
- kon
- en je merk te creëren
- creëert
- kritisch
- cruciaal
- Actueel
- gewoonte
- klant
- Klanten
- DAG
- gegevens
- gegevensverwerking
- data science
- data scientist
- Database
- datasets
- dag
- omgang
- beslissingen
- toegewijd aan
- deep
- diepgaand leren
- Standaard
- het definiëren van
- leveren
- Vraag
- eisen
- Democratiserend
- Afhankelijk
- afhankelijk
- implementeren
- ingezet
- het inzetten
- inzet
- implementaties
- Design
- ontwerp patronen
- ontworpen
- detail
- gegevens
- Opsporing
- Bepalen
- Ontwikkelaar
- Ontwikkeling
- diagrammen
- anders
- moeilijk
- Afmeting
- directe
- onderscheiden
- verdeeld
- distributed computing
- diversen
- havenarbeider
- documenten
- Nee
- domeinen
- Dont
- beneden
- Download
- keerzijde
- gedreven
- liet vallen
- dropping
- gedurende
- dynamisch
- elk
- Vroeger
- gemakkelijker
- gemakkelijk
- effectief
- effectief
- effectiviteit
- efficiëntie
- doeltreffend
- efficiënt
- inspanning
- beide
- elimineren
- in staat stellen
- maakt
- encryptie
- eind tot eind
- Endpoint
- Engineering
- Ingenieurs
- genoeg
- verzekeren
- waarborgt
- Enterprise
- bedrijven
- Geheel
- Milieu
- fout
- fouten
- vooral
- geëvalueerd
- evaluaties
- Zelfs
- Event
- alles
- Evolutie
- voorbeeld
- voorbeelden
- uitwisseling
- vertoont
- verwachten
- verwacht
- ervaring
- Ervaringen
- Verken
- uitdrukkingen
- extern
- extra
- Gezicht
- factoren
- Storing
- tamelijk
- gezinnen
- familie
- sneller
- Kenmerk
- Voordelen
- voeden
- weinig
- finale
- Voornaam*
- eerste keer
- geschiktheid
- VLOOT
- Flexibiliteit
- stroom
- schommelen
- richt
- volgend
- volgt
- doorwaadbare plaats
- formulier
- formulieren
- breuk
- Achtergrond
- frameworks
- bedrog
- fraude detectie
- Gratis
- Frequentie
- vaak
- vrienden
- oppompen van
- Fruit
- vol
- geheel
- functie
- functionaliteiten
- functionaliteit
- functies
- verder
- GDPR
- Algemeen
- gegenereerde
- het genereren van
- krijgen
- Geven
- gegeven
- doel
- Doelen
- goed
- GPU
- GPU's
- diagram
- groot
- meer
- sterk
- Groep
- Groep
- Groeien
- gids
- handvat
- Handvaten
- handig
- Hardware
- met
- Gezondheid
- gezondheidszorg
- hulp
- het helpen van
- helpt
- hier
- Hoge
- hoge performantie
- hoge-resolutie
- hoger
- Hit
- Horizontaal
- gastheer
- gehost
- Hosting
- hosting kosten
- hostingdiensten
- Hoe
- Echter
- HTML
- HTTPS
- Honderden
- Hybride
- ideaal
- Identiteit
- Idle
- beeld
- Afbeeldingsclassificatie
- afbeeldingen
- onveranderlijk
- Impact
- beïnvloed
- Effecten
- uitvoeren
- geïmplementeerd
- uitvoering
- belangrijk
- verbeteren
- het verbeteren van
- in
- omvatten
- omvat
- Inclusief
- Inkomend
- Laat uw omzet
- meer
- Verhoogt
- meer
- onafhankelijk
- onafhankelijk
- individueel
- informatie
- Infrastructuur
- eerste
- innovatieve
- innovatieve technologieën
- invoer
- installeren
- instantie
- verkrijgen in plaats daarvan
- integreren
- integratie
- Intelligentie
- interactieve
- betrekken
- ISO
- isolatie
- IT
- Jobomschrijving:
- Vacatures
- sleutel
- toetsen
- blijven
- bekend
- Groot
- groter
- Wachttijd
- lancering
- lanceert
- lancering
- leiden
- leidend
- Leads
- LEARN
- leren
- Verlof
- LED
- Niveau
- bibliotheken
- facelift
- Beperkt
- grenzen
- Lijst
- leven
- laden
- het laden
- ladingen
- plaats
- lang
- langer
- Kijk
- kwijt te raken
- lot
- Laag
- machine
- machine learning
- gemaakt
- Hoofd
- onderhouden
- onderhoudt
- groot
- maken
- MERKEN
- maken
- beheer
- beheerd
- management
- manager
- beheert
- beheren
- veel
- Marketing
- wiskundig
- Materie
- Maximaliseren
- maximaal
- middel
- Maak kennis met
- Geheugen
- methode
- methoden
- metriek
- Metriek
- macht
- minimaal
- minimum
- minuten
- Menging
- ML
- Mode
- model
- modellen
- monitor
- Grensverkeer
- Maand
- maanden
- meer
- meest
- gemotiveerde
- Films
- Eindpunt voor meerdere modellen
- meervoudig
- menigte
- NATUUR
- noodzakelijk
- Noodzaak
- behoeften
- netwerk
- New
- volgende
- nlp
- notificatie
- meldingen
- aantal
- Nvidia
- object
- doel van de persoon
- doelstellingen
- het verkrijgen van
- occasionele
- bieden
- Aanbod
- offline
- EEN
- online.
- open source
- besturen
- exploiteert
- werkzaam
- operationele
- Operations
- exploitanten
- optimale
- optimalisatie
- Optimaliseer
- geoptimaliseerde
- Optimaliseert
- optimaliseren
- Keuze
- Opties
- Oranje
- bestellen
- organisaties
- Overige
- uitstekend
- totaal
- het te bezitten.
- ownership
- pakket
- verpakking
- parameters
- deel
- bijzonder
- partner
- voorbij
- hartstochtelijk
- Patches
- Patronen
- patronen
- Betaal
- Hoogtepunt
- Uitvoeren
- prestatie
- uitvoerend
- periode
- periodiek
- periodes
- Personalisatie
- Gepersonaliseerde
- kiezen
- pijpleiding
- plaats
- plaatsen
- gepland
- plannen
- platform
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- Spelen
- plus
- beleidsmaatregelen door te lezen.
- beleidsmaatregelen
- Populair
- mogelijk
- Post
- Berichten
- energie
- praktijk
- praktijken
- Voorspelbaar
- het voorspellen van
- voorspelling
- Voorspellingen
- bij voorkeur
- die eerder
- prijs
- Principal
- prioriteit
- privaat
- probleem
- problemen
- Verwerkt
- processen
- verwerking
- processors
- Product
- product manager
- productie
- Producten
- Profiel
- gepast
- zorgen voor
- mits
- biedt
- het verstrekken van
- voorziening
- volmacht
- doel
- Duwen
- pytorch
- snel
- reeks
- variërend
- snel
- tarief
- Tarieven
- bereiken
- Bereikt
- Lees
- klaar
- vast
- echte wereld
- real-time
- ontvangen
- ontvangen
- ontvangt
- adviseren
- Aanbeveling
- aanbevelingen
- aanbevolen
- bevelen
- beveelt
- terugkerend
- verminderen
- vermindert
- verwijst
- achteloos
- regelmatig
- verwant
- Releases
- relevante
- stoffelijk overschot
- bewaarplaats
- vertegenwoordigd
- vertegenwoordigt
- te vragen
- verzoeken
- vereisen
- nodig
- vereiste
- Voorwaarden
- vereist
- hulpbron
- Resources
- antwoord
- REST
- resultaat
- verkregen
- Resultaten
- <HR>Retail
- Retourneren
- beoordelen
- Risico
- Rol
- wortel
- weg
- Regel
- lopen
- lopend
- SaaS
- sagemaker
- SageMaker Inferentie
- salaris
- dezelfde
- Bespaar
- besparing
- Bespaar geld
- schaalbare
- Scale
- balans
- scaling
- scenario's
- rooster
- gepland
- Wetenschap
- Wetenschapper
- Tweede
- seconden
- sectie
- secties
- vast
- veiligheid
- selecteren
- selectie
- senior
- gevoelig
- Volgorde
- serie-
- -Series
- dienen
- Serverless
- Servers
- bedient
- service
- Diensten
- serveer-
- reeks
- het instellen van
- verscheidene
- vorming
- Delen
- gedeeld
- Ploegen
- moet
- Shows
- aanzienlijke
- aanzienlijk
- gelijk
- evenzo
- Eenvoudig
- single
- Maat
- maten
- Klein
- kleinere
- So
- Software
- oplossing
- Oplossingen
- sommige
- bronnen
- Tussenruimte
- specialist
- gespecialiseerde
- specifiek
- specifiek
- gespecificeerd
- snelheid
- Uitgaven
- spikes
- stabiel
- stack
- Stacks
- begin
- gestart
- starts
- startup
- Startups
- vast
- Stap voor
- Stappen
- Still
- Stopt
- mediaopslag
- shop
- strategieën
- streaming
- Streng
- sterk
- volgend
- succes
- geslaagd
- dergelijk
- voldoende
- geschikt
- ondersteuning
- ondersteunde
- steunen
- ontstaat
- tafel
- Nemen
- neemt
- doelwit
- doelgerichte
- Taak
- taken
- team
- teams
- TechCrunch
- Technisch
- Technologies
- huurder
- tensorflow
- proef
- Testen
- De
- hun
- zich
- daarbij
- daarom
- duizenden kosten
- drie
- drempel
- Door
- overal
- doorvoer
- niet de tijd of
- keer
- naar
- samen
- ook
- tools
- Totaal
- tps
- Tracking
- verkeer
- Trainen
- getraind
- Trainingen
- transactionele
- Transacties
- Transformeren
- Transformatie
- transformeren
- doorvoer
- transparant
- leiden
- Triton
- BEURT
- types
- typisch
- typisch
- voor
- die ten grondslag liggen
- begrijpen
- unieke
- eenheden
- onvoorspelbaar
- ongebruikt
- bijwerken
- updates
- upgrade
- opgewaardeerd
- uptime
- Gebruik
- .
- use case
- Gebruiker
- gebruikers
- doorgaans
- gebruik maken van
- gebruikt
- BEVESTIG
- waarde
- Values
- Variant
- divers
- via
- Video
- Video's
- Bekijk
- Virtueel
- visie
- volume
- Stemmen
- stemmen
- Afval
- web
- webservices
- week
- Wat
- Wat is
- welke
- en
- breed
- Grote range
- wil
- binnen
- zonder
- Mijn werk
- werkte
- werker
- werknemers
- werkzaam
- Bedrijven
- wereld
- zou
- XGBoost
- jaar
- You
- Your
- zephyrnet
- nul