Η παρουσία Amazon EC2 DL2q για οικονομικά αποδοτικά, υψηλής απόδοσης συμπεράσματα τεχνητής νοημοσύνης είναι πλέον γενικά διαθέσιμη | Υπηρεσίες Ιστού της Amazon

Η παρουσία Amazon EC2 DL2q για οικονομικά αποδοτικά, υψηλής απόδοσης συμπεράσματα τεχνητής νοημοσύνης είναι πλέον γενικά διαθέσιμη | Υπηρεσίες Ιστού της Amazon

Κόμβος πηγής: 2974534

Αυτή είναι μια guest post του AK Roy από την Qualcomm AI.

Amazon Elastic Compute Cloud (Amazon EC2) Οι παρουσίες DL2q, που υποστηρίζονται από επιταχυντές Qualcomm AI 100 Standard, μπορούν να χρησιμοποιηθούν για την οικονομική ανάπτυξη φόρτου εργασίας βαθιάς εκμάθησης (DL) στο cloud. Μπορούν επίσης να χρησιμοποιηθούν για την ανάπτυξη και την επικύρωση της απόδοσης και της ακρίβειας των φόρτων εργασίας DL που θα αναπτυχθούν σε συσκευές Qualcomm. Οι περιπτώσεις DL2q είναι οι πρώτες περιπτώσεις που έφεραν την τεχνολογία τεχνητής νοημοσύνης (AI) της Qualcomm στο cloud.

Με οκτώ επιταχυντές Qualcomm AI 100 Standard και 128 GiB συνολικής μνήμης επιταχυντή, οι πελάτες μπορούν επίσης να χρησιμοποιήσουν παρουσίες DL2q για να εκτελέσουν δημοφιλείς εφαρμογές τεχνητής νοημοσύνης, όπως δημιουργία περιεχομένου, σύνοψη κειμένου και εικονικούς βοηθούς, καθώς και κλασικές εφαρμογές τεχνητής νοημοσύνης για επεξεργασία φυσικής γλώσσας και όραση υπολογιστή. Επιπλέον, οι επιταχυντές Qualcomm AI 100 διαθέτουν την ίδια τεχνολογία AI που χρησιμοποιείται σε smartphone, αυτόνομη οδήγηση, προσωπικούς υπολογιστές και ακουστικά εκτεταμένης πραγματικότητας, επομένως οι περιπτώσεις DL2q μπορούν να χρησιμοποιηθούν για την ανάπτυξη και την επικύρωση αυτών των φόρτων εργασίας AI πριν από την ανάπτυξη.

Νέα στιγμιότυπα του DL2q

Κάθε παρουσία DL2q ενσωματώνει οκτώ επιταχυντές Qualcomm Cloud AI100, με συνολική απόδοση άνω των 2.8 PetaOps απόδοσης συμπερασμάτων Int8 και 1.4 PetaFlops απόδοσης συμπερασμάτων FP16. Το παράδειγμα έχει συνολικά 112 πυρήνες AI, χωρητικότητα μνήμης επιταχυντή 128 GB και εύρος ζώνης μνήμης 1.1 TB ανά δευτερόλεπτο.

Κάθε παρουσία DL2q έχει 96 vCPU, χωρητικότητα μνήμης συστήματος 768 GB και υποστηρίζει εύρος ζώνης δικτύου 100 Gbps καθώς και Amazon Elastic Block Store (Amazon EBS) αποθήκευση 19 Gbps.

Όνομα παράδειγμα vCPU Επιταχυντές Cloud AI100 Μνήμη επιταχυντή Μνήμη γκαζιού BW (συγκεντρωτική) Μνήμη για παράδειγμα Ενδεικτική δικτύωση Εύρος ζώνης αποθήκευσης (Amazon EBS).
DL2q.24xlarge 96 8 128 GB 1.088 TB / s 768 GB 100 Gbps 19 Gbps

Καινοτομία επιταχυντή Qualcomm Cloud AI100

Το σύστημα επιτάχυνσης Cloud AI100-on-chip (SoC) είναι μια ειδικά σχεδιασμένη, επεκτάσιμη αρχιτεκτονική πολλαπλών πυρήνων, που υποστηρίζει ένα ευρύ φάσμα περιπτώσεων χρήσης βαθιάς μάθησης που εκτείνονται από το κέντρο δεδομένων έως την άκρη. Το SoC χρησιμοποιεί βαθμωτούς, διανυσματικούς και τανυστικούς υπολογιστικούς πυρήνες με κορυφαία στον κλάδο on-die SRAM χωρητικότητα 126 MB. Οι πυρήνες διασυνδέονται με ένα πλέγμα υψηλού εύρους ζώνης χαμηλής καθυστέρησης δικτύου-σε-τσιπ (NoC).

