Primerek Amazon EC2 DL2q za stroškovno učinkovito in visoko zmogljivo sklepanje z umetno inteligenco je zdaj splošno na voljo | Spletne storitve Amazon

Primerek Amazon EC2 DL2q za stroškovno učinkovito in visoko zmogljivo sklepanje z umetno inteligenco je zdaj splošno na voljo | Spletne storitve Amazon

To je gostujoča objava avtorja AK Roya iz podjetja Qualcomm AI.

Amazon Elastic Compute Cloud (Amazon EC2) Primerke DL2q, ki jih poganjajo pospeševalniki Qualcomm AI 100 Standard, je mogoče uporabiti za stroškovno učinkovito uvajanje delovnih obremenitev globokega učenja (DL) v oblaku. Uporabljajo se lahko tudi za razvoj in potrjevanje učinkovitosti in natančnosti delovnih obremenitev DL, ki bodo nameščene na napravah Qualcomm. Primerki DL2q so prvi primerki, ki Qualcommovo tehnologijo umetne inteligence (AI) prinašajo v oblak.

Z osmimi pospeševalniki Qualcomm AI 100 Standard in 128 GiB skupnega pomnilnika pospeševalnika lahko stranke uporabljajo tudi primerke DL2q za izvajanje priljubljenih generativnih aplikacij umetne inteligence, kot so ustvarjanje vsebine, povzemanje besedila in virtualni pomočniki, kot tudi klasične aplikacije umetne inteligence za obdelavo naravnega jezika in računalniški vid. Poleg tega pospeševalniki Qualcomm AI 100 vsebujejo isto tehnologijo umetne inteligence, ki se uporablja v pametnih telefonih, avtonomni vožnji, osebnih računalnikih in slušalkah z razširjeno resničnostjo, tako da se primerki DL2q lahko uporabljajo za razvoj in potrditev teh delovnih obremenitev umetne inteligence pred uvedbo.

Novi poudarki primerka DL2q

Vsak primerek DL2q vključuje osem pospeševalnikov Qualcomm Cloud AI100 s skupno zmogljivostjo več kot 2.8 PetaOps zmogljivosti sklepanja Int8 in 1.4 PetaFlops zmogljivosti sklepanja FP16. Instanca ima skupno 112 jeder AI, kapaciteto pomnilnika pospeševalnika 128 GB in pasovno širino pomnilnika 1.1 TB na sekundo.

Vsak primerek DL2q ima 96 vCPU-jev, kapaciteto sistemskega pomnilnika 768 GB in podpira omrežno pasovno širino 100 Gbps ter Amazon Elastic Block Store (Amazon EBS) shranjevanje 19 Gbps.

Ime primerka vCPU Pospeševalniki Cloud AI100 Pomnilnik pospeševalnika Pomnilnik pospeševalnika BW (zbrano) Pomnilnik primerkov Omrežje primerkov Pasovna širina shranjevanja (Amazon EBS).
DL2q.24xlarge 96 8 128 GB 1.088 TB / s 768 GB 100 Gbps 19 Gbps

Inovacija pospeševalnika Qualcomm Cloud AI100

Cloud AI100 pospeševalni sistem na čipu (SoC) je namensko izdelana, razširljiva večjedrna arhitektura, ki podpira širok nabor primerov uporabe globokega učenja, ki segajo od podatkovnega središča do roba. SoC uporablja skalarna, vektorska in tenzorska računalniška jedra z zmogljivostjo SRAM-a, ki je vodilna v panogi, 126 MB. Jedra so med seboj povezana z visokopasovno mrežo z nizko zakasnitvijo omrežja na čipu (NoC).

Pospeševalec AI100 podpira široko in celovito paleto modelov in primerov uporabe. Spodnja tabela poudarja obseg podpore modelu.

Kategorija modela Število modelov Primeri
NLP 157 BERT, BART, FasterTransformer, T5, Z-code MOE
Generativni AI – NLP 40 LLaMA, CodeGen, GPT, OPT, BLOOM, Jais, Luminous, StarCoder, XGen
Generativni AI – Slika 3 Stabilna difuzija v1.5 in v2.1, OpenAI CLIP
CV – Razvrstitev slik 45 ViT, ResNet, ResNext, MobileNet, EfficientNet
CV – Zaznavanje predmeta 23 YOLO v2, v3, v4, v5 in v7, SSD-ResNet, RetinaNet
CV – drugo 15 LPRNet, Super-ločljivost/SRGAN, ByteTrack
Avtomobilska omrežja* 53 Zaznavanje in LIDAR, zaznavanje pešcev, voznih pasov in semaforjev
Skupaj > 300 ​,war ​,war

* Večina avtomobilskih omrežij je sestavljenih omrežij, sestavljenih iz zlitja posameznih omrežij.

