Το Exafunction υποστηρίζει το AWS Inferentia για να ξεκλειδώσει την καλύτερη απόδοση τιμής για συμπεράσματα μηχανικής εκμάθησης PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το Exafunction υποστηρίζει το AWS Inferentia για να ξεκλειδώσει την καλύτερη απόδοση τιμής για συμπεράσματα μηχανικής εκμάθησης

Σε όλους τους κλάδους, τα μοντέλα μηχανικής μάθησης (ML) γίνονται όλο και πιο βαθιά, οι ροές εργασίας γίνονται πιο περίπλοκες και οι φόρτοι εργασίας λειτουργούν σε μεγαλύτερη κλίμακα. Καταβάλλονται σημαντικές προσπάθειες και πόροι για να γίνουν αυτά τα μοντέλα πιο ακριβή, καθώς αυτή η επένδυση οδηγεί άμεσα σε καλύτερα προϊόντα και εμπειρίες. Από την άλλη πλευρά, η αποτελεσματική λειτουργία αυτών των μοντέλων στην παραγωγή είναι ένα μη τετριμμένο εγχείρημα που συχνά παραβλέπεται, παρά το γεγονός ότι είναι το κλειδί για την επίτευξη των στόχων απόδοσης και προϋπολογισμού. Σε αυτήν την ανάρτηση καλύπτουμε πώς το Exafunction και Αίσθηση AWS συνεργαστείτε για να ξεκλειδώσετε την εύκολη και οικονομικά αποδοτική ανάπτυξη για μοντέλα ML στην παραγωγή.

Exafunction είναι μια start-up που επικεντρώνεται στο να δώσει τη δυνατότητα στις εταιρείες να εκτελούν ML σε κλίμακα όσο το δυνατόν πιο αποτελεσματικά. Ένα από τα προϊόντα τους είναι ExaDeploy, μια εύχρηστη λύση SaaS για την εξυπηρέτηση φόρτου εργασίας ML σε κλίμακα. Το ExaDeploy ενορχηστρώνει αποτελεσματικά τους φόρτους εργασίας ML σε μικτούς πόρους (CPU και επιταχυντές υλικού) για να μεγιστοποιήσει τη χρήση των πόρων. Φροντίζει επίσης για την αυτόματη κλιμάκωση, την υπολογιστική συντοποθεσία, τα προβλήματα δικτύου, την ανοχή σφαλμάτων και πολλά άλλα, για να διασφαλίσει την αποτελεσματική και αξιόπιστη ανάπτυξη. Βασισμένο σε AWS Inferentia Εμφανίσεις Amazon EC2 Inf1 έχουν κατασκευαστεί για να προσφέρουν το χαμηλότερο κόστος ανά συμπέρασμα στο cloud. Το ExaDeploy υποστηρίζει πλέον παρουσίες Inf1, οι οποίες επιτρέπουν στους χρήστες να λαμβάνουν τόσο τις εξοικονομήσεις επιταχυντών που βασίζονται σε υλικό όσο και τις εξοικονομήσεις βάσει λογισμικού βελτιστοποιημένης εικονικοποίησης και ενορχήστρωσης πόρων σε κλίμακα.

Επισκόπηση λύσεων

Πώς το ExaDeploy επιλύει την αποτελεσματικότητα της ανάπτυξης

Για να διασφαλίσετε την αποτελεσματική χρήση των υπολογιστικών πόρων, θα πρέπει να εξετάσετε τη σωστή κατανομή πόρων, την αυτόματη κλιμάκωση, τον υπολογισμό συντοποθεσίας, τη διαχείριση κόστους δικτύου και καθυστέρησης, την ανοχή σφαλμάτων, την έκδοση εκδόσεων και την αναπαραγωγιμότητα και πολλά άλλα. Σε κλίμακα, οποιαδήποτε αναποτελεσματικότητα επηρεάζει ουσιαστικά το κόστος και την καθυστέρηση, και πολλές μεγάλες εταιρείες έχουν αντιμετωπίσει αυτές τις αναποτελεσματικότητα δημιουργώντας εσωτερικές ομάδες και τεχνογνωσία. Ωστόσο, δεν είναι πρακτικό για τις περισσότερες εταιρείες να αναλαμβάνουν αυτό το οικονομικό και οργανωτικό κόστος κατασκευής γενικεύσιμου λογισμικού που δεν είναι η επιθυμητή βασική αρμοδιότητα της εταιρείας.

