Exafunction understøtter AWS Inferentia for at låse op for den bedste prisydeevne for maskinlæringsinferens PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Exafunction understøtter AWS Inferentia for at låse op for den bedste prisydelse til maskinlæringsslutning

På tværs af alle brancher bliver maskinlæringsmodeller (ML) dybere, arbejdsgange bliver mere komplekse, og arbejdsbelastninger fungerer i større skala. Der lægges en betydelig indsats og ressourcer i at gøre disse modeller mere præcise, da denne investering direkte resulterer i bedre produkter og oplevelser. På den anden side er det en ikke-triviel opgave at få disse modeller til at køre effektivt i produktionen, som ofte overses, på trods af at det er nøglen til at opnå præstations- og budgetmål. I dette indlæg dækker vi, hvordan Exafunction og AWS-inferens arbejde sammen for at låse op for nem og omkostningseffektiv implementering af ML-modeller i produktion.

Exafunktion er en start-up med fokus på at sætte virksomheder i stand til at udføre ML i skala så effektivt som muligt. Et af deres produkter er ExaDeploy, en letanvendelig SaaS-løsning til at betjene ML-arbejdsbelastninger i stor skala. ExaDeploy orkestrerer effektivt dine ML-arbejdsbelastninger på tværs af blandede ressourcer (CPU og hardwareacceleratorer) for at maksimere ressourceudnyttelsen. Det tager sig også af automatisk skalering, computercolocation, netværksproblemer, fejltolerance og mere for at sikre effektiv og pålidelig implementering. AWS Inferentia-baseret Amazon EC2 Inf1-forekomster er specialbygget til at levere den laveste pris pr. slutning i skyen. ExaDeploy understøtter nu Inf1-instanser, som giver brugerne mulighed for at få både de hardwarebaserede besparelser ved acceleratorer og de softwarebaserede besparelser ved optimeret ressourcevirtualisering og orkestrering i stor skala.

Løsningsoversigt

Hvordan ExaDeploy løser for implementeringseffektivitet

For at sikre effektiv udnyttelse af computerressourcer skal du overveje korrekt ressourceallokering, automatisk skalering, compute co-location, administration af netværksomkostninger og latency, fejltolerance, versionering og reproducerbarhed og mere. I stor skala påvirker enhver ineffektivitet væsentligt omkostninger og latenstid, og mange store virksomheder har rettet op på disse ineffektiviteter ved at opbygge interne teams og ekspertise. Det er dog ikke praktisk for de fleste virksomheder at påtage sig denne økonomiske og organisatoriske overhead med at bygge generaliserbar software, som ikke er virksomhedens ønskede kernekompetence.

ExaDeploy er designet til at løse disse smertepunkter for implementeringseffektivitet, inklusive dem, der ses i nogle af de mest komplekse arbejdsbelastninger, såsom dem i Autonomous Vehicle og NLP-applikationer (natural language processing). På nogle store batch-ML-arbejdsbelastninger har ExaDeploy reduceret omkostningerne med over 85 % uden at ofre på latenstid eller nøjagtighed, med integrationstid så lav som én ingeniørdag. Det er bevist, at ExaDeploy automatisk skalerer og administrerer tusindvis af samtidige hardwareaccelerator-ressourceforekomster uden systemforringelse.

Nøglefunktioner i ExaDeploy inkluderer:

  • Kører i din sky: Ingen af ​​dine modeller, input eller output forlader nogensinde dit private netværk. Fortsæt med at bruge dine cloud-udbyderrabatter.
  • Delte acceleratorressourcer: ExaDeploy optimerer de anvendte acceleratorer ved at aktivere flere modeller eller arbejdsbelastninger til at dele acceleratorressourcer. Den kan også identificere, om flere arbejdsbelastninger implementerer den samme model, og derefter dele modellen på tværs af disse arbejdsbelastninger og derved optimere den anvendte accelerator. Dens automatiske rebalancering og node-dræning maksimerer udnyttelsen og minimerer omkostningerne.

Exafunction understøtter AWS Inferentia for at låse op for den bedste prisydeevne for maskinlæringsinferens PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

  • Skalerbar serverløs implementeringsmodel: ExaDeploy automatiske skaleringer baseret på acceleratorressourcemætning. Skaler ned dynamisk til 0 eller op til tusindvis af ressourcer.
  • Understøttelse af en række forskellige beregningstyper: Du kan aflæse deep learning-modeller fra alle større ML-frameworks såvel som vilkårlig C++-kode, CUDA-kerner, brugerdefinerede ops og Python-funktioner.
  • Dynamisk modelregistrering og versionering: Nye modeller eller modelversioner kan registreres og køres uden at skulle genopbygge eller geninstallere systemet.
  • Punkt-til-punkt udførelse: Klienter opretter direkte forbindelse til fjernacceleratorressourcer, hvilket muliggør lav latenstid og høj gennemstrømning. De kan endda gemme tilstanden eksternt.
  • Asynkron udførelse: ExaDeploy understøtter asynkron udførelse af modeller, hvilket giver klienter mulighed for at parallelisere lokal beregning med ekstern accelerator ressourcearbejde.
  • Fejltolerante fjernrørledninger: ExaDeploy giver klienter mulighed for dynamisk at komponere fjernberegninger (modeller, forbehandling osv.) til pipelines med fejltolerancegaranti. ExaDeploy-systemet håndterer pod- eller nodefejl med automatisk gendannelse og genafspilning, så udviklerne aldrig skal tænke på at sikre fejltolerance.
  • Out-of-the-box overvågning: ExaDeploy leverer Prometheus-metrics og Grafana-dashboards til at visualisere acceleratorressourceforbrug og andre systemmetrikker.

