Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia

Η μηχανή αναζήτησης προϊόντων της Amazon ευρετηριάζει δισεκατομμύρια προϊόντα, εξυπηρετεί εκατοντάδες εκατομμύρια πελάτες σε όλο τον κόσμο και είναι μια από τις πιο συχνά χρησιμοποιούμενες υπηρεσίες στον κόσμο. Η ομάδα Αναζήτησης Amazon αναπτύσσει τεχνολογία μηχανικής μάθησης (ML) που τροφοδοτεί το Amazon.com μηχανή αναζήτησης και βοηθά τους πελάτες να αναζητούν χωρίς κόπο. Για να προσφέρει μια εξαιρετική εμπειρία πελάτη και να λειτουργήσει στη μαζική κλίμακα που απαιτείται από την Amazon.com μηχανή αναζήτησης, αυτή η ομάδα αναζητά πάντα τρόπους για τη δημιουργία πιο οικονομικά αποδοτικών συστημάτων με λανθάνοντα χρόνο και απαιτήσεις απόδοσης σε πραγματικό χρόνο. Η ομάδα διερευνά συνεχώς υλικό και μεταγλωττιστές βελτιστοποιημένους για βαθιά εκμάθηση για να επιταχύνει την εκπαίδευση και την εξαγωγή συμπερασμάτων μοντέλων, μειώνοντας ταυτόχρονα το λειτουργικό κόστος σε όλα τα επίπεδα.

Σε αυτήν την ανάρτηση, περιγράφουμε πώς χρησιμοποιεί η Αναζήτηση Amazon Αίσθηση AWS, ένας επιταχυντής υψηλής απόδοσης που δημιουργήθηκε από την AWS για την επιτάχυνση του φόρτου εργασίας συμπερασμάτων βαθιάς μάθησης. Η ομάδα εκτελεί συμπέρασμα ML χαμηλής καθυστέρησης με μοντέλα NLP που βασίζονται σε Transformer σε AWS Inferentia Amazon Elastic Compute Cloud (Amazon EC2) Inf1 στιγμιότυπα και εξοικονομεί έως και 85% σε κόστος υποδομής, διατηρώντας παράλληλα ισχυρή απόδοση και απόδοση λανθάνοντος χρόνου.

Βαθιά εκμάθηση για διπλότυπη πρόβλεψη και πρόθεση ερωτήματος

Η αναζήτηση στο Amazon Marketplace είναι ένα πρόβλημα πολλαπλών εργασιών, πολλαπλών τρόπων, το οποίο ασχολείται με διάφορες εισόδους, όπως ASIN (Amazon Standard Identification Number, 10ψήφιος αλφαριθμητικός αριθμός που προσδιορίζει μοναδικά προϊόντα), εικόνες προϊόντων, περιγραφές κειμένου και ερωτήματα. Για να δημιουργήσετε μια προσαρμοσμένη εμπειρία χρήστη, χρησιμοποιούνται προβλέψεις από πολλά μοντέλα για διαφορετικές πτυχές της αναζήτησης. Αυτό είναι μια πρόκληση γιατί το σύστημα αναζήτησης έχει χιλιάδες μοντέλα με δεκάδες χιλιάδες συναλλαγές ανά δευτερόλεπτο (TPS) σε αιχμής φόρτιση. Εστιάζουμε σε δύο στοιχεία αυτής της εμπειρίας:

  • Διπλότυπες προβλέψεις που αντιλαμβάνονται οι πελάτες – Για να εμφανίσετε την πιο σχετική λίστα προϊόντων που ταιριάζουν με το ερώτημα ενός χρήστη, είναι σημαντικό να προσδιορίσετε προϊόντα που οι πελάτες δυσκολεύονται να διαφοροποιήσουν μεταξύ τους
  • Πρόβλεψη πρόθεσης ερωτήματος – Για να προσαρμόσετε τη σελίδα αναζήτησης και τη διάταξη του προϊόντος ώστε να ταιριάζει καλύτερα σε αυτό που αναζητά ο πελάτης, είναι σημαντικό να προβλέψετε την πρόθεση και τον τύπο του ερωτήματος του χρήστη (για παράδειγμα, ένα ερώτημα σχετικά με τα μέσα, ένα ερώτημα βοήθειας και άλλους τύπους ερωτημάτων)

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