Ο επιταχυντής AI100 υποστηρίζει μια ευρεία και ολοκληρωμένη γκάμα μοντέλων και περιπτώσεων χρήσης. Ο παρακάτω πίνακας υπογραμμίζει το εύρος της υποστήριξης του μοντέλου.

Κατηγορία μοντέλου Αριθμός μοντέλων Παραδείγματα
NLP 157 BERT, BART, FasterTransformer, T5, Z-code MOE
Generative AI – NLP 40 LLaMA, CodeGen, GPT, OPT, BLOOM, Jais, Luminous, StarCoder, XGen
Generative AI – Εικόνα 3 Stable diffusion v1.5 and v2.1, OpenAI CLIP
Βιογραφικό – Ταξινόμηση εικόνων 45 ViT, ResNet, ResNext, MobileNet, EfficientNet
CV – Ανίχνευση αντικειμένου 23 YOLO v2, v3, v4, v5 και v7, SSD-ResNet, RetinaNet
βιογραφικό – Άλλο 15 LPRNet, Super-Resolution/SRGAN, ByteTrack
Δίκτυα αυτοκινήτων* 53 Ανίχνευση αντίληψης και LIDAR, πεζών, λωρίδων κυκλοφορίας και φαναριού
Σύνολο > 300 

* Τα περισσότερα δίκτυα αυτοκινήτων είναι σύνθετα δίκτυα που αποτελούνται από μια συγχώνευση μεμονωμένων δικτύων.

Η μεγάλη on-die SRAM στον επιταχυντή DL2q επιτρέπει την αποτελεσματική εφαρμογή προηγμένων τεχνικών απόδοσης, όπως η ακρίβεια μικροεκθέτη MX6 για την αποθήκευση των βαρών και η ακρίβεια μικροεκθέτη MX9 για την επικοινωνία επιταχυντή με επιταχυντή. Η τεχνολογία μικροεκθέτη περιγράφεται στην ακόλουθη ανακοίνωση του κλάδου Open Compute Project (OCP): AMD, Arm, Intel, Meta, Microsoft, NVIDIA και Qualcomm τυποποιούν στενές μορφές δεδομένων ακριβείας επόμενης γενιάς για AI » Open Compute Project.

Ο χρήστης της παρουσίας μπορεί να χρησιμοποιήσει την ακόλουθη στρατηγική για να μεγιστοποιήσει την απόδοση ανά κόστος:

  • Αποθηκεύστε τα βάρη χρησιμοποιώντας την ακρίβεια μικροεκθέτη MX6 στη μνήμη DDR του επιταχυντή. Η χρήση της ακρίβειας MX6 μεγιστοποιεί τη χρήση της διαθέσιμης χωρητικότητας μνήμης και του εύρους ζώνης μνήμης για να προσφέρει την καλύτερη απόδοση και καθυστέρηση στην κατηγορία του.
  • Υπολογίστε στο FP16 για να προσφέρετε την απαιτούμενη ακρίβεια περίπτωσης χρήσης, ενώ χρησιμοποιείτε την ανώτερη on-chip SRAM και τα εφεδρικά TOP στην κάρτα, για να εφαρμόσετε πυρήνες υψηλής απόδοσης χαμηλής καθυστέρησης MX6 έως FP16.
  • Χρησιμοποιήστε μια βελτιστοποιημένη στρατηγική παρτίδας και ένα μεγαλύτερο μέγεθος παρτίδας χρησιμοποιώντας τη μεγάλη διαθέσιμη SRAM στο τσιπ για να μεγιστοποιήσετε την επαναχρησιμοποίηση των βαρών, διατηρώντας παράλληλα τις ενεργοποιήσεις στο τσιπ στο μέγιστο δυνατό.

DL2q AI Στοίβα και αλυσίδα εργαλείων

Η παρουσία DL2q συνοδεύεται από το Qualcomm AI Stack που προσφέρει μια συνεπή εμπειρία προγραμματιστή σε όλη την Qualcomm AI στο cloud και σε άλλα προϊόντα της Qualcomm. Η ίδια Qualcomm AI stack και βασική τεχνολογία AI τρέχει στις παρουσίες DL2q και στις συσκευές Qualcomm edge, παρέχοντας στους πελάτες μια συνεπή εμπειρία προγραμματιστή, με ένα ενοποιημένο API σε περιβάλλοντα ανάπτυξης cloud, αυτοκινήτου, προσωπικού υπολογιστή, εκτεταμένης πραγματικότητας και smartphone.

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