ExaDeploy understøtter AWS Inferentia

AWS Inferentia-baserede Amazon EC2 Inf1-instanser er designet til deep learning-specifikke inferensarbejdsbelastninger. Disse instanser giver op til 2.3x gennemløb og op til 70 % omkostningsbesparelse sammenlignet med den nuværende generation af GPU-inferensinstanser.

ExaDeploy understøtter nu AWS Inferentia, og sammen låser de op for den øgede ydeevne og omkostningsbesparelser opnået gennem specialbygget hardware-acceleration og optimeret ressourceorkestrering i stor skala. Lad os se på de kombinerede fordele ved ExaDeploy og AWS Inferentia ved at overveje en meget almindelig moderne ML-arbejdsbelastning: batched, mixed-compute-arbejdsbelastninger.

Hypotetiske arbejdsbelastningskarakteristika:

  • 15 ms af CPU-kun for-/efter-proces
  • Modelinferens (15 ms på GPU, 5 ms på AWS Inferentia)
  • 10 klienter, hver fremsætter anmodning hver 20. ms
  • Omtrentlig relativ pris for CPU:Inferentia:GPU er 1:2:4 (Baseret på Amazon EC2 On-Demand-priser for c5.xlarge, inf1.xlarge og g4dn.xlarge)

Tabellen nedenfor viser, hvordan hver af mulighederne former sig:

Opsætning Nødvendige ressourcer Koste Latency
GPU uden ExaDeploy 2 CPU, 2 GPU pr. klient (i alt 20 CPU, 20 GPU) 100 30 ms
GPU med ExaDeploy 8 GPU'er delt på tværs af 10 klienter, 1 CPU pr. klient 42 30 ms
AWS Inferentia uden ExaDeploy 1 CPU, 1 AWS Inferentia pr. klient (i alt 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia med ExaDeploy 3 AWS Inferentia delt på tværs af 10 klienter, 1 CPU pr. klient 16 20 ms

ExaDeploy på AWS Inferentia eksempel

I dette afsnit gennemgår vi trinene til at konfigurere ExaDeploy gennem et eksempel med inf1-noder på en BERT PyTorch-model. Vi så en gennemsnitlig gennemstrømning på 1140 prøver/sek. for bert-base-modellen, hvilket viser, at lidt eller ingen overhead blev introduceret af ExaDeploy for denne enkelt model, enkelt arbejdsbelastningsscenarie.

Trin 1: Opsæt en Amazon Elastic Kubernetes Service (Amazon EKS) klynge

En Amazon EKS-klynge kan opdrages med vores Terraform AWS modul. Til vores eksempel brugte vi en inf1.xlarge til AWS Inferentia.

Trin 2: Konfigurer ExaDepoy

Det andet trin er at konfigurere ExaDeploy. Generelt er implementeringen af ​​ExaDeploy på inf1-instanser ligetil. Opsætningen følger for det meste den samme procedure, som den gør på GPU-forekomster (graphics processing unit). Den primære forskel er at ændre modeltagget fra GPU til AWS Inferentia og genkompilere modellen. For eksempel krævede flytning fra g4dn til inf1-instanser ved hjælp af ExaDeploys applikationsprogrammeringsgrænseflader (API'er) kun cirka 10 linjer kode, der skulle ændres.

  • En simpel metode er at bruge Exafunction's Terraform AWS Kubernetes-modul or Hjelmdiagram. Disse implementerer de centrale ExaDeploy-komponenter til at køre i Amazon EKS-klyngen.
  • Kompiler model til et serialiseret format (f.eks. TorchScript, TF-gemte modeller, ONNX osv.). For AWS Inferentia fulgte vi denne tutorial.
  • Registrer den kompilerede model i ExaDeploys modullager.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • Forbered dataene til modellen (dvs. ikke ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunction’s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • Kør modellen eksternt fra klienten.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy og AWS Inferentia: Bedre sammen

AWS Inferentia flytter grænserne for gennemstrømning af modelslutninger og leverer den laveste pris pr. slutning i skyen. Når det er sagt, har virksomheder brug for den rette orkestrering for at nyde pris-ydelsesfordelene ved Inf1 i stor skala. ML-servering er et komplekst problem, der, hvis det løses internt, kræver ekspertise, der er fjernet fra virksomhedens mål og ofte forsinker produkttidslinjer. ExaDeploy, som er Exafunctions ML-implementeringssoftwareløsning, har vist sig som branchens førende. Den betjener selv de mest komplekse ML-arbejdsbelastninger, samtidig med at den giver smidige integrationsoplevelser og support fra et verdensklasse-team. Sammen låser ExaDeploy og AWS Inferentia op for øget ydeevne og omkostningsbesparelser for inferensarbejdsbelastninger i stor skala.

Konklusion

I dette indlæg viste vi dig, hvordan Exafunction understøtter AWS Inferentia for performance ML. For mere information om at bygge applikationer med Exafunction, besøg Exafunktion. Besøg Amazon EC2 Inf1-forekomster.


Om forfatterne

Nicholas Jiang, softwareingeniør, Exafunction

Jonathan Ma, softwareingeniør, Exafunction

Prem Nair, softwareingeniør, Exafunction

Anshul Ramachandran, softwareingeniør, Exafunction

Shruti Koparkar, Sr. Product Marketing Manager, AWS

Tidsstempel:

Mere fra AWS maskinindlæring