Exafunction ondersteunt AWS Inferentia om de beste prijs-prestaties te ontgrendelen voor machine learning-inferentie PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Exafunction ondersteunt AWS Inferentia om de beste prijsprestaties voor machine learning-inferentie te ontgrendelen

In alle sectoren worden modellen voor machine learning (ML) steeds dieper, worden workflows complexer en werken workloads op grotere schaal. Er worden aanzienlijke inspanningen en middelen gestoken in het nauwkeuriger maken van deze modellen, aangezien deze investering direct resulteert in betere producten en ervaringen. Aan de andere kant is het een niet-triviale onderneming die vaak over het hoofd wordt gezien om deze modellen efficiรซnt te laten werken in productie, ondanks dat dit essentieel is voor het behalen van prestatie- en budgetdoelstellingen. In dit bericht behandelen we hoe Exafunction en AWS Inferentie werk samen om eenvoudige en kostenefficiรซnte implementatie voor ML-modellen in productie mogelijk te maken.

Exafunctie is een start-up die bedrijven in staat stelt om ML zo efficiรซnt mogelijk op schaal uit te voeren. Een van hun producten is ExaDeploy, een gebruiksvriendelijke SaaS-oplossing om ML-workloads op schaal te bedienen. ExaDeploy orkestreert op efficiรซnte wijze uw ML-workloads over gemengde bronnen (CPU en hardwareversnellers) om het gebruik van bronnen te maximaliseren. Het zorgt ook voor automatisch schalen, computercolocatie, netwerkproblemen, fouttolerantie en meer, om een โ€‹โ€‹efficiรซnte en betrouwbare implementatie te garanderen. Op AWS Inferentia gebaseerd Amazon EC2 Inf1-instanties zijn speciaal gebouwd om de laagste kosten per gevolgtrekking in de cloud te leveren. ExaDeploy ondersteunt nu Inf1-instanties, waarmee gebruikers zowel de hardwaregebaseerde besparingen van accelerators als de softwaregebaseerde besparingen van geoptimaliseerde resourcevirtualisatie en orkestratie op schaal kunnen behalen.

Overzicht oplossingen

Hoe ExaDeploy oplost voor implementatie-efficiรซntie

Om een โ€‹โ€‹efficiรซnt gebruik van rekenresources te garanderen, moet u rekening houden met de juiste toewijzing van resources, automatisch schalen, colocatie van computes, beheer van netwerkkosten en latentie, fouttolerantie, versiebeheer en reproduceerbaarheid, en meer. Op grote schaal hebben eventuele inefficiรซnties een wezenlijke invloed op de kosten en latentie, en veel grote bedrijven hebben deze inefficiรซnties aangepakt door interne teams en expertise op te bouwen. Het is echter voor de meeste bedrijven niet praktisch om deze financiรซle en organisatorische overhead op zich te nemen van het bouwen van generaliseerbare software die niet de gewenste kerncompetentie van het bedrijf is.

ExaDeploy is ontworpen om deze knelpunten op het gebied van implementatie-efficiรซntie op te lossen, waaronder die welke worden gezien in enkele van de meest complexe workloads, zoals die in Autonomous Vehicle en Natural Language Processing (NLP)-applicaties. Bij sommige grote batch-ML-workloads heeft ExaDeploy de kosten met meer dan 85% verlaagd zonder in te leveren op latentie of nauwkeurigheid, met een integratietijd van slechts รฉรฉn ingenieursdag. Het is bewezen dat ExaDeploy duizenden gelijktijdige hardwareversnellerbronnen automatisch schaalt en beheert zonder enige systeemverslechtering.

De belangrijkste kenmerken van ExaDeploy zijn:

  • Draait in uw cloud: Geen van uw modellen, invoer of uitvoer verlaat ooit uw privรฉnetwerk. Blijf de kortingen van uw cloudprovider gebruiken.
  • Gedeelde versnellerbronnen: ExaDeploy optimaliseert de gebruikte versnellers door meerdere modellen of workloads in staat te stellen versnellerbronnen te delen. Het kan ook identificeren of meerdere workloads hetzelfde model implementeren en het model vervolgens delen met die workloads, waardoor de gebruikte accelerator wordt geoptimaliseerd. De automatische herbalancering en het legen van nodes maximaliseert het gebruik en minimaliseert de kosten.