Το ExaDeploy έχει σχεδιαστεί για να επιλύει αυτά τα σημεία πόνου αποτελεσματικότητας ανάπτυξης, συμπεριλαμβανομένων εκείνων που εμφανίζονται σε μερικούς από τους πιο σύνθετους φόρτους εργασίας, όπως εκείνους σε εφαρμογές επεξεργασίας αυτόνομου οχήματος και φυσικής γλώσσας (NLP). Σε ορισμένους μεγάλους φόρτους εργασίας ML παρτίδας, το ExaDeploy έχει μειώσει το κόστος πάνω από 85% χωρίς να θυσιάζει τον λανθάνοντα χρόνο ή την ακρίβεια, με χρόνο ενσωμάτωσης τόσο χαμηλό όσο μία ημέρα μηχανικού. Το ExaDeploy έχει αποδειχθεί ότι κλιμακώνει αυτόματα και διαχειρίζεται χιλιάδες ταυτόχρονες περιπτώσεις πόρων επιταχυντή υλικού χωρίς καμία υποβάθμιση του συστήματος.

Τα βασικά χαρακτηριστικά του ExaDeploy περιλαμβάνουν:

  • Τρέχει στο σύννεφο σας: Κανένα από τα μοντέλα, τις εισόδους ή τις εξόδους σας δεν φεύγει ποτέ από το ιδιωτικό σας δίκτυο. Συνεχίστε να χρησιμοποιείτε τις εκπτώσεις του παρόχου cloud.
  • Κοινόχρηστοι πόροι επιταχυντή: Το ExaDeploy βελτιστοποιεί τους επιταχυντές που χρησιμοποιούνται επιτρέποντας πολλαπλά μοντέλα ή φόρτους εργασίας να μοιράζονται πόρους επιταχυντή. Μπορεί επίσης να προσδιορίσει εάν πολλαπλοί φόρτοι εργασίας αναπτύσσουν το ίδιο μοντέλο και, στη συνέχεια, να μοιραστεί το μοντέλο σε αυτούς τους φόρτους εργασίας, βελτιστοποιώντας έτσι τον επιταχυντή που χρησιμοποιείται. Οι δυνατότητες αυτόματης εξισορρόπησης και αποστράγγισης κόμβων μεγιστοποιούν τη χρήση και ελαχιστοποιούν το κόστος.

Το Exafunction υποστηρίζει το AWS Inferentia για να ξεκλειδώσει την καλύτερη απόδοση τιμής για συμπεράσματα μηχανικής εκμάθησης PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

  • Μοντέλο ανάπτυξης χωρίς διακομιστή με δυνατότητα κλιμάκωσης: Αυτόματες κλίμακες ExaDeploy βασίζονται στον κορεσμό των πόρων του επιταχυντή. Κλιμακώστε δυναμικά στο 0 ή σε χιλιάδες πόρους.
  • Υποστήριξη για διάφορους τύπους υπολογισμών: Μπορείτε να αποφορτώσετε μοντέλα βαθιάς εκμάθησης από όλα τα κύρια πλαίσια ML καθώς και από αυθαίρετο κώδικα C++, πυρήνες CUDA, προσαρμοσμένες λειτουργίες και συναρτήσεις Python.
  • Δυναμική εγγραφή μοντέλου και έκδοση: Τα νέα μοντέλα ή οι εκδόσεις μοντέλων μπορούν να καταχωρηθούν και να εκτελεστούν χωρίς να χρειάζεται να ανακατασκευαστεί ή να αναπτυχθεί εκ νέου το σύστημα.
  • Εκτέλεση από σημείο σε σημείο: Οι πελάτες συνδέονται απευθείας με απομακρυσμένους πόρους επιταχυντή, γεγονός που επιτρέπει χαμηλό λανθάνοντα χρόνο και υψηλή απόδοση. Μπορούν ακόμη και να αποθηκεύσουν το κράτος από απόσταση.
  • Ασύγχρονη εκτέλεση: Το ExaDeploy υποστηρίζει την ασύγχρονη εκτέλεση μοντέλων, η οποία επιτρέπει στους πελάτες να παραλληλίσουν τον τοπικό υπολογισμό με την εργασία πόρων απομακρυσμένου επιταχυντή.
  • Απομακρυσμένοι αγωγοί ανεκτικοί σε σφάλματα: Το ExaDeploy επιτρέπει στους πελάτες να συνθέτουν δυναμικά απομακρυσμένους υπολογισμούς (μοντέλα, προεπεξεργασία, κ.λπ.) σε αγωγούς με εγγύηση ανοχής σφαλμάτων. Το σύστημα ExaDeploy χειρίζεται αποτυχίες pod ή κόμβων με αυτόματη ανάκτηση και επανάληψη, έτσι ώστε οι προγραμματιστές να μην χρειάζεται να σκεφτούν ποτέ τη διασφάλιση της ανοχής σφαλμάτων.
  • Out-of-the-box παρακολούθηση: Το ExaDeploy παρέχει μετρήσεις Prometheus και πίνακες εργαλείων Grafana για την οπτικοποίηση της χρήσης πόρων του επιταχυντή και άλλων μετρήσεων συστήματος.