Για να μάθετε περισσότερα σχετικά με τη ρύθμιση της απόδοσης ενός μοντέλου, ανατρέξτε στο Βασικές παράμετροι απόδοσης Cloud AI 100 Απόδειξη με έγγραφα.

Ξεκινήστε με παρουσίες DL2q

Σε αυτό το παράδειγμα, μεταγλωττίζετε και αναπτύσσετε ένα προεκπαιδευμένο μοντέλο BERT από Αγκαλιάζοντας το πρόσωπο σε μια παρουσία EC2 DL2q χρησιμοποιώντας ένα προ-ενσωματωμένο διαθέσιμο DL2q AMI, σε τέσσερα βήματα.

Μπορείτε να χρησιμοποιήσετε είτε προκατασκευασμένο Qualcomm DLAMI για παράδειγμα ή ξεκινήστε με ένα Amazon Linux2 AMI και δημιουργήστε το δικό σας DL2q AMI με το Cloud AI 100 Platform and Apps SDK που είναι διαθέσιμο σε αυτό Υπηρεσία απλής αποθήκευσης Amazon (Amazon S3) κάδος: s3://ec2-linux-qualcomm-ai100-sdks/latest/.

Τα βήματα που ακολουθούν χρησιμοποιούν το προκατασκευασμένο DL2q AMI, Qualcomm Base AL2 DLAMI.

Χρησιμοποιήστε το SSH για να αποκτήσετε πρόσβαση στο στιγμιότυπο DL2q με το Qualcomm Base AL2 DLAMI AMI και ακολουθήστε τα βήματα 1 έως 4.

Βήμα 1. Ρυθμίστε το περιβάλλον και εγκαταστήστε τα απαιτούμενα πακέτα

  1. Εγκαταστήστε την Python 3.8.
    sudo amazon-linux-extras install python3.8

  2. Ρυθμίστε το εικονικό περιβάλλον Python 3.8.
    python3.8 -m venv /home/ec2-user/userA/pyenv

  3. Ενεργοποιήστε το εικονικό περιβάλλον Python 3.8.
    source /home/ec2-user/userA/pyenv/bin/activate

  4. Εγκαταστήστε τα απαιτούμενα πακέτα, που φαίνονται στο έγγραφα απαιτήσεων.txt διαθέσιμο στον δημόσιο ιστότοπο της Qualcomm Github.
    pip3 install -r requirements.txt

  5. Εισαγάγετε τις απαραίτητες βιβλιοθήκες.
    import transformers 
    from transformers import AutoTokenizer, AutoModelForMaskedLM
    import sys
    import qaic
    import os
    import torch
    import onnx
    from onnxsim import simplify
    import argparse
    import numpy as np

Βήμα 2. Εισαγάγετε το μοντέλο

  1. Εισαγάγετε και διαμορφώστε το μοντέλο.
    model_card = 'bert-base-cased'
    model = AutoModelForMaskedLM.from_pretrained(model_card)
    tokenizer = AutoTokenizer.from_pretrained(model_card)

  2. Ορίστε ένα δείγμα εισόδου και εξαγάγετε το inputIds και attentionMask.
    sentence = "The dog [MASK] on the mat."
    encodings = tokenizer(sentence, max_length=128, truncation=True, padding="max_length", return_tensors='pt')
    inputIds = encodings["input_ids"]
    attentionMask = encodings["attention_mask"]

  3. Μετατρέψτε το μοντέλο σε ONNX, το οποίο στη συνέχεια μπορεί να περάσει στον μεταγλωττιστή.
    # Set dynamic dims and axes.
    dynamic_dims = {0: 'batch', 1 : 'sequence'}
    dynamic_axes = {
        "input_ids" : dynamic_dims,
        "attention_mask" : dynamic_dims,
        "logits" : dynamic_dims
    }
    input_names = ["input_ids", "attention_mask"]
    inputList = [inputIds, attentionMask]
    
    torch.onnx.export(
        model,
        args=tuple(inputList),
        f=f"{gen_models_path}/{model_base_name}.onnx",
        verbose=False,
        input_names=input_names,
        output_names=["logits"],
        dynamic_axes=dynamic_axes,
        opset_version=11,
    )

  4. Θα εκτελέσετε το μοντέλο με ακρίβεια FP16. Επομένως, πρέπει να ελέγξετε εάν το μοντέλο περιέχει σταθερές πέρα ​​από το εύρος FP16. Περάστε το μοντέλο στο fix_onnx_fp16 λειτουργία για τη δημιουργία του νέου αρχείου ONNX με τις απαιτούμενες διορθώσεις.
    from onnx import numpy_helper
            
    def fix_onnx_fp16(
        gen_models_path: str,
        model_base_name: str,
    ) -> str:
        finfo = np.finfo(np.float16)
        fp16_max = finfo.max
        fp16_min = finfo.min
        model = onnx.load(f"{gen_models_path}/{model_base_name}.onnx")
        fp16_fix = False
        for tensor in onnx.external_data_helper._get_all_tensors(model):
            nptensor = numpy_helper.to_array(tensor, gen_models_path)
            if nptensor.dtype == np.float32 and (
                np.any(nptensor > fp16_max) or np.any(nptensor < fp16_min)
            ):
                # print(f'tensor value : {nptensor} above {fp16_max} or below {fp16_min}')
                nptensor = np.clip(nptensor, fp16_min, fp16_max)
                new_tensor = numpy_helper.from_array(nptensor, tensor.name)
                tensor.CopyFrom(new_tensor)
                fp16_fix = True
                
        if fp16_fix:
            # Save FP16 model
            print("Found constants out of FP16 range, clipped to FP16 range")
            model_base_name += "_fix_outofrange_fp16"
            onnx.save(model, f=f"{gen_models_path}/{model_base_name}.onnx")
            print(f"Saving modified onnx file at {gen_models_path}/{model_base_name}.onnx")
        return model_base_name
    
    fp16_model_name = fix_onnx_fp16(gen_models_path=gen_models_path, model_base_name=model_base_name)

