Når Deep Learning-modeller implementeres i stor skala, er det afgørende effektivt at udnytte den underliggende hardware for at maksimere ydeevnen og omkostningsfordelene. For produktionsarbejdsbelastninger, der kræver høj gennemstrømning og lav latens, er valget af Amazon Elastic Compute Cloud (EC2)-instans, modelserveringsstack og implementeringsarkitektur er meget vigtig. Ineffektiv arkitektur kan føre til suboptimal udnyttelse af acceleratorerne og unødvendigt høje produktionsomkostninger.
I dette indlæg leder vi dig gennem processen med at implementere FastAPI-modelservere på AWS Inferentia-enheder (findes på Amazon EC2 Inf1 og Amazon EC Inf2 tilfælde). Vi demonstrerer også hosting af en prøvemodel, der er installeret parallelt på tværs af alle NeuronCores for maksimal hardwareudnyttelse.
Løsningsoversigt
FastAPI er et open source-webframework til at betjene Python-applikationer, der er meget hurtigere end traditionelle frameworks som Flask og Django. Den bruger en Asynkron Server Gateway Interface (ASGI) i stedet for det meget brugte Web Server Gateway Interface (WSGI). ASGI behandler indkommende anmodninger asynkront i modsætning til WSGI, som behandler anmodninger sekventielt. Dette gør FastAPI til det ideelle valg til at håndtere latensfølsomme anmodninger. Du kan bruge FastAPI til at implementere en server, der er vært for et slutpunkt på en Inferentia (Inf1/Inf2) forekomst, der lytter til klientanmodninger gennem en udpeget port.
Vores mål er at opnå højeste ydeevne til laveste omkostninger gennem maksimal udnyttelse af hardwaren. Dette giver os mulighed for at håndtere flere slutningsanmodninger med færre acceleratorer. Hver AWS Inferentia1-enhed indeholder fire NeuronCores-v1, og hver AWS Inferentia2-enhed indeholder to NeuronCores-v2. Det AWS Neuron SDK giver os mulighed for at bruge hver af NeuronCores parallelt, hvilket giver os mere kontrol med at indlæse og udlede fire eller flere modeller parallelt uden at ofre gennemløbet.
Med FastAPI har du dit valg af Python-webserver (kanonhjørning, Uvicorn, Hypercorn, Daphne). Disse webservere leverer et abstraktionslag oven på den underliggende Machine Learning (ML) model. Den anmodende klient har fordelen af at være uvidende om den hostede model. En klient behøver ikke at kende modellens navn eller version, der er blevet installeret under serveren; endpoint-navnet er nu kun en proxy til en funktion, der indlæser og kører modellen. I modsætning hertil er modellens navn og version i et rammespecifikt serveringsværktøj, såsom TensorFlow Serving, en del af endpoint-navnet. Hvis modellen ændrer sig på serversiden, skal klienten kende og ændre sit API-kald til det nye slutpunkt i overensstemmelse hermed. Derfor, hvis du løbende udvikler versionsmodellerne, såsom i tilfældet med A/B-test, så er brugen af en generisk Python-webserver med FastAPI en bekvem måde at betjene modeller på, fordi endepunktets navn er statisk.
En ASGI-servers rolle er at skabe et specificeret antal arbejdere, der lytter efter klientanmodninger og kører inferenskoden. En vigtig egenskab ved serveren er at sikre, at det ønskede antal medarbejdere er tilgængelige og aktive. I tilfælde af at en arbejder bliver dræbt, skal serveren starte en ny arbejder. I denne sammenhæng kan serveren og arbejderne identificeres ved deres Unix-proces-id (PID). Til dette indlæg bruger vi en Hypercorn server, som er et populært valg for Python-webservere.
I dette indlæg deler vi bedste praksis for at implementere deep learning-modeller med FastAPI på AWS Inferentia NeuronCores. Vi viser, at du kan implementere flere modeller på separate NeuronCores, der kan kaldes samtidigt. Denne opsætning øger gennemløbet, fordi flere modeller kan udledes samtidigt, og NeuronCore-udnyttelsen er fuldt optimeret. Koden kan findes på GitHub repo. Følgende figur viser arkitekturen for, hvordan man opsætter løsningen på en EC2 Inf2-instans.
Den samme arkitektur gælder for en EC2 Inf1-instanstype, bortset fra at den har fire kerner. Så det ændrer arkitekturdiagrammet en lille smule.
AWS Inferentia NeuronCores
Lad os grave lidt dybere ned i værktøjer leveret af AWS Neuron til at engagere sig i NeuronCores. Følgende tabeller viser antallet af NeuronCores i hver Inf1- og Inf2-instanstype. Værts-vCPU'erne og systemhukommelsen deles på tværs af alle tilgængelige NeuronCores.
Forekomststørrelse | # Inferentia-acceleratorer | # NeuronCores-v1 | vCPU'er | Hukommelse (GiB) |
Inf1.xlarge | 1 | 4 | 4 | 8 |
Inf1.2xlarge | 1 | 4 | 8 | 16 |
Inf1.6xlarge | 4 | 16 | 24 | 48 |
Inf1.24xlarge | 16 | 64 | 96 | 192 |
Forekomststørrelse | # Inferentia-acceleratorer | # NeuronCores-v2 | vCPU'er | Hukommelse (GiB) |
Inf2.xlarge | 1 | 2 | 4 | 32 |
Inf2.8xlarge | 1 | 2 | 32 | 32 |
Inf2.24xlarge | 6 | 12 | 96 | 192 |
Inf2.48xlarge | 12 | 24 | 192 | 384 |
Inf2-forekomster indeholder den nye NeuronCores-v2 i sammenligning med NeuronCore-v1 i Inf1-forekomsterne. På trods af færre kerner er de i stand til at tilbyde 4x højere gennemløb og 10x lavere latenstid end Inf1-instanser. Inf2-instanser er ideelle til Deep Learning-arbejdsbelastninger som Generative AI, Large Language Models (LLM) i OPT/GPT-familien og vision-transformere som Stable Diffusion.
Neuron Runtime er ansvarlig for at køre modeller på Neuron-enheder. Neuron Runtime bestemmer, hvilken NeuronCore, der skal køre hvilken model, og hvordan den skal køres. Konfiguration af Neuron Runtime styres ved brug af miljøvariabler på procesniveau. Som standard vil Neuron framework-udvidelser tage sig af Neuron Runtime-konfigurationen på brugerens vegne; dog er eksplicitte konfigurationer også mulige for at opnå mere optimeret adfærd.
To populære miljøvariabler er NEURON_RT_NUM_CORES
, NEURON_RT_VISIBLE_CORES
. Med disse miljøvariabler kan Python-processer knyttes til en NeuronCore. Med NEURON_RT_NUM_CORES
, kan et specificeret antal kerner reserveres til en proces, og med NEURON_RT_VISIBLE_CORES
, kan en række NeuronCores reserveres. For eksempel, NEURON_RT_NUM_CORES=2 myapp.py
vil reservere to kerner og NEURON_RT_VISIBLE_CORES=’0-2’ myapp.py
vil reservere nul, en og to kerner til myapp.py
. Du kan også reservere NeuronCores på tværs af enheder (AWS Inferentia-chips). Så, NEURON_RT_VISIBLE_CORES=’0-5’ myapp.py
vil reservere de første fire kerner på device1
og en kerne på device2
i en Ec2 Inf1-instanstype. På samme måde vil denne konfiguration på en EC2 Inf2-instanstype reservere to kerner på tværs device1
, device2
og en kerne på device3
. Følgende tabel opsummerer konfigurationen af disse variable.
Navn | Beskrivelse | Type | Forventede værdier | Standard værdi | RT-version |
NEURON_RT_VISIBLE_CORES |
En række specifikke NeuronCores, der er nødvendige for processen | Heltalsområde (som 1-3) | Enhver værdi eller område mellem 0 til Max NeuronCore i systemet | Ingen | 2.0 + |
NEURON_RT_NUM_CORES |
Antal NeuronCores, der kræves af processen | Integer | En værdi fra 1 til Max NeuronCore i systemet | 0, som fortolkes som "alle" | 2.0 + |
Se en liste over alle miljøvariabler Neuron Runtime-konfiguration.
Som standard, når modeller indlæses, indlæses modeller på NeuronCore 0 og derefter NeuronCore 1, medmindre det udtrykkeligt er angivet af de foregående miljøvariabler. Som angivet tidligere deler NeuronCores de tilgængelige vCPU'er og systemhukommelse. Derfor vil modeller, der er installeret på hver NeuronCore, konkurrere om de tilgængelige ressourcer. Dette vil ikke være et problem, hvis modellen i vid udstrækning bruger NeuronCores. Men hvis en model kun kører delvist på NeuronCores og resten på værts-vCPU'er, bliver det vigtigt at overveje CPU-tilgængelighed pr. NeuronCore. Dette påvirker også valget af instansen.
Følgende tabel viser antallet af værts-vCPU'er og systemhukommelse, der er tilgængelig pr. model, hvis én model blev implementeret til hver NeuronCore. Afhængigt af din applikations NeuronCore-brug, vCPU og hukommelsesbrug, anbefales det at køre test for at finde ud af, hvilken konfiguration der er mest effektiv for din applikation. Det Neuron Top værktøj kan hjælpe med at visualisere kerneudnyttelse og enheds- og værtshukommelsesudnyttelse. Baseret på disse målinger kan der træffes en informeret beslutning. Vi demonstrerer brugen af Neuron Top i slutningen af denne blog.
Forekomststørrelse | # Inferentia-acceleratorer | # Modeller | vCPU'er/model | Hukommelse/model (GiB) |
Inf1.xlarge | 1 | 4 | 1 | 2 |
Inf1.2xlarge | 1 | 4 | 2 | 4 |
Inf1.6xlarge | 4 | 16 | 1.5 | 3 |
Inf1.24xlarge | 16 | 64 | 1.5 | 3 |
Forekomststørrelse | # Inferentia-acceleratorer | # Modeller | vCPU'er/model | Hukommelse/model (GiB) |
Inf2.xlarge | 1 | 2 | 2 | 8 |
Inf2.8xlarge | 1 | 2 | 16 | 64 |
Inf2.24xlarge | 6 | 12 | 8 | 32 |
Inf2.48xlarge | 12 | 24 | 8 | 32 |
For at teste Neuron SDK-funktionerne selv, tjek det seneste ud Neuron-kapaciteter til PyTorch.
System opsætning
Følgende er den systemopsætning, der bruges til denne løsning:
Opsæt løsningen
Der er et par ting, vi skal gøre for at konfigurere løsningen. Start med at oprette en IAM-rolle, som din EC2-instans kommer til at antage, og som vil tillade den at skubbe og trække fra Amazon Elastic Container Registry.
Trin 1: Konfigurer IAM-rollen
- Start med at logge ind på konsollen og få adgang til IAM > Roller > Opret rolle
- Vælg Trusted enhedstype
AWS Service
- Vælg EC2 som tjenesten under use-case
- Klik Næste og du vil kunne se alle tilgængelige politikker
- Med henblik på denne løsning vil vi give vores EC2-instans fuld adgang til ECR. Filtrer til AmazonEC2ContainerRegistryFullAccess og vælg det.
- Tryk på næste og navngiv rollen
inf-ecr-access
Bemærk: den politik, vi vedhæftede, giver EC2-instansen fuld adgang til Amazon ECR. Vi anbefaler stærkt at følge mindst privilegerede principal til produktionsbelastninger.
Trin 2: Konfigurer AWS CLI
Hvis du bruger den foreskrevne Deep Learning AMI angivet ovenfor, leveres den med AWS CLI installeret. Hvis du bruger en anden AMI (Amazon Linux 2023, Base Ubuntu osv.), skal du installere CLI-værktøjerne ved at følge denne vejledning.
Når du har installeret CLI-værktøjerne, skal du konfigurere CLI ved hjælp af kommandoen aws configure
. Hvis du har adgangsnøgler, kan du tilføje dem her, men du behøver dem ikke nødvendigvis for at interagere med AWS-tjenester. Vi er afhængige af IAM-roller til at gøre det.
Bemærk: Vi skal indtaste mindst én værdi (standardområde eller standardformat) for at oprette standardprofilen. For dette eksempel går vi med us-east-2
som regionen og json
som standard output.
Klon Github-depotet
GitHub repo leverer alle de scripts, der er nødvendige for at implementere modeller ved hjælp af FastAPI på NeuronCores på AWS Inferentia-instanser. Dette eksempel bruger Docker-containere til at sikre, at vi kan skabe genanvendelige løsninger. Inkluderet i dette eksempel er følgende config.properties fil, som brugerne kan give input.
Konfigurationsfilen skal bruge brugerdefinerede navnepræfikser til Docker-billedet og Docker-beholderne. Det build.sh
script i fastapi
, trace-model
mapper bruger dette til at oprette Docker-billeder.
Kompiler en model på AWS Inferentia
Vi starter med at spore modellen og producere en PyTorch Torchscript .pt-fil. Start med at få adgang trace-model
bibliotek og ændring af .env-filen. Afhængigt af den type forekomst, du har valgt, skal du ændre CHIP_TYPE
i .env
fil. Som eksempel vil vi vælge Inf2 som guide. De samme trin gælder for implementeringsprocessen for Inf1.
Indstil derefter standardområdet i den samme fil. Denne region vil blive brugt til at oprette et ECR-lager, og Docker-billeder vil blive skubbet til dette lager. Også i denne mappe giver vi alle de nødvendige scripts til at spore en bert-base-uncased
model på AWS Inferentia. Dette script kan bruges til de fleste modeller tilgængelige på Knusende ansigt. Det Dockerfil har alle afhængigheder til at køre modeller med Neuron og kører trace-model.py kode som indgangspunkt.
Neuron kompilering forklaret
Neuron SDK's API ligner meget PyTorch Python API. Det torch.jit.trace()
fra PyTorch tager modellen og prøveinputtensoren som argumenter. Eksempelinputtene føres til modellen, og de operationer, der påkaldes, når inputtet går gennem modellens lag, registreres som TorchScript. For at lære mere om JIT-sporing i PyTorch, se følgende dokumentation.
Ligesom torch.jit.trace()
, kan du tjekke, om din model kan kompileres på AWS Inferentia med følgende kode for inf1-forekomster.
For inf2 kaldes biblioteket torch_neuronx
. Her er, hvordan du kan teste din modelkompilering mod inf2-forekomster.
Efter at have oprettet sporingsforekomsten kan vi videregive eksemplet på tensorinput sådan:
Og gem endelig det resulterende TorchScript-output på lokal disk
Som vist i den foregående kode, kan du bruge compiler_args
, optimizations
for at optimere implementeringen. For en detaljeret liste over argumenter for torch.neuron.trace
API, se PyTorch-Neuron sporingspython API.
Husk følgende vigtige punkter:
- Neuron SDK understøtter ikke dynamiske tensorformer, da dette skrives. Derfor skal en model kompileres separat for forskellige inputformer. For mere information om at køre inferens på variable inputformer med bucketing, se Kørende slutning om variable inputformer med bucketing.
- Hvis du oplever problemer med hukommelse, når du kompilerer en model, kan du prøve at kompilere modellen på en AWS Inferentia-instans med flere vCPU'er eller hukommelse, eller endda en stor c6i- eller r6i-instans, da kompilering kun bruger CPU'er. Når først den er kompileret, kan den sporede model sandsynligvis køres på mindre AWS Inferentia-instansstørrelser.
Byg procesforklaring
Nu vil vi bygge denne container ved at køre build.sh. Byg script-filen opretter simpelthen Docker-billedet ved at trække et grundlæggende Deep Learning Container Image og installere HuggingFace transformers
pakke. Baseret på CHIP_TYPE
specificeret i .env
fil, den docker.properties
fil beslutter passende BASE_IMAGE
. Denne BASE_IMAGE
peger på et Deep Learning Container Image for Neuron Runtime leveret af AWS.
Det er tilgængeligt gennem et privat ECR-lager. Før vi kan trække billedet, skal vi logge ind og få midlertidige AWS-legitimationsoplysninger.
Bemærk: vi er nødt til at erstatte regionen, der er angivet i kommandoen angivet af regionsflaget og inden for depot-URI'en med den region, vi sætter i .env fil.
For at gøre denne proces lettere, kan vi bruge fetch-credentials.sh
fil. Området tages automatisk fra .env-filen.
Dernæst skubber vi billedet ved hjælp af scriptet push.sh. Push-scriptet opretter et lager i Amazon ECR til dig og skubber containerbilledet.
Endelig, når billedet er bygget og skubbet, kan vi køre det som en container ved at køre run.sh og hale kører logs med logs.sh. I kompileringslogfilerne (se følgende skærmbillede) vil du se procentdelen af aritmetiske operatorer kompileret på Neuron og procentdelen af modelundergrafer, der er kompileret med succes på Neuron. Skærmbilledet viser compilerlogfilerne for bert-base-uncased-squad2
model. Logfilerne viser, at 95.64% af de aritmetiske operatorer blev kompileret, og det giver også en liste over operatorer, der blev kompileret på Neuron og dem, der ikke er understøttet.
Her er en liste af alle understøttede operatører i den seneste PyTorch Neuron-pakke. Tilsvarende her er listen af alle understøttede operatører i den seneste PyTorch Neuronx-pakke.
Implementer modeller med FastAPI
Efter at modellerne er kompileret, vil den sporede model være til stede i trace-model
folder. I dette eksempel har vi placeret den sporede model for en batchstørrelse på 1. Vi betragter en batchstørrelse på 1 her for at tage højde for de anvendelsestilfælde, hvor en højere batchstørrelse ikke er mulig eller påkrævet. Til anvendelsestilfælde, hvor der er behov for større batchstørrelser torch.neuron.DataParallel (for Inf1) eller torch.neuronx.DataParallel (for Inf2) API kan også være nyttig.
hurtig-api mappen indeholder alle de nødvendige scripts til at implementere modeller med FastAPI. For at implementere modellerne uden ændringer skal du blot køre deploy.sh script, og det vil bygge et FastAPI-containerbillede, køre containere på det angivne antal kerner og implementere det angivne antal modeller pr. server i hver FastAPI-modelserver. Denne folder indeholder også en .env
fil, skal du ændre den, så den afspejler den korrekte CHIP_TYPE
, AWS_DEFAULT_REGION
.
Bemærk: FastAPI-scripts er afhængige af de samme miljøvariabler, der bruges til at bygge, pushe og køre billederne som containere. FastAPI-implementeringsscripts vil bruge de sidst kendte værdier fra disse variabler. Så hvis du sporede modellen for Inf1-instanstypen sidst, vil denne model blive implementeret gennem disse scripts.
fastapi-server.py fil, der er ansvarlig for at hoste serveren og sende anmodningerne til modellen, gør følgende:
- Læser antallet af modeller pr. server og placeringen af den kompilerede model fra egenskabsfilen
- Indstiller synlige NeuronCores som miljøvariable til Docker-beholderen og læser miljøvariablerne for at angive, hvilke NeuronCores der skal bruges
- Giver en inferens-API for
bert-base-uncased-squad2
model - Med
jit.load()
, indlæser antallet af modeller pr. server som angivet i konfigurationen og gemmer modellerne og de nødvendige tokenizere i globale ordbøger
Med denne opsætning ville det være relativt nemt at opsætte API'er, der viser hvilke modeller og hvor mange modeller der er gemt i hver NeuronCore. På samme måde kunne API'er skrives for at slette modeller fra specifikke NeuronCores.
Dockerfil til bygning af FastAPI-containere er bygget på Docker-billedet, vi byggede til sporing af modellerne. Det er derfor docker.ejendomme filen angiver ECR-stien til Docker-billedet til sporing af modellerne. I vores opsætning er Docker-beholderne på tværs af alle NeuronCores ens, så vi kan bygge ét billede og køre flere beholdere fra ét billede. For at undgå indgangsfejl angiver vi ENTRYPOINT ["/usr/bin/env"]
i Dockerfilen, før du kører startup.sh
script, som ligner hypercorn fastapi-server:app -b 0.0.0.0:8080
. Dette opstartsscript er det samme for alle containere. Hvis du bruger det samme basisbillede som til sporingsmodeller, kan du bygge denne container ved blot at køre build.sh-scriptet. Det push.sh
script forbliver det samme som før til sporing af modeller. Det ændrede Docker-billede og containernavnet leveres af docker.properties
fil.
run.sh file
gør følgende:
- Læser Docker-billedet og containernavnet fra egenskaber fil, som igen læser
config.properties
fil, som har ennum_cores
brugerindstilling - Starter en loop fra 0 til
num_cores
og for hver kerne:- Indstiller portnummeret og enhedsnummeret
- Indstiller
NEURON_RT_VISIBLE_CORES
miljøvariabel - Angiver volumenmonteringen
- Kører en Docker-container
For klarhedens skyld ville Docker run-kommandoen til implementering i NeuronCore 0 for Inf1 se ud som følgende kode:
Kør-kommandoen til implementering i NeuronCore 5 ville se ud som følgende kode:
Efter at containerne er indsat, bruger vi run_apis.py script, som kalder API'erne i parallelle tråde. Koden er sat op til at kalde seks installerede modeller, en på hver NeuronCore, men kan nemt ændres til en anden indstilling. Vi kalder API'erne fra klientsiden som følger:
Overvåg NeuronCore
Efter at modelserverne er installeret, for at overvåge NeuronCore-brug, kan vi bruge neuron-top
at observere udnyttelsesprocenten af hver NeuronCore i realtid. neuron-top er et CLI-værktøj i Neuron SDK til at give information såsom NeuronCore, vCPU og hukommelsesudnyttelse. Indtast følgende kommando i en separat terminal:
Dit output skal ligne den følgende figur. I dette scenarie har vi specificeret at bruge to NeuronCores og to modeller pr. server på en Inf2.xlarge-instans. Følgende skærmbillede viser, at to modeller på hver 287.8 MB er indlæst på to NeuronCores. Med i alt 4 modeller indlæst, kan du se den brugte enhedshukommelse er 1.3 GB. Brug piletasterne til at flytte mellem NeuronCores på forskellige enheder
På samme måde ser vi på en Inf1.16xlarge instanstype i alt 12 modeller (2 modeller pr. kerne over 6 kerner) indlæst. Der forbruges en samlet hukommelse på 2.1 GB, og hver model er 177.2 MB i størrelse.
Når du kører run_apis.py script, kan du se procentdelen af udnyttelse af hver af de seks NeuronCores (se følgende skærmbillede). Du kan også se systemets vCPU-brug og runtime vCPU-brug.
Følgende skærmbillede viser Inf2-instansens kerneforbrugsprocent.
På samme måde viser dette skærmbillede kerneudnyttelse i en inf1.6xlarge instanstype.
Ryd op
For at rydde op i alle de Docker-containere, du har oprettet, leverer vi en cleanup.sh script, der fjerner alle kørende og stoppede containere. Dette script vil fjerne alle containere, så brug det ikke, hvis du vil holde nogle containere kørende.
Konklusion
Produktionsarbejdsbelastninger har ofte høj gennemløb, lav latenstid og omkostningskrav. Ineffektive arkitekturer, der suboptimalt udnytter acceleratorer, kan føre til unødvendigt høje produktionsomkostninger. I dette indlæg viste vi, hvordan man optimalt udnytter NeuronCores med FastAPI for at maksimere gennemløbet ved minimal latenstid. Vi har offentliggjort instruktionerne på vores GitHub repo. Med denne løsningsarkitektur kan du implementere flere modeller i hver NeuronCore og betjene flere modeller parallelt på forskellige NeuronCores uden at miste ydeevnen. For mere information om, hvordan man implementerer modeller i skala med tjenester som f.eks Amazon Elastic Kubernetes Service (Amazon EKS), se Server 3,000 deep learning-modeller på Amazon EKS med AWS Inferentia for under $50 i timen.
Om forfatterne
Ankur Srivastava er Sr. Solutions Architect i ML Frameworks Team. Han fokuserer på at hjælpe kunder med selvstyret distribueret træning og konklusioner i stor skala om AWS. Hans erfaring omfatter industriel prædiktiv vedligeholdelse, digitale tvillinger, probabilistisk designoptimering og har afsluttet sine doktorgradsstudier fra Mechanical Engineering ved Rice University og post-doc forskning fra Massachusetts Institute of Technology.
KC Tung er senior løsningsarkitekt i AWS Annapurna Labs. Han har specialiseret sig i store dybe læringsmodeller og implementering i stor skala i skyen. Han har en ph.d. i molekylær biofysik fra University of Texas Southwestern Medical Center i Dallas. Han har talt ved AWS Summits og AWS Reinvent. I dag hjælper han kunder med at træne og implementere store PyTorch- og TensorFlow-modeller i AWS-skyen. Han er forfatter til to bøger: Lær TensorFlow Enterprise , TensorFlow 2 Pocket Reference.
Pronoy Chopra er Senior Solutions Architect hos Startups Generative AI-teamet hos AWS. Han har specialiseret sig i at bygge og udvikle IoT- og Machine Learning-løsninger. Han har tidligere været med til at stifte to startups og nyder at være hands-on med projekter inden for IoT, AI/ML og Serverless-domænet.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/optimize-aws-inferentia-utilization-with-fastapi-and-pytorch-models-on-amazon-ec2-inf1-inf2-instances/
- :har
- :er
- :ikke
- :hvor
- $OP
- 000
- 1
- 1.3
- 10
- 100
- 12
- 13
- 15 %
- 2023
- 7
- 8
- 91
- a
- I stand
- Om
- over
- abstraktion
- acceleratorer
- adgang
- Adgang
- derfor
- Konto
- opnå
- tværs
- aktiv
- tilføje
- mod
- AI
- AI / ML
- Alle
- tillade
- tillader
- også
- Amazon
- Amazon EC2
- Amazon Web Services
- an
- ,
- enhver
- api
- API'er
- app
- Anvendelse
- applikationer
- Indløs
- passende
- arkitektur
- ER
- argumenter
- AS
- antage
- At
- forfatter
- automatisk
- tilgængelighed
- til rådighed
- undgå
- AWS
- AWS-inferens
- bund
- baseret
- BE
- fordi
- bliver
- været
- før
- vegne
- adfærd
- være
- gavner det dig
- fordele
- BEDSTE
- bedste praksis
- mellem
- Biofysik
- Bit
- Blog
- Bøger
- bygge
- Bygning
- bygget
- men
- by
- ringe
- kaldet
- Opkald
- CAN
- kapaciteter
- kapacitet
- hvilken
- tilfælde
- tilfælde
- center
- lave om
- ændret
- Ændringer
- kontrollere
- Chips
- valg
- Vælg
- valgte
- klarhed
- kunde
- nøje
- Cloud
- kode
- kommer
- sammenligning
- konkurrere
- Afsluttet
- Compute
- Konfiguration
- Overvej
- Overvejer
- Konsol
- forbruges
- indeholder
- Container
- Beholdere
- indeholder
- sammenhæng
- kontinuerligt
- kontrast
- kontrol
- kontrolleret
- Praktisk
- Core
- korrigere
- Koste
- Omkostninger
- kunne
- Par
- skabe
- oprettet
- skaber
- Oprettelse af
- Legitimationsoplysninger
- afgørende
- Kunder
- Dallas
- beslutning
- dyb
- dyb læring
- dybere
- Standard
- demonstrere
- Afhængigt
- indsætte
- indsat
- implementering
- implementering
- Design
- udpeget
- Trods
- detaljeret
- bestemmer
- udvikling
- enhed
- Enheder
- forskellige
- Broadcasting
- DIG
- digital
- Digitale tvillinger
- distribueret
- distribueret træning
- Django
- do
- Docker
- gør
- Er ikke
- domæne
- Dont
- dynamisk
- hver
- tidligere
- lettere
- nemt
- let
- EC
- effektivt
- ende
- Endpoint
- engagere
- Engineering
- sikre
- Indtast
- enhed
- indrejse
- Miljø
- fejl
- etc.
- Endog
- Hver
- udviklende
- eksempel
- Undtagen
- erfaring
- udvidelser
- Ansigtet
- familie
- hurtigere
- gennemførlig
- Funktionalitet
- Fed
- færre
- Figur
- File (Felt)
- filtrere
- Endelig
- Finde
- Fornavn
- fokuserer
- efter
- følger
- Til
- format
- fundet
- fire
- Framework
- rammer
- fra
- fuld
- fuldt ud
- funktion
- gateway
- generative
- Generativ AI
- få
- GitHub
- Giv
- giver
- Global
- gå
- vejlede
- håndtere
- hands-on
- Hardware
- Have
- he
- hjælpe
- hjælpe
- hjælper
- link.
- Høj
- højere
- højeste
- hans
- host
- hostede
- Hosting
- værter
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- KrammerFace
- ID
- ideal
- identificeret
- if
- billede
- billeder
- importere
- vigtigt
- in
- medtaget
- omfatter
- Indgående
- Stigninger
- industrielle
- ineffektiv
- oplysninger
- informeret
- indgang
- indgange
- installere
- installeret
- installation
- instans
- i stedet
- Institut
- anvisninger
- interagere
- ind
- påberåbes
- tingenes internet
- spørgsmål
- spørgsmål
- IT
- ITS
- JIT
- jpg
- lige
- Holde
- nøgler
- Kend
- kendt
- Labs
- Sprog
- stor
- Efternavn
- Latency
- seneste
- lancere
- lag
- lag
- føre
- LÆR
- læring
- Niveau
- Bibliotek
- ligesom
- linux
- Liste
- Børsnoterede
- lidt
- lidt dybere
- LLM
- lastning
- belastninger
- lokale
- placering
- logning
- Logge på
- Se
- ligner
- UDSEENDE
- miste
- Lav
- lavere
- laveste
- maskine
- machine learning
- lavet
- vedligeholdelse
- lave
- maerker
- Making
- mange
- Massachusetts
- Massachusetts Tekniske Institut
- max
- Maksimer
- maksimal
- Kan..
- mekanisk
- medicinsk
- Hukommelse
- Metrics
- tankerne
- minimum
- ML
- model
- modeller
- modificeret
- ændre
- molekylær
- Overvåg
- mere
- mest
- bevæge sig
- meget
- flere
- skal
- navn
- nødvendigvis
- nødvendig
- Behov
- behov
- behov
- Ny
- næste
- nu
- nummer
- objektiv
- observere
- of
- tilbyde
- tit
- on
- engang
- ONE
- kun
- på
- open source
- betjene
- Produktion
- Operatører
- modsætning
- optimering
- Optimer
- optimeret
- or
- vores
- ud
- output
- i løbet af
- pakke
- Parallel
- del
- passerer
- forbi
- sti
- per
- procentdel
- ydeevne
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- punkter
- politikker
- politik
- Populær
- mulig
- Indlæg
- praksis
- præsentere
- private
- sandsynligvis
- behandle
- Processer
- producerer
- produktion
- Profil
- projekter
- egenskaber
- give
- forudsat
- giver
- proxy
- offentliggjort
- trækker
- formål
- Skub ud
- skubbet
- skubber
- sætte
- Python
- pytorch
- rækkevidde
- ægte
- realtid
- anbefaler
- anbefales
- registreres
- afspejler
- region
- relativt
- stole
- stole
- resterne
- Fjern
- erstatte
- Repository
- anmodninger
- påkrævet
- Krav
- forskning
- Ligner
- Reserve
- forbeholdes
- Ressourcer
- svar
- ansvarlige
- REST
- resulterer
- genanvendelige
- Ris
- roller
- roller
- Kør
- kører
- løber
- at ofre
- samme
- Gem
- Scale
- scenarie
- scripts
- SDK
- se
- valg
- afsendelse
- senior
- følsom
- adskille
- Serverless
- Servere
- tjeneste
- Tjenester
- servering
- sæt
- indstilling
- setup
- former
- Del
- delt
- bør
- Vis
- viste
- vist
- Shows
- side
- lignende
- Tilsvarende
- ganske enkelt
- SIX
- Størrelse
- størrelser
- mindre
- So
- løsninger
- Løsninger
- nogle
- specialiseret
- specifikke
- specificeret
- talt
- stabil
- stable
- starte
- opstart
- Nystartede
- erklærede
- Steps
- stoppet
- opbevaret
- forhandler
- kraftigt
- undersøgelser
- Succesfuld
- sådan
- Topmøder
- support
- Understøttet
- sikker
- systemet
- bord
- Tag
- taget
- tager
- hold
- Teknologier
- midlertidig
- tensorflow
- terminal
- prøve
- Test
- tests
- Texas
- end
- at
- deres
- Them
- derefter
- derfor
- Disse
- de
- ting
- denne
- dem
- Gennem
- kapacitet
- Tied
- tid
- til
- i dag
- værktøj
- værktøjer
- top
- fakkel
- I alt
- Trace
- Sporing
- traditionelle
- Tog
- Kurser
- transformers
- betroet
- prøv
- TUR
- Twins
- to
- typen
- Ubuntu
- under
- underliggende
- universitet
- unix
- unødigt
- på
- us
- Brug
- brug
- anvendte
- Bruger
- brugere
- bruger
- ved brug af
- udnytte
- udnytter
- Ved hjælp af
- værdi
- Værdier
- udgave
- meget
- synlig
- vision
- bind
- ønsker
- var
- Vej..
- we
- web
- Webserver
- webservices
- GODT
- var
- hvornår
- som
- hvorfor
- bredt
- vilje
- med
- inden for
- uden
- arbejdstager
- arbejdere
- ville
- skrivning
- skriftlig
- Du
- Din
- dig selv
- zephyrnet
- nul