Velik vgrajen SRAM na pospeševalniku DL2q omogoča učinkovito izvajanje naprednih tehnik delovanja, kot sta natančnost mikroeksponenta MX6 za shranjevanje uteži in natančnost mikroeksponenta MX9 za komunikacijo med pospeševalnikom. Tehnologija mikroeksponent je opisana v naslednji objavi industrije Open Compute Project (OCP): AMD, Arm, Intel, Meta, Microsoft, NVIDIA in Qualcomm standardizirajo formate podatkov z ozko natančnostjo naslednje generacije za AI » Open Compute Project.

Uporabnik primerka lahko uporabi naslednjo strategijo za povečanje učinkovitosti glede na ceno:

  • Shranite uteži z natančnostjo mikro eksponenta MX6 v DDR pomnilnik pospeševalnika. Uporaba natančnosti MX6 poveča izrabo razpoložljive kapacitete pomnilnika in pasovne širine pomnilnika za zagotavljanje najboljše prepustnosti in zakasnitve v svojem razredu.
  • Računajte v FP16, da zagotovite zahtevano natančnost primera uporabe, medtem ko uporabljate vrhunski SRAM na čipu in rezervne TOP na kartici, da implementirate visoko zmogljiva jedra MX6 do FP16 z nizko zakasnitvijo.
  • Uporabite optimizirano serijsko strategijo in večjo serijsko velikost z uporabo velikega SRAM-a na čipu, ki je na voljo, da čim bolj povečate ponovno uporabo uteži, hkrati pa čim bolj ohranite aktivacije na čipu.

DL2q AI Stack in orodna veriga

Primerek DL2q spremlja Qualcomm AI Stack, ki zagotavlja dosledno izkušnjo razvijalcev v Qualcomm AI v oblaku in drugih izdelkih Qualcomm. Isti sklad umetne inteligence Qualcomm in osnovna tehnologija umetne inteligence delujeta na instancah DL2q in robnih napravah Qualcomm ter strankam zagotavljata dosledno razvijalsko izkušnjo z enotnim API-jem v njihovih razvojnih okoljih v oblaku, avtomobilizmu, osebnih računalnikih, razširjeni resničnosti in pametnih telefonih.

Veriga orodij omogoča uporabniku primerka, da hitro vključi predhodno usposobljen model, prevede in optimizira model za zmogljivosti primerka ter nato uvede prevedene modele za primere uporabe sklepanja v proizvodnji v treh korakih, prikazanih na naslednji sliki.

Primerek Amazon EC2 DL2q za stroškovno učinkovito in visoko zmogljivo sklepanje z umetno inteligenco je zdaj splošno na voljo | Amazon Web Services PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Če želite izvedeti več o prilagajanju zmogljivosti modela, glejte Ključni parametri zmogljivosti Cloud AI 100 Dokumentacija.

Začnite s primerki DL2q

V tem primeru prevedete in uvedete vnaprej usposobljeno Model BERT iz Objemni obraz na primerku EC2 DL2q z uporabo vnaprej vgrajenega razpoložljivega AMI DL2q v štirih korakih.

Uporabite lahko bodisi vnaprej pripravljeno Qualcomm DLAMI na primerku ali začnite z Amazon Linux2 AMI in zgradite svoj DL2q AMI s platformo Cloud AI 100 in SDK-jem za aplikacije, ki je na voljo v tem Preprosta storitev shranjevanja Amazon (Amazon S3) vedro: s3://ec2-linux-qualcomm-ai100-sdks/latest/.

Koraki, ki sledijo, uporabljajo vnaprej zgrajen DL2q AMI, Qualcomm Base AL2 DLAMI.

Uporabite SSH za dostop do svojega primerka DL2q s Qualcomm Base AL2 DLAMI AMI in sledite korakom od 1 do 4.

Korak 1. Nastavite okolje in namestite zahtevane pakete

  1. Namestite Python 3.8.
    sudo amazon-linux-extras install python3.8

  2. Nastavite virtualno okolje Python 3.8.
    python3.8 -m venv /home/ec2-user/userA/pyenv

  3. Aktivirajte virtualno okolje Python 3.8.
    source /home/ec2-user/userA/pyenv/bin/activate

  4. Namestite zahtevane pakete, prikazane v dokument requirements.txt na voljo na javnem mestu Qualcomm Github.
    pip3 install -r requirements.txt

  5. Uvozite potrebne knjižnice.
    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. korak. Uvozite model

  1. Uvozi in tokeniziraj model.
    model_card = 'bert-base-cased'
    model = AutoModelForMaskedLM.from_pretrained(model_card)
    tokenizer = AutoTokenizer.from_pretrained(model_card)

  2. Določite vzorčni vnos in ekstrahirajte inputIds in 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. Pretvorite model v ONNX, ki ga lahko nato posredujete prevajalniku.
    # 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. Model boste izvajali z natančnostjo FP16. Zato morate preveriti, ali model vsebuje kakršne koli konstante, ki presegajo obseg FP16. Predajte model fix_onnx_fp16 funkcijo za ustvarjanje nove datoteke ONNX z zahtevanimi popravki.
    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)