Βήμα 3. Μεταγλώττιση του μοντέλου

Η qaic-exec Το εργαλείο μεταγλώττισης της διεπαφής γραμμής εντολών (CLI) χρησιμοποιείται για τη μεταγλώττιση του μοντέλου. Η είσοδος σε αυτόν τον μεταγλωττιστή είναι το αρχείο ONNX που δημιουργήθηκε στο βήμα 2. Ο μεταγλωττιστής παράγει ένα δυαδικό αρχείο (που ονομάζεται QPC, Για Δοχείο προγράμματος Qualcomm) στη διαδρομή που ορίζεται από -aic-binary-dir διαφωνία.

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

/opt/qti-aic/exec/qaic-exec 
-m=bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16.onnx 
-aic-num-cores=4 
-convert-to-fp16 
-onnx-define-symbol=batch,1 -onnx-define-symbol=sequence,128 
-aic-binary-dir=bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc 
-aic-hw -aic-hw-version=2.0 
-compile-only

Το QPC δημιουργείται στο bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc φάκελο.

Βήμα 4. Εκτελέστε το μοντέλο

Ρυθμίστε μια περίοδο λειτουργίας για να εκτελέσετε το συμπέρασμα σε έναν επιταχυντή Cloud AI100 Qualcomm στην παρουσία DL2q.

Η βιβλιοθήκη Qualcomm qaic Python είναι ένα σύνολο API που παρέχει υποστήριξη για την εκτέλεση συμπερασμάτων στον επιταχυντή Cloud AI100.

  1. Χρησιμοποιήστε την κλήση του Session API για να δημιουργήσετε μια παρουσία περιόδου σύνδεσης. Η κλήση του Session API είναι το σημείο εισόδου για τη χρήση της βιβλιοθήκης qaic Python.
    qpcPath = 'bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc'
    
    bert_sess = qaic.Session(model_path= qpcPath+'/programqpc.bin', num_activations=1)  
    bert_sess.setup() # Loads the network to the device. 
    
    # Here we are reading out all the input and output shapes/types
    input_shape, input_type = bert_sess.model_input_shape_dict['input_ids']
    attn_shape, attn_type = bert_sess.model_input_shape_dict['attention_mask']
    output_shape, output_type = bert_sess.model_output_shape_dict['logits']
    
    #create the input dictionary for given input sentence
    input_dict = {"input_ids": inputIds.numpy().astype(input_type), "attention_mask" : attentionMask.numpy().astype(attn_type)}
    
    #run inference on Cloud AI 100
    output = bert_sess.run(input_dict)

  2. Αναδιάρθρωση των δεδομένων από την προσωρινή μνήμη εξόδου με output_shape και output_type.
    token_logits = np.frombuffer(output['logits'], dtype=output_type).reshape(output_shape)

  3. Αποκωδικοποιήστε την παραγωγή που παράγεται.
    mask_token_logits = torch.from_numpy(token_logits[0, mask_token_index, :]).unsqueeze(0)
    top_5_results = torch.topk(mask_token_logits, 5, dim=1)
    print("Model output (top5) from Qualcomm Cloud AI 100:")
    for i in range(5):
        idx = top_5_results.indices[0].tolist()[i]
        val = top_5_results.values[0].tolist()[i]
        word = tokenizer.decode([idx])
        print(f"{i+1} :(word={word}, index={idx}, logit={round(val,2)})")