Η διπλότυπη πρόβλεψη λαμβάνει διάφορα χαρακτηριστικά κειμένου για ένα ζεύγος αξιολογημένων προϊόντων ως εισροές (όπως τύπος προϊόντος, τίτλος, περιγραφή κ.λπ.) και υπολογίζεται περιοδικά για μεγάλα σύνολα δεδομένων. Αυτό το μοντέλο είναι εκπαιδευμένο από άκρη σε άκρη με τρόπο πολλαπλών εργασιών. Εργασίες επεξεργασίας Amazon SageMaker χρησιμοποιούνται για την περιοδική εκτέλεση αυτών των παρτίδων εργασίας για την αυτοματοποίηση της εκκίνησής τους και την πληρωμή μόνο για τον χρόνο επεξεργασίας που χρησιμοποιείται. Για αυτήν την περίπτωση χρήσης φόρτου εργασίας παρτίδας, η απαίτηση για απόδοση συμπερασμάτων ήταν 8,800 συνολικά TPS.

Η πρόβλεψη πρόθεσης λαμβάνει ως είσοδο το ερώτημα κειμένου του χρήστη και απαιτείται σε πραγματικό χρόνο για να εξυπηρετεί δυναμικά την καθημερινή κίνηση και να βελτιώνει την εμπειρία χρήστη στο Amazon Marketplace. Το μοντέλο εκπαιδεύεται σε έναν στόχο ταξινόμησης πολλαπλών τάξεων. Στη συνέχεια, αυτό το μοντέλο αναπτύσσεται Υπηρεσία ελαστικών εμπορευματοκιβωτίων Amazon (Amazon ECS), που επιτρέπει τη γρήγορη αυτόματη κλιμάκωση και εύκολος ορισμός και διαχείριση ανάπτυξης. Επειδή πρόκειται για περίπτωση χρήσης σε πραγματικό χρόνο, απαιτείται η καθυστέρηση του P99 να είναι κάτω από 10 χιλιοστά του δευτερολέπτου για να διασφαλιστεί μια ευχάριστη εμπειρία χρήστη.

Το AWS Inferentia και το AWS Neuron SDK

Στιγμιότυπα EC2 Inf1 τροφοδοτούνται από το AWS Inferentia, τον πρώτο επιταχυντή ML που κατασκευάστηκε από την AWS για την επιτάχυνση του φόρτου εργασίας συμπερασμάτων βαθιάς μάθησης. Οι περιπτώσεις Inf1 παρέχουν έως και 2.3 φορές υψηλότερη απόδοση και έως και 70% χαμηλότερο κόστος ανά συμπέρασμα από συγκρίσιμες παρουσίες EC2 που βασίζονται σε GPU. Μπορείτε να συνεχίσετε να εκπαιδεύετε τα μοντέλα σας χρησιμοποιώντας το πλαίσιο της επιλογής σας (PyTorch, TensorFlow, MXNet) και στη συνέχεια να τα αναπτύξετε εύκολα στο AWS Inferentia για να επωφεληθείτε από τις ενσωματωμένες βελτιστοποιήσεις απόδοσης. Μπορείτε να αναπτύξετε ένα ευρύ φάσμα τύπων μοντέλων χρησιμοποιώντας στιγμιότυπα Inf1, από την αναγνώριση εικόνας, τον εντοπισμό αντικειμένων, την επεξεργασία φυσικής γλώσσας (NLP) και τα σύγχρονα μοντέλα συστάσεων.

AWS Neuron είναι ένα κιτ ανάπτυξης λογισμικού (SDK) που αποτελείται από μεταγλωττιστή, χρόνο εκτέλεσης και εργαλεία δημιουργίας προφίλ που βελτιστοποιούν την απόδοση συμπερασμάτων ML των παρουσιών EC2 Inf1. Το Neuron είναι εγγενώς ενσωματωμένο με δημοφιλή πλαίσια ML όπως το TensorFlow και το PyTorch. Επομένως, μπορείτε να αναπτύξετε μοντέλα βαθιάς εκμάθησης στο AWS Inferentia με τα ίδια γνωστά API που παρέχονται από το πλαίσιο επιλογής σας και να επωφεληθείτε από την ενίσχυση της απόδοσης και το χαμηλότερο κόστος ανά συμπέρασμα στο cloud.