Το ExaDeploy υποστηρίζει το AWS Inferentia

Τα στιγμιότυπα Amazon EC2 Inf1 που βασίζονται στο AWS Inferentia έχουν σχεδιαστεί για ειδικούς φόρτους εργασίας συμπερασμάτων σε βάθος εκμάθησης. Αυτές οι περιπτώσεις παρέχουν έως και 2.3x απόδοση και έως και 70% εξοικονόμηση κόστους σε σύγκριση με την τρέχουσα γενιά παρουσιών συμπερασμάτων GPU.

Το ExaDeploy υποστηρίζει τώρα το AWS Inferentia και μαζί ξεκλειδώνουν την αυξημένη απόδοση και την εξοικονόμηση κόστους που επιτυγχάνεται μέσω της ειδικά σχεδιασμένης επιτάχυνσης υλικού και της βελτιστοποιημένης ενορχήστρωσης πόρων σε κλίμακα. Ας δούμε τα συνδυασμένα πλεονεκτήματα του ExaDeploy και του AWS Inferentia, λαμβάνοντας υπόψη έναν πολύ κοινό σύγχρονο φόρτο εργασίας ML: φόρτους εργασίας μικτών, μικτού υπολογισμού.

Υποθετικά χαρακτηριστικά φόρτου εργασίας:

  • 15 ms προ-επεξεργασίας/μετά-επεξεργασίας μόνο για CPU
  • Συμπεράσματα μοντέλου (15 ms στη GPU, 5 ms στο AWS Inferentia)
  • 10 πελάτες, ο καθένας κάνει αίτημα κάθε 20 ms
  • Το κατά προσέγγιση σχετικό κόστος του CPU:Inferentia:GPU είναι 1:2:4 (Βάσει της τιμολόγησης κατ' απαίτηση του Amazon EC2 για c5.xlarge, inf1.xlarge και g4dn.xlarge)

Ο παρακάτω πίνακας δείχνει πώς διαμορφώνεται κάθε μία από τις επιλογές:

Ρύθμιση Απαιτούνται πόροι Κόστος Αφάνεια
GPU χωρίς ExaDeploy 2 CPU, 2 GPU ανά πελάτη (σύνολο 20 CPU, 20 GPU) 100 ms 30
GPU με ExaDeploy 8 GPU κοινόχρηστα σε 10 πελάτες, 1 CPU ανά πελάτη 42 ms 30
AWS Inferentia χωρίς ExaDeploy 1 CPU, 1 Inferentia AWS ανά πελάτη (σύνολο 10 CPU, 10 Inferentia) 30 ms 20
AWS Inferentia με ExaDeploy 3 AWS Inferentia κοινόχρηστα σε 10 πελάτες, 1 CPU ανά πελάτη 16 ms 20

Παράδειγμα ExaDeploy στο AWS Inferentia

Σε αυτήν την ενότητα, ακολουθούμε τα βήματα για τη διαμόρφωση του ExaDeploy μέσω ενός παραδείγματος με κόμβους inf1 σε ένα μοντέλο BERT PyTorch. Είδαμε μια μέση απόδοση 1140 δειγμάτων/δευτερόλεπτο για το μοντέλο βάσης bert, κάτι που δείχνει ότι το ExaDeploy εισήγαγε ελάχιστα έως καθόλου γενικά έξοδα για αυτό το σενάριο μεμονωμένου φόρτου εργασίας.

Βήμα 1: Ρύθμιση ενός Υπηρεσία Amazon Elastic Kubernetes (Amazon EKS) σύμπλεγμα

Ένα σύμπλεγμα Amazon EKS μπορεί να δημιουργηθεί με το δικό μας Μονάδα Terraform AWS. Για το παράδειγμά μας, χρησιμοποιήσαμε ένα inf1.xlarge για το AWS Inferentia.

Βήμα 2: Ρυθμίστε το ExaDepoy

Το δεύτερο βήμα είναι να ρυθμίσετε το ExaDeploy. Γενικά, η ανάπτυξη του ExaDeploy σε περιπτώσεις inf1 είναι απλή. Η εγκατάσταση ακολουθεί κυρίως την ίδια διαδικασία όπως συμβαίνει στις περιπτώσεις της μονάδας επεξεργασίας γραφικών (GPU). Η κύρια διαφορά είναι να αλλάξετε την ετικέτα μοντέλου από GPU σε AWS Inferentia και να μεταγλωττίσετε ξανά το μοντέλο. Για παράδειγμα, η μετάβαση από τις παρουσίες g4dn σε inf1 χρησιμοποιώντας τις διεπαφές προγραμματισμού εφαρμογών (API) του ExaDeploy απαιτούσε μόνο περίπου 10 γραμμές κώδικα για αλλαγή.

  • Μια απλή μέθοδος είναι η χρήση Exafunction's Ενότητα Terraform AWS Kubernetes or Διάγραμμα τιμόνι. Αυτά αναπτύσσουν τα βασικά στοιχεία ExaDeploy για εκτέλεση στο σύμπλεγμα Amazon EKS.
  • Μεταγλώττιση μοντέλου σε σειριακή μορφή (π.χ. TorchScript, αποθηκευμένα μοντέλα TF, ONNX, κ.λπ.). Για το AWS Inferentia, ακολουθήσαμε αυτό το σεμινάριο.
  • Καταχωρίστε το μεταγλωττισμένο μοντέλο στο αποθετήριο λειτουργικών μονάδων του 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(),
           },
       )

  • Προετοιμάστε τα δεδομένα για το μοντέλο (δηλ. όχι 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",
    )

  • Εκτελέστε το μοντέλο απομακρυσμένα από τον πελάτη.
    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 και AWS Inferentia: Καλύτερα μαζί