Korak 3. Sestavite model

O qaic-exec za prevajanje modela se uporablja orodje za prevajanje vmesnika ukazne vrstice (CLI). Vhod v ta prevajalnik je datoteka ONNX, ustvarjena v 2. koraku. Prevajalnik ustvari binarno datoteko (imenovano QPCZa Programski vsebnik Qualcomm) na poti, ki jo definira -aic-binary-dir prepir.

V spodnjem ukazu za prevajanje uporabite štiri računalniška jedra AI in velikost paketa enega za prevajanje modela.

/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 se ustvari v bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc mapa.

Korak 4. Zaženite model

Nastavite sejo za izvajanje sklepanja na pospeševalniku Cloud AI100 Qualcomm v instanci DL2q.

Knjižnica Qualcomm qaic Python je niz API-jev, ki zagotavlja podporo za izvajanje sklepanja v pospeševalniku Cloud AI100.

  1. Uporabite klic Session API, da ustvarite primerek seje. Klic API-ja seje je vstopna točka za uporabo knjižnice 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. Prestrukturirajte podatke iz izhodnega medpomnilnika z output_shape in output_type.
    token_logits = np.frombuffer(output['logits'], dtype=output_type).reshape(output_shape)

  3. Dekodirajte proizvedeni izhod.
    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)})")

Tukaj so rezultati za vhodni stavek "Pes [MASKA] na preprogi."

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)

To je vse. Z le nekaj koraki ste prevedli in zagnali model PyTorch na primerku Amazon EC2 DL2q. Če želite izvedeti več o vključitvi in ​​prevajanju modelov na primerku DL2q, glejte Vadnica za Cloud AI100 Dokumentacija.

Če želite izvedeti več o tem, katere arhitekture modela DL so primerne za primerke AWS DL2q in trenutno podporno matriko modela, glejte Dokumentacija Qualcomm Cloud AI100.

Na voljo sedaj

Danes lahko zaženete primerke DL2q v regijah AWS Zahod ZDA (Oregon) in Evropa (Frankfurt) kot Na zahtevoRezerviranoin Spot primerki, ali kot del a Načrt varčevanja. Kot običajno pri Amazon EC2 plačate samo tisto, kar uporabite. Za več informacij glejte Cene Amazon EC2.

Primerke DL2q je mogoče namestiti z uporabo AMI za globoko učenje AWS (DLAMI), slike vsebnikov pa so na voljo prek upravljanih storitev, kot je npr Amazon SageMaker, Storitev Amazon Elastic Kubernetes (Amazon EKS), Amazonska elastična posoda (Amazon ECS)in AWS ParallelCluster.

Če želite izvedeti več, obiščite spletno mesto Primerek Amazon EC2 DL2q strani in pošljite povratne informacije na AWS re:Objava za EC2 ali prek vaših običajnih kontaktov za podporo AWS.


O avtorjih

Primerek Amazon EC2 DL2q za stroškovno učinkovito in visoko zmogljivo sklepanje z umetno inteligenco je zdaj splošno na voljo | Amazon Web Services PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.AK Roy je direktor produktnega upravljanja pri Qualcommu za izdelke in rešitve umetne inteligence v oblaku in podatkovnih centrih. Ima več kot 20 let izkušenj na področju strategije in razvoja izdelkov, s trenutnim poudarkom na najboljših zmogljivostih v razredu in celovitih rešitvah zmogljivosti/$ za sklepanje AI v oblaku, za širok spekter primerov uporabe, vključno z GenAI, LLMs, Auto in Hybrid AI.

Primerek Amazon EC2 DL2q za stroškovno učinkovito in visoko zmogljivo sklepanje z umetno inteligenco je zdaj splošno na voljo | Amazon Web Services PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Jianying Lang je glavni arhitekt rešitev pri AWS Worldwide Specialist Organisation (WWSO). Ima več kot 15 let delovnih izkušenj na področju HPC in AI. Pri AWS se osredotoča na pomoč strankam pri uvajanju, optimiziranju in prilagajanju delovnih obremenitev AI/ML na pospešenih računalniških instancah. Navdušena je nad združevanjem tehnik na področjih HPC in AI. Jianying je doktoriral iz računalniške fizike na univerzi Colorado v Boulderju.

Časovni žig:

Več od Strojno učenje AWS