Από την κυκλοφορία του, το Neuron SDK συνέχισε να αυξάνει το εύρος των μοντέλων που υποστηρίζει, ενώ συνεχίζει να βελτιώνει την απόδοση και να μειώνει το κόστος συμπερασμάτων. Αυτό περιλαμβάνει μοντέλα NLP (BERT), μοντέλα ταξινόμησης εικόνων (ResNet, VGG) και μοντέλα ανίχνευσης αντικειμένων (OpenPose και SSD).

Αναπτύξτε σε στιγμιότυπα Inf1 για χαμηλή καθυστέρηση, υψηλή απόδοση και εξοικονόμηση κόστους

Η ομάδα Αναζήτησης του Amazon ήθελε να εξοικονομήσει κόστος ενώ πληρούσε την απαίτηση υψηλής απόδοσης για την πρόβλεψη διπλασιασμού και την απαίτηση χαμηλής καθυστέρησης για την πρόβλεψη πρόθεσης ερωτήματος. Επέλεξαν να αναπτύξουν σε στιγμιότυπα Inf1 που βασίζονται σε AWS Inferentia και όχι μόνο πληρούσαν τις απαιτήσεις υψηλών επιδόσεων, αλλά εξοικονομούσαν έως και 85% στο κόστος συμπερασμάτων.

Διπλότυπες προβλέψεις που αντιλαμβάνονται οι πελάτες

