Amazon SageMaker multi-model endpoints (MME) är en helt hanterad funktion av SageMaker inferens som låter dig distribuera tusentals modeller på en enda slutpunkt. Tidigare tilldelade MME:er förutbestämt CPU-beräkningskraft till modeller statiskt oavsett modelltrafikbelastning, med hjälp av Multi Model Server (MMS) som modellserver. I det här inlägget diskuterar vi en lösning där en MME dynamiskt kan justera beräkningskraften som tilldelas varje modell baserat på modellens trafikmönster. Denna lösning gör att du kan använda den underliggande beräkningen av MME mer effektivt och spara kostnader.
MME:er laddar och laddar dynamiskt modeller baserade på inkommande trafik till slutpunkten. När MMS används som modellserver, tilldelar MME:er ett fast antal modellarbetare för varje modell. För mer information, se Modellvärdsmönster i Amazon SageMaker, del 3: Kör och optimera slutpunkter för flera modeller med Amazon SageMaker-slutpunkter för flera modeller.
Detta kan dock leda till några problem när ditt trafikmönster är varierande. Låt oss säga att du har en enstaka eller ett fåtal modeller som får en stor mängd trafik. Du kan konfigurera MMS för att allokera ett stort antal arbetare för dessa modeller, men detta tilldelas alla modeller bakom MME eftersom det är en statisk konfiguration. Detta leder till att ett stort antal arbetare använder hårdvaruberäkning – även de lediga modellerna. Det motsatta problemet kan inträffa om du anger ett litet värde för antalet arbetare. De populära modellerna kommer inte att ha tillräckligt med arbetare på modellservernivå för att korrekt allokera tillräckligt med hårdvara bakom slutpunkten för dessa modeller. Huvudproblemet är att det är svårt att förbli trafikmönsteragnostisk om du inte dynamiskt kan skala dina arbetare på modellservernivån för att allokera den nödvändiga mängden beräkning.
Lösningen vi diskuterar i det här inlägget använder DJLServering som modellserver, vilket kan hjälpa till att mildra några av de problem som vi diskuterade och möjliggöra skalning per modell och göra det möjligt för MME:er att vara trafikmönsteragnostiska.
MME-arkitektur
SageMaker MME:er gör att du kan distribuera flera modeller bakom en enda slutpunkt som kan innehålla en eller flera instanser. Varje instans är designad för att ladda och betjäna flera modeller upp till dess minne och CPU/GPU-kapacitet. Med den här arkitekturen kan en SaaS-verksamhet (Software as a Service) bryta den linjärt ökande kostnaden för att vara värd för flera modeller och uppnå återanvändning av infrastruktur som överensstämmer med multi-tenancy-modellen som tillämpas på andra ställen i applikationsstacken. Följande diagram illustrerar denna arkitektur.
En SageMaker MME laddar dynamiskt modeller från Amazon enkel lagringstjänst (Amazon S3) när den anropas, istället för att ladda ner alla modeller när slutpunkten först skapas. Som ett resultat kan ett initialt anrop till en modell se högre slutledningslatens än de efterföljande slutsatserna, som avslutas med låg latens. Om modellen redan är laddad på behållaren när den anropas, hoppas nedladdningssteget över och modellen returnerar slutledningarna med låg latens. Anta till exempel att du har en modell som bara används ett fåtal gånger om dagen. Den laddas automatiskt på begäran, medan ofta åtkomliga modeller behålls i minnet och anropas med konsekvent låg latens.
Bakom varje MME finns modellvärdinstanser, som visas i följande diagram. Dessa instanser laddar och kastar ut flera modeller till och från minnet baserat på trafikmönstren till modellerna.
SageMaker fortsätter att dirigera inferensförfrågningar för en modell till den instans där modellen redan är laddad så att förfrågningarna serveras från en cachad modellkopia (se följande diagram, som visar sökvägen för den första förutsägelseförfrågan kontra den cachade förutsägelsen sökväg). Men om modellen tar emot många anropsbegäranden, och det finns ytterligare instanser för MME, dirigerar SageMaker några förfrågningar till en annan instans för att tillgodose ökningen. För att dra fördel av automatiserad modellskalning i SageMaker, se till att du har ställ in automatisk skalning för instans för att tillhandahålla ytterligare instanskapacitet. Ställ in din skalningspolicy på slutpunktsnivå med antingen anpassade parametrar eller anrop per minut (rekommenderas) för att lägga till fler instanser till slutpunktsflottan.
Modellserveröversikt
En modellserver är en mjukvarukomponent som tillhandahåller en körtidsmiljö för att distribuera och betjäna modeller för maskininlärning (ML). Det fungerar som ett gränssnitt mellan de tränade modellerna och klientapplikationer som vill göra förutsägelser med dessa modeller.
Det primära syftet med en modellserver är att möjliggöra enkel integration och effektiv distribution av ML-modeller i produktionssystem. Istället för att bädda in modellen direkt i en applikation eller ett specifikt ramverk tillhandahåller modellservern en centraliserad plattform där flera modeller kan distribueras, hanteras och betjänas.
Modellservrar erbjuder vanligtvis följande funktioner:
- Modellladdning – Servern laddar de tränade ML-modellerna i minnet, vilket gör dem redo för visningsförutsägelser.
- Inferens API – Servern exponerar ett API som tillåter klientapplikationer att skicka indata och ta emot förutsägelser från de utplacerade modellerna.
- Förkalkning – Modellservrar är designade för att hantera samtidiga förfrågningar från flera klienter. De tillhandahåller mekanismer för parallell bearbetning och hantering av resurser effektivt för att säkerställa hög genomströmning och låg latens.
- Integration med backend-motorer – Modellservrar har integrationer med backend-ramverk som DeepSpeed och FasterTransformer för att partitionera stora modeller och köra mycket optimerad slutledning.
DJL arkitektur
DJL Servering är en öppen källkod, högpresterande, universell modellserver. DJL Serving är byggd ovanpå Djl, ett bibliotek för djupinlärning skrivet i programmeringsspråket Java. Det kan ta en modell för djupinlärning, flera modeller eller arbetsflöden och göra dem tillgängliga via en HTTP-slutpunkt. DJL Serving stöder distribution av modeller från flera ramverk som PyTorch, TensorFlow, Apache MXNet, ONNX, TensorRT, Hugging Face Transformers, DeepSpeed, FasterTransformer och mer.
DJL Serving erbjuder många funktioner som gör att du kan distribuera dina modeller med hög prestanda:
- Användarvänlighet – DJL Serving kan servera de flesta modeller ur lådan. Ta bara med modellartefakterna så kan DJL Serving vara värd för dem.
- Stöd för flera enheter och acceleratorer – DJL Serving stöder distribution av modeller på CPU, GPU och AWS slutledning.
- prestanda – DJL Serving kör flertrådad slutledning i en enda JVM för att öka genomströmningen.
- Dynamisk batchning – DJL Serving stöder dynamisk batchning för att öka genomströmningen.
- Automatisk skalning – DJL Serving skalar automatiskt arbetare upp och ner baserat på trafikbelastningen.
- Stöd för flera motorer – DJL Serving kan samtidigt vara värd för modeller som använder olika ramverk (som PyTorch och TensorFlow).
- Ensemble- och arbetsflödesmodeller – DJL Serving stöder implementering av komplexa arbetsflöden som består av flera modeller, och kör delar av arbetsflödet på CPU och delar på GPU. Modeller inom ett arbetsflöde kan använda olika ramverk.
I synnerhet gör den automatiska skalningsfunktionen hos DJL Serving det enkelt att säkerställa att modellerna skalas på lämpligt sätt för den inkommande trafiken. Som standard bestämmer DJL Serving det maximala antalet arbetare för en modell som kan stödjas baserat på tillgänglig hårdvara (CPU-kärnor, GPU-enheter). Du kan ställa in nedre och övre gränser för varje modell för att säkerställa att en lägsta trafiknivå alltid kan betjänas och att en enskild modell inte förbrukar alla tillgängliga resurser.
DJL Serving använder en Netty frontend ovanpå backend-arbetsgängpooler. Frontend använder en enda Netty-inställning med flera HttpRequestHandlers. Olika förfrågningshanterare kommer att ge stöd för Inferens API, Management API, eller andra API:er tillgängliga från olika plugins.
Backend är baserad på WorkLoadManager (WLM) modul. WLM tar hand om flera arbetstrådar för varje modell tillsammans med batchningen och begäran om routning till dem. När flera modeller serveras, kontrollerar WLM först storleken på slutledningsbegäran för varje modell. Om köstorleken är större än två gånger en modells batchstorlek, skalar WLM upp antalet arbetare som tilldelats den modellen.
Lösningsöversikt
Implementeringen av DJL med en MME skiljer sig från standardinställningen för MMS. För DJL-servering med en MME komprimerar vi följande filer i formatet model.tar.gz som SageMaker Inference förväntar sig:
- model.joblib – För den här implementeringen trycker vi direkt in modellens metadata i tarballen. I det här fallet arbetar vi med en
.joblib
fil, så vi tillhandahåller den filen i vår tarball så att vårt slutledningsskript kan läsas. Om artefakten är för stor kan du också skjuta den till Amazon S3 och peka mot den i serveringskonfigurationen du definierar för DJL. - serveringsegenskaper – Här kan du konfigurera vilken modellserverrelaterad som helst Miljövariabler. Styrkan med DJL här är att du kan konfigurera
minWorkers
ochmaxWorkers
för varje modell tarball. Detta gör det möjligt för varje modell att skala upp och ner på modellservernivå. Till exempel, om en singulär modell tar emot majoriteten av trafiken för en MME, kommer modellservern att skala upp arbetarna dynamiskt. I det här exemplet konfigurerar vi inte dessa variabler och låter DJL bestämma det nödvändiga antalet arbetare beroende på vårt trafikmönster. - modell.py – Det här är slutledningsskriptet för alla anpassade för- eller efterbearbetningar som du vill implementera. Model.py förväntar sig att din logik är inkapslad i en hanteringsmetod som standard.
- requirements.txt (valfritt) – Som standard kommer DJL installerat med PyTorch, men alla ytterligare beroenden du behöver kan skjutas hit.
I det här exemplet visar vi upp kraften i DJL med en MME genom att ta ett exempel på SKLearn-modell. Vi kör ett träningsjobb med den här modellen och skapar sedan 1,000 XNUMX kopior av denna modellartefakt för att stödja vår MME. Vi visar sedan upp hur DJL dynamiskt kan skala för att hantera alla typer av trafikmönster som din MME kan ta emot. Detta kan inkludera en jämn fördelning av trafiken över alla modeller eller till och med några populära modeller som tar emot majoriteten av trafiken. Du hittar all kod i följande GitHub repo.
Förutsättningar
För det här exemplet använder vi en SageMaker-anteckningsbok-instans med en conda_python3-kärna och ml.c5.xlarge-instans. För att utföra belastningstesterna kan du använda en Amazon Elastic Compute Cloud (Amazon EC2)-instans eller en större SageMaker notebook-instans. I det här exemplet skalar vi till över tusen transaktioner per sekund (TPS), så vi föreslår att du testar på en tyngre EC2-instans som en ml.c5.18xlarge så att du har mer dator att arbeta med.
Skapa en modellartefakt
Vi måste först skapa vår modellartefakt och data som vi använder i det här exemplet. I det här fallet genererar vi en del artificiell data med NumPy och tränar med en SKLearn linjär regressionsmodell med följande kodavsnitt:
När du har kört föregående kod bör du ha en model.joblib
fil skapad i din lokala miljö.
Dra DJL Docker-bilden
Docker-bilden djl-inference:0.23.0-cpu-full-v1.0 är vår DJL-serveringsbehållare som används i det här exemplet. Du kan justera följande URL beroende på din region:
inference_image_uri = "474422712127.dkr.ecr.us-east-1.amazonaws.com/djl-serving-cpu:latest"
Alternativt kan du också använda den här bilden som en basbild och utöka den för att bygga din egen Docker-bild på Amazon Elastic Container Registry (Amazon ECR) med alla andra beroenden du behöver.
Skapa modellfilen
Först skapar vi en fil som heter serving.properties
. Detta instruerar DJLServing att använda Python-motorn. Vi definierar också max_idle_time
av en arbetare att vara 600 sekunder. Detta säkerställer att vi tar längre tid att skala ner antalet arbetare vi har per modell. Vi anpassar oss inte minWorkers
och maxWorkers
som vi kan definiera och vi låter DJL dynamiskt beräkna antalet arbetare som behövs beroende på trafiken varje modell tar emot. Serveringsegenskaperna visas enligt följande. För att se den fullständiga listan över konfigurationsalternativ, se Motorkonfiguration.
Därefter skapar vi vår model.py-fil, som definierar modellens laddnings- och slutledningslogik. För MME:er är varje model.py-fil specifik för en modell. Modeller lagras på sina egna vägar under modellbutiken (vanligtvis /opt/ml/model/
). När modeller laddas kommer de att laddas under modellbutikssökvägen i sin egen katalog. Hela model.py-exemplet i denna demo kan ses i GitHub repo.
Vi skapar en model.tar.gz
fil som inkluderar vår modell (model.joblib
), model.py
och serving.properties
:
För demonstrationsändamål gör vi 1,000 XNUMX exemplar av densamma model.tar.gz
fil för att representera det stora antalet modeller som ska vara värd. I produktionen måste du skapa en model.tar.gz
fil för var och en av dina modeller.
Slutligen laddar vi upp dessa modeller till Amazon S3.
Skapa en SageMaker-modell
Vi skapar nu en SageMaker modell. Vi använder ECR-bilden som definierats tidigare och modellartefakten från föregående steg för att skapa SageMaker-modellen. I modellinställningen konfigurerar vi Mode som MultiModel. Detta berättar för DJLServing att vi skapar en MME.
Skapa en SageMaker-slutpunkt
I den här demon använder vi 20 ml.c5d.18xlarge instanser för att skala till en TPS i tusentalsintervallet. Se till att få en gränsökning på din instanstyp, om det behövs, för att uppnå den TPS du siktar på.
Lasttestning
I skrivande stund, SageMaker in-house lasttestverktyg Amazon SageMaker Inference Recommender stöder inte inbyggt testning för MME. Därför använder vi Python-verktyget med öppen källkod Gräshoppa. Locust är enkel att ställa in och kan spåra mätvärden som TPS och slut-till-ände latens. För en fullständig förståelse för hur du ställer in det med SageMaker, se Bästa metoder för belastningstestning av Amazon SageMaker slutpunkter i realtid.
I det här användningsfallet har vi tre olika trafikmönster som vi vill simulera med MME, så vi har följande tre Python-skript som passar in i varje mönster. Vårt mål här är att bevisa att vi, oavsett vad vårt trafikmönster är, kan uppnå samma mål-TPS och skala på lämpligt sätt.
Vi kan ange en vikt i vårt Locust-skript för att tilldela trafik över olika delar av våra modeller. Till exempel, med vår enda heta modell implementerar vi två metoder enligt följande:
Vi kan sedan tilldela en viss vikt till varje metod, vilket är när en viss metod får en viss procentandel av trafiken:
För 20 ml.c5d.18xlarge instanser ser vi följande anropsmått på amazoncloudwatch trösta. Dessa värden förblir ganska konsekventa över alla tre trafikmönster. För att förstå CloudWatch-statistik för SageMaker realtidsinferens och MME bättre, se SageMaker Endpoint Invocation Metrics.
Du kan hitta resten av Locust-skripten i locust-utils katalog i GitHub-förvaret.
Sammanfattning
I det här inlägget diskuterade vi hur en MME dynamiskt kan justera beräkningskraften som tilldelas varje modell baserat på modellens trafikmönster. Denna nylanserade funktion är tillgänglig i alla AWS-regioner där SageMaker är tillgänglig. Observera att vid tidpunkten för tillkännagivandet stöds endast CPU-instanser. För att lära dig mer, se Algoritmer, ramverk och instanser som stöds.
Om författarna
Ram Vegiraju är en ML-arkitekt med SageMaker Service-teamet. Han fokuserar på att hjälpa kunder att bygga och optimera sina AI/ML-lösningar på Amazon SageMaker. På fritiden älskar han att resa och skriva.
Qingwei Li är maskininlärningsspecialist på Amazon Web Services. Han fick sin doktorsexamen. i Operations Research efter att han bröt sin rådgivares forskningsbidragskonto och misslyckades med att leverera det Nobelpris han lovade. För närvarande hjälper han kunder inom finanssektorn och försäkringsbranschen att bygga maskininlärningslösningar på AWS. På fritiden gillar han att läsa och undervisa.
James Wu är Senior AI/ML Specialist Solution Architect på AWS. hjälpa kunder att designa och bygga AI/ML-lösningar. James arbete täcker ett brett spektrum av ML-användningsfall, med ett primärt intresse för datorseende, djupinlärning och skalning av ML över hela företaget. Innan han började på AWS var James arkitekt, utvecklare och teknikledare i över 10 år, inklusive 6 år inom ingenjörsbranschen och 4 år inom marknadsförings- och reklambranschen.
Saurabh Trikande är senior produktchef för Amazon SageMaker Inference. Han brinner för att arbeta med kunder och motiveras av målet att demokratisera maskininlärning. Han fokuserar på kärnutmaningar relaterade till att distribuera komplexa ML-applikationer, multi-tenant ML-modeller, kostnadsoptimeringar och att göra implementeringen av djupinlärningsmodeller mer tillgänglig. På sin fritid gillar Saurabh att vandra, lära sig om innovativ teknik, följa TechCrunch och umgås med sin familj.
Xu Deng är en Software Engineer Manager med SageMaker-teamet. Han fokuserar på att hjälpa kunder att bygga och optimera sin AI/ML-inferensupplevelse på Amazon SageMaker. På fritiden älskar han att resa och åka snowboard.
Siddharth Venkatesan är en mjukvaruingenjör inom AWS Deep Learning. Han fokuserar för närvarande på att bygga lösningar för stora modellinferenser. Innan han började på AWS arbetade han i Amazon Grocery-organisationen och byggde nya betalningsfunktioner för kunder över hela världen. Utanför jobbet tycker han om att åka skidor, att vara utomhus och att titta på sport.
Rohith Nallamaddi är en mjukvaruutvecklingsingenjör på AWS. Han arbetar med att optimera arbetsbelastningar för djupinlärning på GPU:er, bygga högpresterande ML-inferens och serveringslösningar. Dessförinnan arbetade han med att bygga mikrotjänster baserade på AWS för Amazon F3-verksamhet. Utanför jobbet tycker han om att spela och titta på sport.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/run-ml-inference-on-unplanned-and-spiky-traffic-using-amazon-sagemaker-multi-model-endpoints/
- :är
- :var
- $UPP
- 000
- 1
- 10
- 100
- 116
- 118
- 12
- 16
- 17
- 20
- 23
- 31
- 600
- 7
- 9
- a
- Om oss
- accelerator
- Accessed
- tillgänglig
- rymma
- Konto
- Uppnå
- tvärs
- handlingar
- lägga till
- Annat
- Fördel
- reklam
- Efter
- AI / ML
- algoritmer
- rikta
- Alla
- fördela
- allokeras
- tillåter
- tillåter
- längs
- redan
- också
- alltid
- amason
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- mängd
- an
- och
- Tillkännagivande
- Annan
- vilken som helst
- Apache
- api
- API: er
- Ansökan
- tillämpningar
- tillämpas
- lämpligt
- arkitektur
- ÄR
- runt
- konstgjord
- AS
- delad
- utgå ifrån
- At
- bil
- Automatiserad
- automatiskt
- tillgänglig
- AWS
- tillbaka
- backend
- bas
- baserat
- dosering
- BE
- därför att
- bakom
- Bättre
- mellan
- kropp
- lyft
- gräns
- Box
- Ha sönder
- föra
- Pank
- SLUTRESULTAT
- Byggnad
- byggt
- företag
- men
- by
- kallas
- KAN
- kapacitet
- Kapacitet
- vilken
- Vid
- fall
- cellen
- centraliserad
- vissa
- utmaningar
- Kontroller
- klass
- klient
- klienter
- koda
- kommer
- fullborda
- Avslutade
- komplex
- komponent
- Består
- Compute
- dator
- Datorsyn
- databehandling
- beräkningskraft
- konkurrent
- konfiguration
- konsekvent
- konsekvent
- Konsol
- konsumera
- innehålla
- Behållare
- sammanhang
- fortsätter
- Kärna
- Pris
- Kostar
- Täcker
- skapa
- skapas
- Skapa
- För närvarande
- beställnings
- Kunder
- datum
- dag
- djup
- djupt lärande
- Standard
- definiera
- definierade
- definierar
- leverera
- Efterfrågan
- demo
- demokrati
- beroenden
- beroende
- avbildas
- distribuera
- utplacerade
- utplacera
- utplacering
- Designa
- utformade
- Bestämma
- bestämd
- Utvecklare
- Utveckling
- anordning
- enheter
- Diagrammet
- olika
- svårt
- direkt
- katalog
- diskutera
- diskuteras
- fördelning
- Hamnarbetare
- inte
- inte
- ner
- ladda ner
- nedladdning
- dynamisk
- dynamiskt
- varje
- Tidigare
- effektiv
- effektivt
- enkel
- antingen
- annorstädes
- inbäddning
- möjliggöra
- möjliggör
- inkapslad
- början till slut
- Slutpunkt
- Motor
- ingenjör
- Teknik
- tillräckligt
- säkerställa
- Företag
- Miljö
- fel
- Även
- exempel
- undantag
- väntar
- förväntar
- erfarenhet
- förlänga
- Ansikte
- Misslyckades
- ganska
- familj
- Leverans
- Funktioner
- få
- Fil
- Filer
- finansiella
- finansiell tjänst
- hitta
- Förnamn
- fixerad
- FLOTTA
- fokuserar
- efter
- följer
- För
- format
- Ramverk
- ramar
- ofta
- från
- Frontend
- full
- fullständigt
- funktionaliteter
- generera
- skaffa sig
- blir
- GitHub
- Målet
- GPU
- GPUs
- bevilja
- större
- hantera
- hända
- hårdvara
- Har
- he
- hjälpa
- hjälpa
- hjälper
- här.
- Hög
- högre
- höggradigt
- hans
- värd
- värd
- värd
- HET
- Hur ser din drömresa ut
- How To
- Men
- html
- http
- HTTPS
- Idle
- if
- illustrerar
- bild
- genomföra
- genomförande
- importera
- in
- innefattar
- innefattar
- Inklusive
- Inkommande
- Öka
- ökande
- industrier
- industrin
- informationen
- Infrastruktur
- inledande
- innovativa
- innovativa tekniker
- ingång
- installerad
- exempel
- istället
- försäkring
- integrering
- integrationer
- intresse
- Gränssnitt
- in
- åberopas
- fråga
- problem
- IT
- DESS
- james
- java
- Jobb
- sammanfogning
- jpg
- bara
- språk
- Large
- större
- Latens
- senaste
- lanserades
- leda
- ledare
- Leads
- LÄRA SIG
- inlärning
- Låt
- Nivå
- Bibliotek
- tycka om
- gillar
- BEGRÄNSA
- linjär
- Lista
- läsa in
- läser in
- laster
- lokal
- Logiken
- längre
- älskar
- Låg
- lägre
- Maskinen
- maskininlärning
- Huvudsida
- Majoritet
- göra
- GÖR
- Framställning
- förvaltade
- chef
- hantera
- många
- Marknadsföring
- Marknadsföring och reklam
- maximal
- Maj..
- mekanismer
- Minne
- metadata
- metod
- metoder
- Metrics
- microservices
- kanske
- minsta
- minut
- Mildra
- ML
- Mode
- modell
- modeller
- Modulerna
- mer
- mest
- motiverad
- multipel
- namn
- natively
- nödvändigt för
- Behöver
- behövs
- Nya
- nytt
- Nobelpriset
- Ingen
- Notera
- anteckningsbok
- nu
- antal
- numpy
- of
- erbjudanden
- Erbjudanden
- on
- ONE
- endast
- öppet
- öppen källkod
- Verksamhet
- motsatt
- optimeringar
- Optimera
- optimerad
- optimera
- Tillbehör
- or
- Övriga
- vår
- ut
- utomhus
- produktion
- utanför
- över
- egen
- Parallell
- parametrar
- del
- särskilt
- reservdelar till din klassiker
- brinner
- bana
- banor
- Mönster
- mönster
- betalning
- för
- procentuell
- Utföra
- prestanda
- Röret
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- i
- insticksmoduler
- Punkt
- policy
- Pools
- Populära
- Inlägg
- kraft
- praxis
- föregående
- förutsägelse
- Förutsägelser
- föregående
- tidigare
- primär
- Innan
- Priset
- Problem
- process
- bearbetning
- Produkt
- produktchef
- Produktion
- Programmering
- utlovade
- ordentligt
- egenskaper
- Bevisa
- ge
- ger
- tillhandahållande
- Syftet
- syfte
- Tryck
- sköt
- Python
- pytorch
- slumpmässig
- område
- Läsa
- Läsning
- redo
- realtid
- motta
- mottagna
- erhåller
- mottagande
- rekommenderas
- hänvisa
- Oavsett
- region
- regioner
- relaterad
- förblir
- ersätta
- Repository
- representerar
- begära
- förfrågningar
- Krav
- forskning
- Resurser
- respons
- REST
- resultera
- återgår
- återanvända
- Rutt
- rutter
- routing
- Körning
- kör
- runtime
- SaaS
- sagemaker
- SageMaker Inference
- Samma
- prov
- Save
- säga
- Skala
- skalad
- skalor
- skalning
- skript
- skript
- Andra
- sekunder
- se
- sett
- SJÄLV
- sända
- senior
- tjänar
- eras
- server
- Servrar
- service
- Tjänster
- portion
- in
- uppsättningar
- inställning
- flera
- skall
- visa
- visas
- Visar
- Enkelt
- simulera
- samtidigt
- enda
- singularis
- Storlek
- Small
- kodavsnitt
- So
- Mjukvara
- mjukvara som en service
- mjukvaruutveckling
- Programvara ingenjör
- lösning
- Lösningar
- några
- Källa
- specialist
- specifik
- Spendera
- delas
- Sporter
- stapel
- statisk
- Steg
- förvaring
- lagra
- lagras
- okomplicerad
- senare
- sådana
- föreslå
- stödja
- Som stöds
- Stöder
- säker
- System
- Ta
- tar
- tar
- Målet
- targeting
- Undervisning
- grupp
- TechCrunch
- Tekniken
- Teknologi
- berättar
- tensorflow
- Testning
- tester
- än
- den där
- Smakämnen
- deras
- Dem
- sedan
- Där.
- därför
- Dessa
- de
- detta
- de
- tusen
- tusentals
- tre
- Genom
- genomströmning
- tid
- gånger
- till
- alltför
- verktyg
- topp
- mot
- tps
- spår
- trafik
- Tåg
- tränad
- Utbildning
- Transaktioner
- transformatorer
- Traveling
- prova
- två
- Typ
- typiskt
- under
- underliggande
- förstå
- förståelse
- Universell
- URL
- användning
- användningsfall
- Begagnade
- användningar
- med hjälp av
- vanligen
- Använda
- värde
- Värden
- variabel
- olika
- syn
- vs
- vill
- var
- tittar
- we
- webb
- webbservice
- vikt
- Vad
- när
- medan
- som
- bred
- Brett utbud
- kommer
- med
- inom
- Arbete
- arbetade
- arbetstagaren
- arbetare
- arbetsflöde
- arbetsflöden
- arbetssätt
- fungerar
- skulle
- skrivning
- skriven
- X
- år
- Om er
- Din
- zephyrnet