Ακολουθούν τα αποτελέσματα για την πρόταση εισαγωγής "The dog [MASK] on the mat".

1 :(word=sat, index=2068, logit=11.46)
2 :(word=landed, index=4860, logit=11.11)
3 :(word=spat, index=15732, logit=10.95)
4 :(word=settled, index=3035, logit=10.84)
5 :(word=was, index=1108, logit=10.75)

Αυτό είναι. Με λίγα μόλις βήματα, μεταγλωττίσατε και εκτελέσατε ένα μοντέλο PyTorch σε μια παρουσία Amazon EC2 DL2q. Για να μάθετε περισσότερα σχετικά με την ενσωμάτωση και τη μεταγλώττιση μοντέλων στην παρουσία DL2q, ανατρέξτε στο Τεκμηρίωση εκμάθησης Cloud AI100.

Για να μάθετε περισσότερα σχετικά με το ποιες αρχιτεκτονικές μοντέλων DL είναι κατάλληλες για παρουσίες AWS DL2q και τον τρέχοντα πίνακα υποστήριξης μοντέλων, ανατρέξτε στο Τεκμηρίωση Qualcomm Cloud AI100.

Άμεσα διαθέσιμο

Μπορείτε να εκκινήσετε παρουσίες DL2q σήμερα στις Περιφέρειες AWS των ΗΠΑ Δυτικής (Όρεγκον) και Ευρώπης (Φρανκφούρτη) ως Κατα παραγγελιαΚατοχυρωμένα, να Στιγμιαίες παρουσίες, ή ως μέρος του α Πρόγραμμα ταμιευτηρίου. Ως συνήθως με το Amazon EC2, πληρώνετε μόνο για ό,τι χρησιμοποιείτε. Για περισσότερες πληροφορίες, βλ Τιμές Amazon EC2.

Οι παρουσίες DL2q μπορούν να αναπτυχθούν χρησιμοποιώντας AWS Deep Learning AMI (DLAMI)και οι εικόνες κοντέινερ είναι διαθέσιμες μέσω διαχειριζόμενων υπηρεσιών, όπως π.χ Amazon Sage Maker, Amazon Elastic Kubernetes Service (Amazon EKS), Υπηρεσία Ελαστικού Κοντέινερ Amazon (Amazon ECS), να AWS ParallelCluster.

Για να μάθετε περισσότερα, επισκεφθείτε το Παράδειγμα Amazon EC2 DL2q σελίδα και στείλτε σχόλια σε AWS re: Δημοσίευση για EC2 ή μέσω των συνηθισμένων επαφών υποστήριξης AWS.


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

ΑΚ Ρόι είναι Διευθυντής Διαχείρισης Προϊόντων στην Qualcomm, για προϊόντα και λύσεις Cloud και Datacenter AI. Έχει πάνω από 20 χρόνια εμπειρίας στη στρατηγική και την ανάπτυξη προϊόντων, με την τρέχουσα εστίαση στις καλύτερες επιδόσεις και επιδόσεις στην κατηγορία του/$ end-to-end λύσεων για συμπέρασμα AI στο Cloud, για το ευρύ φάσμα περιπτώσεων χρήσης, συμπεριλαμβανομένων των GenAI, LLM, Auto και Hybrid AI.

Jianying Lang είναι Κύριος Αρχιτέκτονας Λύσεων στον Παγκόσμιο Ειδικό Οργανισμό AWS (WWSO). Έχει πάνω από 15 χρόνια εργασιακής εμπειρίας στον τομέα HPC και AI. Στην AWS, εστιάζει στο να βοηθά τους πελάτες να αναπτύξουν, να βελτιστοποιήσουν και να κλιμακώσουν τον φόρτο εργασίας τους AI/ML σε περιπτώσεις επιτάχυνσης υπολογιστών. Είναι παθιασμένη με το συνδυασμό των τεχνικών στους τομείς HPC και AI. Ο Jianying είναι κάτοχος διδακτορικού διπλώματος στην Υπολογιστική Φυσική από το Πανεπιστήμιο του Κολοράντο στο Boulder.

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

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