Πριν από τη χρήση του Inf1, ένα αποκλειστικό EMR Αμαζονίου το σύμπλεγμα εκτελούσε χρησιμοποιώντας στιγμιότυπα που βασίζονται σε CPU. Χωρίς να βασιζόμαστε στην επιτάχυνση υλικού, ήταν απαραίτητος ένας μεγάλος αριθμός περιπτώσεων για να ικανοποιηθεί η απαίτηση υψηλής απόδοσης των 8,800 συνολικών συναλλαγών ανά δευτερόλεπτο. Η ομάδα μεταπήδησε σε inf1.6xlarge περιπτώσεις, καθεμία με 4 επιταχυντές AWS Inferentia και 16 NeuronCore (4 πυρήνες ανά τσιπ AWS Inferentia). Ανίχνευσαν το μοντέλο που βασίζεται σε Transformer για έναν μεμονωμένο NeuronCore και φόρτωσαν μία λειτουργία ανά NeuronCore για να μεγιστοποιήσουν την απόδοση. Εκμεταλλευόμενοι τους 16 διαθέσιμους NeuronCores, μείωσαν το κόστος συμπερασμάτων κατά 85% (με βάση την τρέχουσα δημόσια τιμολόγηση κατ' απαίτηση EC2 της Amazon).

Πρόβλεψη πρόθεσης ερωτήματος

Δεδομένης της απαίτησης καθυστέρησης P99 10 χιλιοστών του δευτερολέπτου ή λιγότερο, η ομάδα φόρτωσε το μοντέλο σε κάθε διαθέσιμο NeuronCore σε inf1.6xlarge παρουσίες. Μπορείτε εύκολα να το κάνετε αυτό με το PyTorch Neuron χρησιμοποιώντας το φακός.neuron.DataParallel API. Με την ανάπτυξη Inf1, η καθυστέρηση του μοντέλου ήταν 3 χιλιοστά του δευτερολέπτου, η λανθάνουσα κατάσταση από άκρο σε άκρο ήταν περίπου 10 χιλιοστά του δευτερολέπτου και η μέγιστη απόδοση σε φορτίο αιχμής έφτασε τα 16,000 TPS.

Ξεκινήστε με τη συλλογή δειγμάτων και τον κώδικα ανάπτυξης

Ακολουθεί ένα δείγμα κώδικα που θα σας βοηθήσει να ξεκινήσετε με τις παρουσίες Inf1 και να συνειδητοποιήσετε τα οφέλη απόδοσης και κόστους όπως η ομάδα Αναζήτησης Amazon. Δείχνουμε τον τρόπο μεταγλώττισης και εκτέλεσης συμπερασμάτων με ένα μοντέλο PyTorch, χρησιμοποιώντας PyTorch Neuron.

Αρχικά, το μοντέλο συντάσσεται με torch.neuron.trace():

m = torch.jit.load(f="./cpu_model.pt", map_location=torch.device('cpu'))
m.eval()
model_neuron = torch.neuron.trace(
    m,
    inputs,
    compiler_workdir="work_" + str(cores) + "_" + str(batch_size),
    compiler_args=[
        '--fp32-cast=all', '--neuroncore-pipeline-cores=' + str(cores)
    ])
model_neuron.save("m5_batch" + str(batch_size) + "_cores" + str(cores) +
                  "_with_extra_op_and_fp32cast.pt")

Για την πλήρη λίστα των πιθανών επιχειρημάτων στο trace μέθοδος, ανατρέξτε στο PyTorch-Neuron trace Python API. Οπως βλέπεις, ορίσματα μεταγλωττιστή μπορεί να περάσει στο torch.neuron API απευθείας. Όλοι οι χειριστές FP32 μεταδίδονται σε BF16 with --fp32-cast=all, παρέχοντας την υψηλότερη απόδοση διατηρώντας παράλληλα το δυναμικό εύρος. Περισσότερες επιλογές χύτευσης είναι διαθέσιμες για να σας επιτρέψουν να ελέγχετε την απόδοση στο μοντέλο αντιστάθμισης ακρίβειας. Τα μοντέλα που χρησιμοποιήθηκαν και για τις δύο περιπτώσεις χρήσης συντάχθηκαν για έναν μόνο NeuronCore (αρ σωληνώσεις).

Στη συνέχεια, φορτώνουμε το μοντέλο στο Inferentia torch.jit.loadκαι χρησιμοποιήστε το για πρόβλεψη. ο Χρόνος εκτέλεσης νευρώνων φορτώνει αυτόματα το μοντέλο στο NeuronCores.

cm_cpd_preprocessing_jit = torch.jit.load(f=CM_CPD_PROC,
                                          map_location=torch.device('cpu'))
cm_cpd_preprocessing_jit.eval()
m5_model = torch.jit.load(f=CM_CPD_M5)
m5_model.eval()

input = get_input()
with torch.no_grad():
    batch_cm_cpd = cm_cpd_preprocessing_jit(input)
    input_ids, attention_mask, position_ids, valid_length, token_type_ids = (
        batch_cm_cpd['input_ids'].type(torch.IntTensor),
        batch_cm_cpd['attention_mask'].type(torch.HalfTensor),
        batch_cm_cpd['position_ids'].type(torch.IntTensor),
        batch_cm_cpd['valid_length'].type(torch.IntTensor),
        batch_cm_cpd['token_type_ids'].type(torch.IntTensor))
    model_res = m5_model(input_ids, attention_mask, position_ids, valid_length,
                         token_type_ids)

Συμπέρασμα

Η ομάδα Αναζήτησης Amazon κατάφερε να μειώσει το κόστος συμπερασμάτων της κατά 85% χρησιμοποιώντας παρουσίες Inf1 που βασίζονται σε AWS Inferentia, υπό μεγάλη κίνηση και απαιτητικές απαιτήσεις απόδοσης. Το AWS Inferentia και το Neuron SDK παρείχαν στην ομάδα την ευελιξία να βελτιστοποιήσει τη διαδικασία ανάπτυξης χωριστά από την εκπαίδευση και να δημιουργήσει μια ρηχή καμπύλη μάθησης μέσω καλά στρογγυλεμένων εργαλείων και οικείων API πλαισίου.

Μπορείτε να ξεκλειδώσετε τα οφέλη απόδοσης και κόστους ξεκινώντας με το δείγμα κώδικα που παρέχεται σε αυτήν την ανάρτηση. Επίσης, ελέγξτε το από άκρο σε άκρο tutorials για να εκτελέσετε μοντέλα ML σε Inferentia με PyTorch και TensorFlow.


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

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τζοάο Μούρα είναι Αρχιτέκτονας Ειδικών Λύσεων AI/ML στην Amazon Web Services. Επικεντρώνεται κυρίως σε περιπτώσεις χρήσης NLP και βοηθά τους πελάτες να βελτιστοποιήσουν την εκπαίδευση και την ανάπτυξη του μοντέλου βαθιάς μάθησης. Είναι επίσης ενεργός υποστηρικτής του εξειδικευμένου υλικού ML και των λύσεων ML χαμηλού κώδικα.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Weiqi Zhang είναι Διευθυντής Μηχανικής Λογισμικού στο Search M5, όπου εργάζεται στην παραγωγή μοντέλων μεγάλης κλίμακας για εφαρμογές μηχανικής εκμάθησης της Amazon. Τα ενδιαφέροντά του περιλαμβάνουν την ανάκτηση πληροφοριών και την υποδομή μηχανικής μάθησης.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τζέισον Κάρλσον είναι Μηχανικός Λογισμικού για την ανάπτυξη αγωγών μηχανικής εκμάθησης για να συμβάλει στη μείωση του αριθμού των κλεμμένων εμφανίσεων αναζήτησης λόγω των αντιγράφων που αντιλαμβάνονται οι πελάτες. Συνεργάζεται κυρίως με το Apache Spark, το AWS και το PyTorch για να βοηθήσει στην ανάπτυξη και τροφοδοσία/επεξεργασία δεδομένων για μοντέλα ML. Στον ελεύθερο χρόνο του αρέσει να διαβάζει και να τρέχει.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Shaohui Xi είναι SDE στην ομάδα Search Query Understanding Infra. Πρωτοστατεί στην προσπάθεια δημιουργίας διαδικτυακών υπηρεσιών συμπερασμάτων βαθιάς μάθησης μεγάλης κλίμακας με χαμηλή καθυστέρηση και υψηλή διαθεσιμότητα. Εκτός δουλειάς, του αρέσει να κάνει σκι και να εξερευνά καλό φαγητό.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Zhuoqi Zhang είναι Μηχανικός Ανάπτυξης Λογισμικού στην ομάδα Search Query Understanding Infra. Εργάζεται στη δημιουργία πλαισίων εξυπηρέτησης μοντέλων για τη βελτίωση του λανθάνοντος χρόνου και της απόδοσης για τις διαδικτυακές υπηρεσίες συμπερασμάτων βαθιάς μάθησης. Εκτός δουλειάς, του αρέσει να παίζει μπάσκετ, σνόουμπορντ και να οδηγεί.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Haowei Sun είναι μηχανικός λογισμικού στην ομάδα Search Query Understanding Infra. Εργάζεται στο σχεδιασμό API και υποδομής που υποστηρίζουν διαδικτυακές υπηρεσίες συμπερασμάτων βαθιάς μάθησης. Τα ενδιαφέροντά της περιλαμβάνουν σχεδιασμό API υπηρεσιών, ρύθμιση υποδομής και συντήρηση. Εκτός δουλειάς, της αρέσει το τρέξιμο, η πεζοπορία και τα ταξίδια.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Γιασπρίτ Σινγκ είναι Εφαρμοσμένος Επιστήμονας στην ομάδα M5, όπου εργάζεται σε μοντέλα θεμελίων μεγάλης κλίμακας για να βελτιώσει την εμπειρία αγορών των πελατών. Τα ερευνητικά του ενδιαφέροντα περιλαμβάνουν τη μάθηση πολλαπλών εργασιών, την ανάκτηση πληροφοριών και τη μάθηση αναπαράστασης.

Πώς η Αναζήτηση Amazon μείωσε το κόστος συμπερασμάτων ML κατά 85% με το AWS Inferentia PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Shruti Koparkar είναι Ανώτερος Διευθυντής Μάρκετινγκ Προϊόντων στην AWS. Βοηθά τους πελάτες να εξερευνήσουν, να αξιολογήσουν και να υιοθετήσουν υποδομή υπολογιστών EC2 για τις ανάγκες μηχανικής εκμάθησης.

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

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