Exafunction ondersteunt AWS Inferentia om de beste prijs-prestaties te ontgrendelen voor machine learning-inferentie PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  • Schaalbaar serverloos implementatiemodel: ExaDeploy schaalt automatisch op basis van verzadiging van versnellerbronnen. Schaal dynamisch terug naar 0 of omhoog naar duizenden bronnen.
  • Ondersteuning voor verschillende soorten berekeningen: U kunt deep learning-modellen ontladen van alle belangrijke ML-frameworks, evenals willekeurige C++-code, CUDA-kernels, aangepaste ops en Python-functies.
  • Dynamische modelregistratie en versiebeheer: Nieuwe modellen of modelversies kunnen worden geregistreerd en uitgevoerd zonder het systeem opnieuw op te bouwen of opnieuw te implementeren.
  • Punt-tot-punt uitvoering: Clients maken rechtstreeks verbinding met externe versnellerbronnen, wat een lage latentie en hoge doorvoer mogelijk maakt. Ze kunnen de status zelfs op afstand opslaan.
  • Asynchrone uitvoering: ExaDeploy ondersteunt asynchrone uitvoering van modellen, waardoor clients lokale berekeningen kunnen parallelliseren met extern accelerator-resourcewerk.
  • Fouttolerante pijpleidingen op afstand: ExaDeploy stelt klanten in staat om op afstand berekende berekeningen (modellen, preprocessing, enz.) dynamisch samen te stellen in pijplijnen met fouttolerantiegarantie. Het ExaDeploy-systeem behandelt pod- of node-storingen met automatisch herstel en opnieuw afspelen, zodat de ontwikkelaars nooit hoeven na te denken over het waarborgen van fouttolerantie.
  • Out-of-the-box-bewaking: ExaDeploy biedt Prometheus-statistieken en Grafana-dashboards om het gebruik van versnellerbronnen en andere systeemstatistieken te visualiseren.

ExaDeploy ondersteunt AWS Inferentia

Op AWS Inferentia gebaseerde Amazon EC2 Inf1-instanties zijn ontworpen voor deep learning-specifieke inferentiewerklasten. Deze instanties bieden tot 2.3x doorvoer en tot 70% kostenbesparing in vergelijking met de huidige generatie GPU-inferentie-instanties.

ExaDeploy ondersteunt nu AWS Inferentia, en samen ontsluiten ze de verbeterde prestaties en kostenbesparingen die worden bereikt door speciaal gebouwde hardwareversnelling en geoptimaliseerde resource-orkestratie op schaal. Laten we eens kijken naar de gecombineerde voordelen van ExaDeploy en AWS Inferentia door een veel voorkomende moderne ML-workload te overwegen: batched, mixed-compute workloads.

Hypothetische werklastkenmerken:

  • 15 ms CPU-only pre-proces/post-proces
  • Modelinferentie (15 ms op GPU, 5 ms op AWS Inferentia)
  • 10 clients, die elk elke 20 ms een verzoek indienen
  • Geschatte relatieve kosten van CPU:Inferentia:GPU is 1:2:4 (gebaseerd op Amazon EC2 On-Demand-prijzen voor c5.xlarge, inf1.xlarge en g4dn.xlarge)

De onderstaande tabel laat zien hoe elk van de opties eruit ziet:

Setup Benodigde middelen Kosten Wachttijd
GPU zonder ExaDeploy 2 CPU, 2 GPU per client (totaal 20 CPU, 20 GPU) 100 30 ms
GPU met ExaDeploy 8 GPU's gedeeld door 10 clients, 1 CPU per client 42 30 ms
AWS Inferentia zonder ExaDeploy 1 CPU, 1 AWS Inferentia per client (totaal 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia met ExaDeploy 3 AWS Inferentia gedeeld over 10 clients, 1 CPU per client 16 20 ms

ExaDeploy op AWS Inferentia-voorbeeld

In dit gedeelte bespreken we de stappen om ExaDeploy te configureren aan de hand van een voorbeeld met inf1-knooppunten op een BERT PyTorch-model. We zagen een gemiddelde verwerkingscapaciteit van 1140 samples/sec voor het bert-base-model, wat aantoont dat ExaDeploy weinig tot geen overhead heeft geรฏntroduceerd voor dit scenario met รฉรฉn model en รฉรฉn werklast.

Stap 1: Stel een Amazon Elastic Kubernetes-service (Amazon EKS)-cluster

Een Amazon EKS-cluster kan met ons naar voren worden gebracht Terraform AWS-module. Voor ons voorbeeld hebben we een inf1.xlarge voor AWS Inferentia.

Stap 2: Stel ExaDepoy in

De tweede stap is het opzetten van ExaDeploy. Over het algemeen is de implementatie van ExaDeploy op inf1-instanties eenvoudig. Setup volgt grotendeels dezelfde procedure als bij instanties van de grafische verwerkingseenheid (GPU). Het belangrijkste verschil is om de modeltag te wijzigen van GPU in AWS Inferentia en het model opnieuw te compileren. Voor de overgang van g4dn naar inf1-instanties met behulp van ExaDeploy's Application Programming Interfaces (API's) waren bijvoorbeeld slechts ongeveer 10 regels code nodig om te wijzigen.

  • Een eenvoudige methode is om Exafunction's te gebruiken Terraform AWS Kubernetes-module or Helm grafiek. Deze implementeren de belangrijkste ExaDeploy-componenten om te worden uitgevoerd in het Amazon EKS-cluster.
  • Compileer het model in een geserialiseerd formaat (bijv. TorchScript, TF opgeslagen modellen, ONNX, enz.). Voor AWS Inferentia volgden we deze tutorial.
  • Registreer het gecompileerde model in de modulerepository van ExaDeploy.
    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(),
           },
       )

  • Bereid de gegevens voor het model voor (dwz niet 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",
    )

  • Voer het model op afstand uit vanaf de client.
    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 en AWS Inferentia: samen beter

AWS Inferentia verlegt de grenzen van doorvoer voor modelinferentie en levert de laagste kosten per inferentie in de cloud. Dat gezegd hebbende, bedrijven hebben de juiste orkestratie nodig om op grote schaal te kunnen profiteren van de prijs-prestatievoordelen van Inf1. ML-serving is een complex probleem dat, als het intern wordt aangepakt, expertise vereist die ver verwijderd is van de bedrijfsdoelstellingen en vaak de producttijdlijnen vertraagt. ExaDeploy, de softwareoplossing voor ML-implementatie van Exafunction, is naar voren gekomen als marktleider. Het bedient zelfs de meest complexe ML-workloads, terwijl het soepele integratie-ervaringen en ondersteuning van een team van wereldklasse biedt. Samen zorgen ExaDeploy en AWS Inferentia voor verbeterde prestaties en kostenbesparingen voor inferentieworkloads op schaal.

Conclusie

In dit bericht hebben we je laten zien hoe Exafunction AWS Inferentia ondersteunt voor performance ML. Ga voor meer informatie over het bouwen van applicaties met Exafunction naar Exafunctie. Ga voor best practices voor het bouwen van deep learning-workloads op Inf1 naar Amazon EC2 Inf1-instanties.


Over de auteurs

Nicholas Jiang, software-ingenieur, Exafunction

Jonathan Ma, software-ingenieur, Exafunction

Prem Nair, software-ingenieur, Exafunction

Anshul Ramachandran, software-ingenieur, Exafunction

Shruti Koparkar, senior productmarketingmanager, AWS

Tijdstempel:

Meer van AWS-machine learning