Το AWS Inferentia πιέζει τα όρια της απόδοσης για συμπέρασμα μοντέλων και παρέχει το χαμηλότερο κόστος ανά συμπέρασμα στο cloud. Τούτου λεχθέντος, οι εταιρείες χρειάζονται την κατάλληλη ενορχήστρωση για να απολαύσουν τα οφέλη τιμής-απόδοσης του Inf1 σε κλίμακα. Η εξυπηρέτηση ML είναι ένα περίπλοκο πρόβλημα που, εάν αντιμετωπιστεί εσωτερικά, απαιτεί τεχνογνωσία που αφαιρείται από τους στόχους της εταιρείας και συχνά καθυστερεί τα χρονοδιαγράμματα των προϊόντων. Το ExaDeploy, το οποίο είναι η λύση λογισμικού ανάπτυξης ML της Exafunction, έχει αναδειχθεί ως ο ηγέτης του κλάδου. Εξυπηρετεί ακόμη και τους πιο σύνθετους φόρτους εργασίας ML, ενώ παρέχει εμπειρίες ομαλής ενσωμάτωσης και υποστήριξη από μια ομάδα παγκόσμιας κλάσης. Μαζί, το ExaDeploy και το AWS Inferentia ξεκλειδώνουν αυξημένη απόδοση και εξοικονόμηση κόστους για φόρτους εργασίας συμπερασμάτων σε κλίμακα.

Συμπέρασμα

Σε αυτήν την ανάρτηση, σας δείξαμε πώς το Exafunction υποστηρίζει το AWS Inferentia για απόδοση ML. Για περισσότερες πληροφορίες σχετικά με την κατασκευή εφαρμογών με το Exafunction, επισκεφθείτε Exafunction. Για βέλτιστες πρακτικές σχετικά με τη δημιουργία φόρτου εργασίας βαθιάς μάθησης στο Inf1, επισκεφτείτε Παρουσίες Amazon EC2 Inf1.


Σχετικά με τους Συγγραφείς

Nicholas Jiang, Μηχανικός Λογισμικού, Exafunction

Jonathan Ma, Μηχανικός Λογισμικού, Exafunction

Prem Nair, Software Engineer, Exafunction

Anshul Ramachandran, Μηχανικός Λογισμικού, Exafunction

Shruti Koparkar, Sr. Product Marketing Manager, AWS

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS