Exafunction støtter AWS Inferentia for å låse opp best prisytelse for maskinlæringsslutning PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Exafunction støtter AWS Inferentia for å låse opp den beste prisytelsen for maskinlæringsslutning

På tvers av alle bransjer blir maskinlæringsmodeller (ML) dypere, arbeidsflyter blir mer komplekse og arbeidsbelastninger opererer i større skalaer. Det legges ned betydelig innsats og ressurser på å gjøre disse modellene mer nøyaktige siden denne investeringen direkte resulterer i bedre produkter og opplevelser. På den annen side er det å få disse modellene til å kjøre effektivt i produksjon en ikke-triviell oppgave som ofte blir oversett, til tross for at den er nøkkelen til å oppnå ytelses- og budsjettmål. I dette innlegget dekker vi hvordan Exafunction og AWS slutning samarbeide for å låse opp enkel og kostnadseffektiv distribusjon for ML-modeller i produksjon.

Exafunction er en oppstart med fokus på å gjøre bedrifter i stand til å utføre ML i stor skala så effektivt som mulig. Et av produktene deres er ExaDeploy, en brukervennlig SaaS-løsning for å betjene ML-arbeidsbelastninger i stor skala. ExaDeploy orkestrerer effektivt ML-arbeidsbelastningene dine på tvers av blandede ressurser (CPU og maskinvareakseleratorer) for å maksimere ressursutnyttelsen. Den tar også seg av automatisk skalering, databehandling, nettverksproblemer, feiltoleranse og mer, for å sikre effektiv og pålitelig distribusjon. AWS Inferentia-basert Amazon EC2 Inf1-forekomster er spesialbygd for å levere den laveste kostnaden per slutning i skyen. ExaDeploy støtter nå Inf1-forekomster, som lar brukere få både maskinvarebaserte besparelser med akseleratorer og programvarebaserte besparelser ved optimalisert ressursvirtualisering og orkestrering i stor skala.

Løsningsoversikt

Hvordan ExaDeploy løser for distribusjonseffektivitet

For å sikre effektiv utnyttelse av dataressurser, må du vurdere riktig ressursallokering, automatisk skalering, datasamlokalisering, administrasjon av nettverkskostnader og ventetid, feiltoleranse, versjonering og reproduserbarhet og mer. I stor skala påvirker enhver ineffektivitet vesentlig kostnadene og ventetiden, og mange store selskaper har tatt tak i disse ineffektivitetene ved å bygge interne team og ekspertise. Imidlertid er det ikke praktisk for de fleste selskaper å påta seg denne økonomiske og organisatoriske overheaden med å bygge generaliserbar programvare som ikke er selskapets ønskede kjernekompetanse.

ExaDeploy er designet for å løse disse smertepunktene for distribusjonseffektivitet, inkludert de som sees i noen av de mest komplekse arbeidsbelastningene, for eksempel de i Autonomous Vehicle og Natural Language Processing (NLP)-applikasjoner. På noen store ML-arbeidsbelastninger har ExaDeploy redusert kostnadene med over 85 % uten å ofre ventetid eller nøyaktighet, med integrasjonstid så lav som én ingeniørdag. ExaDeploy har vist seg å automatisk skalere og administrere tusenvis av samtidige maskinvareakseleratorressursinstanser uten systemforringelse.

Nøkkelfunksjonene til ExaDeploy inkluderer:

  • Kjører i skyen din: Ingen av modellene, inngangene eller utgangene dine forlater ditt private nettverk. Fortsett å bruke dine skyleverandørrabatter.
  • Delte akseleratorressurser: ExaDeploy optimerer akseleratorene som brukes ved å aktivere flere modeller eller arbeidsbelastninger for å dele akseleratorressurser. Den kan også identifisere om flere arbeidsbelastninger distribuerer den samme modellen, og deretter dele modellen på tvers av disse arbeidsbelastningene, og dermed optimalisere akseleratoren som brukes. Dens automatiske rebalansering og node-drenering maksimerer utnyttelsen og minimerer kostnadene.

Exafunction støtter AWS Inferentia for å låse opp best prisytelse for maskinlæringsslutning PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

  • Skalerbar serverløs distribusjonsmodell: ExaDeploy automatiske skaleringer basert på akseleratorressursmetning. Skaler ned dynamisk til 0 eller opp til tusenvis av ressurser.
  • Støtte for en rekke beregningstyper: Du kan laste ned dyplæringsmodeller fra alle store ML-rammeverk samt vilkårlig C++-kode, CUDA-kjerner, tilpassede operasjoner og Python-funksjoner.
  • Dynamisk modellregistrering og versjonering: Nye modeller eller modellversjoner kan registreres og kjøres uten å måtte bygge om eller distribuere systemet på nytt.
  • Punkt-til-punkt utførelse: Klienter kobler direkte til eksterne akseleratorressurser, noe som muliggjør lav ventetid og høy gjennomstrømning. De kan til og med lagre staten eksternt.
  • Asynkron utførelse: ExaDeploy støtter asynkron kjøring av modeller, som lar klienter parallellisere lokal beregning med ekstern akseleratorressursarbeid.
  • Feiltolerante eksterne rørledninger: ExaDeploy lar klienter dynamisk komponere eksterne beregninger (modeller, forbehandling, etc.) til rørledninger med feiltoleransegaranti. ExaDeploy-systemet håndterer pod- eller nodefeil med automatisk gjenoppretting og replay, slik at utviklerne aldri trenger å tenke på å sikre feiltoleranse.
  • Ut-av-boksen overvåking: ExaDeploy gir Prometheus-målinger og Grafana-dashbord for å visualisere akseleratorressursbruk og andre systemmålinger.

ExaDeploy støtter AWS Inferentia

AWS Inferentia-baserte Amazon EC2 Inf1-forekomster er designet for dyp læringsspesifikke inferensarbeidsbelastninger. Disse forekomstene gir opptil 2.3x gjennomstrømning og opptil 70 % kostnadsbesparelse sammenlignet med den nåværende generasjonen av GPU-slutningsforekomster.

ExaDeploy støtter nå AWS Inferentia, og sammen låser de opp den økte ytelsen og kostnadsbesparelsene oppnådd gjennom spesialbygd maskinvareakselerasjon og optimalisert ressursorkestrering i stor skala. La oss se på de kombinerte fordelene med ExaDeploy og AWS Inferentia ved å vurdere en svært vanlig moderne ML-arbeidsbelastning: batcharbeidsmengder med blandet databehandling.

Hypotetiske arbeidsbelastningsegenskaper:

  • 15 ms med kun CPU-for-/etter-prosess
  • Modellslutning (15 ms på GPU, 5 ms på AWS Inferentia)
  • 10 klienter, hver sender forespørsel hver 20. ms
  • Omtrentlig relativ kostnad for CPU:Inferentia:GPU er 1:2:4 (Basert på Amazon EC2 On-Demand-priser for c5.xlarge, inf1.xlarge og g4dn.xlarge)

Tabellen nedenfor viser hvordan hvert av alternativene former seg:

Oppsett Ressurser som trengs Kostnad Ventetid
GPU uten ExaDeploy 2 CPU, 2 GPU per klient (totalt 20 CPUer, 20 GPU) 100 30 ms
GPU med ExaDeploy 8 GPUer delt på 10 klienter, 1 CPU per klient 42 30 ms
AWS Inferentia uten ExaDeploy 1 CPU, 1 AWS Inferentia per klient (totalt 10 CPUer, 10 Inferentia) 30 20 ms
AWS Inferentia med ExaDeploy 3 AWS Inferentia delt på 10 klienter, 1 CPU per klient 16 20 ms

ExaDeploy på AWS Inferentia eksempel

I denne delen går vi over trinnene for å konfigurere ExaDeploy gjennom et eksempel med inf1-noder på en BERT PyTorch-modell. Vi så en gjennomsnittlig gjennomstrømning på 1140 prøver/sek. for bert-base-modellen, noe som viser at lite eller ingen overhead ble introdusert av ExaDeploy for denne enkeltmodellen med enkelt arbeidsbelastning.

Trinn 1: Sett opp en Amazon Elastic Kubernetes-tjeneste (Amazon EKS) klynge

En Amazon EKS-klynge kan tas opp med vår Terraform AWS-modul. For vårt eksempel brukte vi en inf1.xlarge for AWS Inferentia.

Trinn 2: Sett opp ExaDepoy

Det andre trinnet er å sette opp ExaDeploy. Generelt er distribusjonen av ExaDeploy på inf1-forekomster grei. Oppsettet følger stort sett samme prosedyre som det gjør på grafikkbehandlingsenhet (GPU)-forekomster. Den primære forskjellen er å endre modellkoden fra GPU til AWS Inferentia og kompilere modellen på nytt. For eksempel, å flytte fra g4dn til inf1-forekomster ved å bruke ExaDeploys applikasjonsprogrammeringsgrensesnitt (API) krevde at bare omtrent 10 linjer med kode ble endret.

  • En enkel metode er å bruke Exafunctions Terraform AWS Kubernetes-modul or Hjelmdiagram. Disse distribuerer kjernekomponentene til ExaDeploy for å kjøre i Amazon EKS-klyngen.
  • Kompiler modell til et serialisert format (f.eks. TorchScript, TF-lagrede modeller, ONNX, etc). For AWS Inferentia fulgte vi denne opplæringen.
  • Registrer den kompilerte modellen 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 for 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",
    )

  • Kjø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 grensene for gjennomstrømming for modellslutninger og leverer laveste kostnad per slutning i skyen. Når det er sagt, trenger selskaper riktig orkestrering for å nyte pris-ytelsesfordelene ved Inf1 i stor skala. ML-servering er et komplekst problem som, hvis det løses internt, krever ekspertise som er fjernet fra selskapets mål og ofte forsinker produkttidslinjer. ExaDeploy, som er Exafunctions ML-distribusjonsprogramvareløsning, har fremstått som bransjeledende. Den betjener selv de mest komplekse ML-arbeidsbelastningene, samtidig som den gir jevne integreringsopplevelser og støtte fra et team i verdensklasse. Sammen låser ExaDeploy og AWS Inferentia opp økt ytelse og kostnadsbesparelser for inferensarbeidsbelastninger i stor skala.

konklusjonen

I dette innlegget viste vi deg hvordan Exafunction støtter AWS Inferentia for ytelse ML. For mer informasjon om byggeapplikasjoner med Exafunction, besøk Exafunction. For beste fremgangsmåter for å bygge dype læringsarbeidsmengder på Inf1, besøk Amazon EC2 Inf1-forekomster.


Om forfatterne

Nicholas Jiang, programvareingeniør, Exafunction

Jonathan Ma, programvareingeniør, Exafunction

Prem Nair, programvareingeniør, Exafunction

Anshul Ramachandran, programvareingeniør, Exafunction

Shruti Koparkar, senior produktmarkedsføringssjef, AWS

Tidstempel:

Mer fra AWS maskinlæring